Skip to content
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

Kafka receiver and exporter #1331

Closed
pavolloffay opened this issue Jul 13, 2020 · 7 comments · Fixed by #1410
Closed

Kafka receiver and exporter #1331

pavolloffay opened this issue Jul 13, 2020 · 7 comments · Fixed by #1410
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@pavolloffay
Copy link
Member

pavolloffay commented Jul 13, 2020

Is your feature request related to a problem? Please describe.

Use Kafka as an intermediary buffer between collectors and exporter to an actual storage/vendor.

This issue is a possible duplicate of open-telemetry/opentelemetry-collector-contrib#268 and open-telemetry/opentelemetry-collector-contrib#5.

Should be Kafka supported in the contrib or in this repository if there is substantial interest?

Other references to Kafka related issues:

Describe the solution you'd like

Kafka receiver and exporter hosted in OpenTelemetry collector.

Describe alternatives you've considered

Host the implementation in the Jaeger project.

Additional context

None.

@bogdandrutu
Copy link
Member

@pavolloffay definitely we can host this, some questions:

  • One of the issue mentioned to support Jaeger Kafka, I think you are asking for OTLP Kafka, am I correct?
  • How many dependencies do we bring if we put this in core? Just a rough estimate based on your experience.

@pavolloffay
Copy link
Member Author

One of the issue mentioned to support Jaeger Kafka, I think you are asking for OTLP Kafka, am I correct?

Primarily we should support OTLP in this repository. However supporting additional formats that are already imported (Jaeger, Zipkin) in this project could help users with migration.

How many dependencies do we bring if we put this in core? Just a rough estimate based on your experience.

It depends on the chosen Kafka client. There are a couple of options:

@yurishkuro you have more experience with the Sarama client. Could you please share your preference on the driver?

@pavolloffay
Copy link
Member Author

From the number of 3rd party dependencies the https://github.com/segmentio/kafka-go/blob/master/go.mod seems to be better than https://github.com/Shopify/sarama/blob/master/go.mod

@pavolloffay
Copy link
Member Author

The kafka-go does not support GSSAPI/Kerberos segmentio/kafka-go#237 (though, we could contribute it)

@yurishkuro
Copy link
Member

@pavolloffay we've had some issue with sarama when partition rebalancing happens (you may recall the "deadlock detector"). But we're not on the latest version and should consider upgrading. I don't have any experience with sementio or confluence drivers. The latter, as you said, requires cgo, which we so far tried to avoid.

@objectiser
Copy link
Contributor

Maybe the best option is to stick with sarama for now (as a known quantity). Sarama "currently officially support .... Kafka 2.3 through 2.5" whereas sementio/kafka-go "is currently compatible with Kafka versions from 0.10.1.0 to 2.1.0".

Although both would probably work fine with latest Kafka, it seems to suggest sarama is more closely tracking the Kafka releases.

@pavolloffay
Copy link
Member Author

I am also more leaning toward sarama since it supports also Kerberos.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants