-
Notifications
You must be signed in to change notification settings - Fork 488
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
introduce an otelcol.exporter.kafka component #6752
Conversation
Signed-off-by: Paschalis Tsilias <[email protected]>
Signed-off-by: Paschalis Tsilias <[email protected]>
Signed-off-by: Paschalis Tsilias <[email protected]>
Signed-off-by: Paschalis Tsilias <[email protected]>
rr := broker.History()[0] | ||
ch <- fmt.Sprint(rr.Request) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't particularly like this, but the sarama library's mock doesn't allow for better introspection of the messages as most moving pieces are unexported :/
func init() { | ||
component.Register(component.Registration{ | ||
Name: "otelcol.exporter.kafka", | ||
Stability: featuregate.StabilityStable, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this the right stability? This would mean committing to the config schema for at least one year, and declaring knowledge about risk / production readiness. Is this ready for that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some minor doc suggestions
> **NOTE**: `otelcol.exporter.kafka` is a wrapper over the upstream | ||
> OpenTelemetry Collector `kafka` exporter. Bug reports or feature requests will | ||
> be redirected to the upstream repository, if necessary. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
> **NOTE**: `otelcol.exporter.kafka` is a wrapper over the upstream | |
> OpenTelemetry Collector `kafka` exporter. Bug reports or feature requests will | |
> be redirected to the upstream repository, if necessary. | |
{{< admonition type="note" >}} | |
`otelcol.exporter.kafka` is a wrapper over the upstream OpenTelemetry Collector `kafka` exporter. | |
Bug reports or feature requests will be redirected to the upstream repository, if necessary. | |
{{< /admonition >}} |
> be redirected to the upstream repository, if necessary. | ||
|
||
This component uses a synchronous producer that blocks and does not batch | ||
messages, therefore it should be used with batch and queued retry processors |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
messages, therefore it should be used with batch and queued retry processors | |
messages. Therefore, it should be used with batch and queued retry processors |
|
||
This component uses a synchronous producer that blocks and does not batch | ||
messages, therefore it should be used with batch and queued retry processors | ||
prepended to it, for higher throughput and resiliency. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
prepended to it, for higher throughput and resiliency. | |
prepended to it for higher throughput and resiliency. |
|
||
Auth kafka.AuthenticationArguments `river:"authentication,block,optional"` | ||
Metadata kafka.MetadataArguments `river:"metadata,block,optional"` | ||
Producer Producer `river:"producer,block,optional"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this block is missing in the documentation
|
||
Name | Type | Description | Default | Required | ||
---- | ---- | ----------- | ------- | -------- | ||
`protocol_version` | `duration` | Kafka protocol version to use. | | yes |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
`protocol_version` | `duration` | Kafka protocol version to use. | | yes | |
`protocol_version` | string | Kafka protocol version to use. | | yes |
`protocol_version` | `duration` | Kafka protocol version to use. | | yes | ||
`brokers` | list(string) | Kafka brokers to connect to. | `["localhost:9092"]` | no | ||
`client_id` | string | The client ID to configure the Sarama Kafka client with for all produce requests. | `"sarama"` | no | ||
`topic` | string | The name of the Kafka topic to export to. | see below | no |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To what is this "see below" referring?
`brokers` | list(string) | Kafka brokers to connect to. | `["localhost:9092"]` | no | ||
`client_id` | string | The client ID to configure the Sarama Kafka client with for all produce requests. | `"sarama"` | no | ||
`topic` | string | The name of the Kafka topic to export to. | see below | no | ||
`encoding` | string | The encoding of data sent to Kafka. | see below | no |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that we should still say that otlp_proto is the default
This PR has not had any activity in the past 30 days, so the |
I'm going to close this; the otelcol.exporter.kafka component in Alloy has taken precedence. |
PR Description
This component adds the otelcol.exporter.kafka component so that Grafana Agent can work with Kakfa pipelines end-to-end.
Which issue(s) this PR fixes
No issue files
Notes to the Reviewer
PR Checklist