Skip to content

Commit

Permalink
Add redpanda output
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeffail committed Oct 7, 2024
1 parent ef51eed commit af8e92c
Show file tree
Hide file tree
Showing 4 changed files with 437 additions and 2 deletions.
8 changes: 6 additions & 2 deletions cmd/tools/docs_gen/schema_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,16 @@ import (

"github.com/redpanda-data/benthos/v4/public/service"

"github.com/redpanda-data/connect/v4/public/schema"

_ "github.com/redpanda-data/connect/v4/public/components/all"
)

func TestComponentExamples(t *testing.T) {
env := service.GlobalEnvironment()
linter := env.FullConfigSchema("", "").NewStreamConfigLinter()
sch := schema.Standard("", "")
env := sch.Environment()

linter := sch.NewStreamConfigLinter()
linter.SetRejectDeprecated(true)
linter.SetSkipEnvVarCheck(true)

Expand Down
336 changes: 336 additions & 0 deletions docs/modules/components/pages/outputs/redpanda.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,336 @@
= redpanda
:type: output
:status: beta
:categories: ["Services"]



////
THIS FILE IS AUTOGENERATED!

To make changes, edit the corresponding source file under:

https://github.com/redpanda-data/connect/tree/main/internal/impl/<provider>.

And:

https://github.com/redpanda-data/connect/tree/main/cmd/tools/docs_gen/templates/plugin.adoc.tmpl
////
// © 2024 Redpanda Data Inc.
component_type_dropdown::[]
TODO
[tabs]
======
Common::
+
--
```yml
# Common config fields, showing default values
output:
label: ""
redpanda:
topic: "" # No default (required)
key: "" # No default (optional)
partition: ${! meta("partition") } # No default (optional)
metadata:
include_prefixes: []
include_patterns: []
max_in_flight: 10
batching:
count: 0
byte_size: 0
period: ""
check: ""
```
--
Advanced::
+
--
```yml
# All config fields, showing default values
output:
label: ""
redpanda:
topic: "" # No default (required)
key: "" # No default (optional)
partition: ${! meta("partition") } # No default (optional)
metadata:
include_prefixes: []
include_patterns: []
timestamp: ${! timestamp_unix() } # No default (optional)
max_in_flight: 10
batching:
count: 0
byte_size: 0
period: ""
check: ""
processors: [] # No default (optional)
```
--
======
== Examples
[tabs]
======
Simple Output::
+
--
Data is generated and written to a topic bar, targetting the cluster configured within the redpanda block at the bottom. This is useful as it allows us to configure TLS and SASL only once for potentially multiple inputs and outputs.
```yaml
input:
generate:
interval: 1s
mapping: 'root.name = fake("name")'
pipeline:
processors:
- mutation: |
root.id = uuid_v4()
root.loud_name = this.name.uppercase()
output:
redpanda:
topic: bar
key: ${! @id }
redpanda:
seed_brokers: [ "127.0.0.1:9093" ]
tls:
enabled: true
sasl:
- mechanism: SCRAM-SHA-512
password: bar
username: foo
```
--
======
== Fields
=== `topic`
A topic to write messages to.
This field supports xref:configuration:interpolation.adoc#bloblang-queries[interpolation functions].
*Type*: `string`
=== `key`
An optional key to populate for each message.
This field supports xref:configuration:interpolation.adoc#bloblang-queries[interpolation functions].
*Type*: `string`
=== `partition`
An optional explicit partition to set for each message. This field is only relevant when the `partitioner` is set to `manual`. The provided interpolation string must be a valid integer.
This field supports xref:configuration:interpolation.adoc#bloblang-queries[interpolation functions].
*Type*: `string`
```yml
# Examples
partition: ${! meta("partition") }
```
=== `metadata`
Determine which (if any) metadata values should be added to messages as headers.
*Type*: `object`
=== `metadata.include_prefixes`
Provide a list of explicit metadata key prefixes to match against.
*Type*: `array`
*Default*: `[]`
```yml
# Examples
include_prefixes:
- foo_
- bar_
include_prefixes:
- kafka_
include_prefixes:
- content-
```
=== `metadata.include_patterns`
Provide a list of explicit metadata key regular expression (re2) patterns to match against.
*Type*: `array`
*Default*: `[]`
```yml
# Examples
include_patterns:
- .*
include_patterns:
- _timestamp_unix$
```
=== `timestamp`
An optional timestamp to set for each message. When left empty, the current timestamp is used.
This field supports xref:configuration:interpolation.adoc#bloblang-queries[interpolation functions].
*Type*: `string`
```yml
# Examples
timestamp: ${! timestamp_unix() }
timestamp: ${! metadata("kafka_timestamp_unix") }
```
=== `max_in_flight`
The maximum number of batches to be sending in parallel at any given time.
*Type*: `int`
*Default*: `10`
=== `batching`
Allows you to configure a xref:configuration:batching.adoc[batching policy].
*Type*: `object`
```yml
# Examples
batching:
byte_size: 5000
count: 0
period: 1s
batching:
count: 10
period: 1s
batching:
check: this.contains("END BATCH")
count: 0
period: 1m
```
=== `batching.count`
A number of messages at which the batch should be flushed. If `0` disables count based batching.
*Type*: `int`
*Default*: `0`
=== `batching.byte_size`
An amount of bytes at which the batch should be flushed. If `0` disables size based batching.
*Type*: `int`
*Default*: `0`
=== `batching.period`
A period in which an incomplete batch should be flushed regardless of its size.
*Type*: `string`
*Default*: `""`
```yml
# Examples
period: 1s
period: 1m
period: 500ms
```
=== `batching.check`
A xref:guides:bloblang/about.adoc[Bloblang query] that should return a boolean value indicating whether a message should end a batch.
*Type*: `string`
*Default*: `""`
```yml
# Examples
check: this.type == "end_of_transaction"
```
=== `batching.processors`
A list of xref:components:processors/about.adoc[processors] to apply to a batch as it is flushed. This allows you to aggregate and archive the batch however you see fit. Please note that all resulting messages are flushed as a single batch, therefore splitting the batch into smaller batches using these processors is a no-op.
*Type*: `array`
```yml
# Examples
processors:
- archive:
format: concatenate
processors:
- archive:
format: lines
processors:
- archive:
format: json_array
```
Loading

0 comments on commit af8e92c

Please sign in to comment.