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

Openelemetry plugin for kafka connect #2623

Open
radzikp opened this issue Mar 23, 2021 · 6 comments
Open

Openelemetry plugin for kafka connect #2623

radzikp opened this issue Mar 23, 2021 · 6 comments
Labels
contribution welcome Request makes sense, maintainers probably won't have time, contribution would be welcome enhancement New feature or request new instrumentation

Comments

@radzikp
Copy link

radzikp commented Mar 23, 2021

It would be nice to have kafka connect plugin for opentelemetry where messages are produced ansynchronously and kafka client is seperated from the 'service'.

An example: The outbox pattern.

The workaround for this:
Create a custom transformation on kafka connect as 3rd party custom library to glue spans in one trace and propagate the context to the Kafka.

@radzikp radzikp added the enhancement New feature or request label Mar 23, 2021
@iNikem iNikem added the contribution welcome Request makes sense, maintainers probably won't have time, contribution would be welcome label Mar 24, 2021
@dharmaplay
Copy link

any tentative date when can we get the kafka connector for opentelemetry?

@mateuszrzeszutek
Copy link
Member

Hey @dharmaplay ,
Unfortunately we don't have enough time and resources to implement it on our own. We would greatly appreciate an external contribution for this.

@deepeshhitachi
Copy link

deepeshhitachi commented Dec 27, 2022

We are blocked as we are using opentelemetry and want to put opentelemetry data into timescale DB using Kafka connect but it is extremely difficult to parse - is kafka connect not support OpenTelemetry at all? We wanted to push from Kafka to Promscale using kafka connect instead of OTEL connector.

@vidourem
Copy link

vidourem commented Feb 2, 2023

I am trying to implement end-to-end traceability of the transactional outbox pattern with Debezium. There is a SMT for Kafka Connect that extracts the context previously recorded in a database table and propagates it in a ConnectRecord. I just made an evolution of this SMT to work with OpenTelemetry. It works perfectly. However, the Kafka ProducerRecord instrumentation with the interceptor always starts a new trace while the context is present in the record. Is this normal behavior? Could you evolve the instrumentation to extract the context from the record and use it if it exists?

@vidourem
Copy link

vidourem commented Feb 3, 2023

The issue I encounter between the ConnectRecord and the ProducerRecord is similar to #6297 and #2801 . I don't see any other solutions at the moment except to extend the ProducerRecord's interceptor, have I missed anything?

@Cirilla-zmh
Copy link
Contributor

Hi @vidourem , the reason for the new trace in the Kafka producer might be due to an incorrect context propagation. I don’t believe any improvements are necessary for the kafka-clients instrumentations. Instead, you may need to retrieve the context created by the Kafka producer instrumentation and propagate it in your connector.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contribution welcome Request makes sense, maintainers probably won't have time, contribution would be welcome enhancement New feature or request new instrumentation
Projects
None yet
Development

No branches or pull requests

7 participants