You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
First of all, thank you so much for your work! Beyla is an amazing tool.
I've been playing with Beyla lately and noticed some bugs when working with Kafka.
To put it simply, I have a simple microservice that accepts a key-value pair, stores it in redis, and published it to Kafka. And while redis works fine in all cases, Kafka traces are different depending on the client library.
traceID, spanID and parentSpanID are empty values.
I'm not an expert in Beyla's code, but out of curiosity I''ve checked it and my guess is that client_trace_parent might be missing in go_sarama.h
github.com/segmentio/kafka-go
works fine in general, but sometimes parent span id is missing
Also, I think span kind needs to be producer, not consumer.
github.com/confluentinc/confluent-kafka-go/kafka
Since this is a Cgo wrapper around rdkafka, the client traces are not sent at all. However, there are traces on the Kafka service side with messaging.client_id = rdkafka.
unrelated comment
Beyla's documentation does not say anything (or have I missed it?) about client libraries that the Go code needs to use. However, from the debug logs, I figured out that it actually assumes that the code uses one of the following symbols:
And I'm wondering if it's worth including this list in the documentation, or at least mentioning that the instrumented code needs to use certain libraries.
P.S.
If you need any help or more info from me, please let me know
P.S.S.
Sorry if the code/compose is a mess
The text was updated successfully, but these errors were encountered:
Hi Beyla Team,
First of all, thank you so much for your work! Beyla is an amazing tool.
I've been playing with Beyla lately and noticed some bugs when working with Kafka.
To put it simply, I have a simple microservice that accepts a key-value pair, stores it in redis, and published it to Kafka. And while redis works fine in all cases, Kafka traces are different depending on the client library.
I have 3 implementations:
All three have differences in the generated traces. More details here: https://github.com/3timeslazy/ebpf-beyla-bug-report/tree/main
tldr;
github.com/IBM/sarama
traceID, spanID and parentSpanID are empty values.
I'm not an expert in Beyla's code, but out of curiosity I''ve checked it and my guess is that
client_trace_parent
might be missing in go_sarama.hgithub.com/segmentio/kafka-go
works fine in general, but sometimes parent span id is missing
Also, I think span kind needs to be
producer
, notconsumer
.github.com/confluentinc/confluent-kafka-go/kafka
Since this is a Cgo wrapper around rdkafka, the client traces are not sent at all. However, there are traces on the Kafka service side with
messaging.client_id = rdkafka
.unrelated comment
Beyla's documentation does not say anything (or have I missed it?) about client libraries that the Go code needs to use. However, from the debug logs, I figured out that it actually assumes that the code uses one of the following symbols:
And I'm wondering if it's worth including this list in the documentation, or at least mentioning that the instrumented code needs to use certain libraries.
P.S.
If you need any help or more info from me, please let me know
P.S.S.
Sorry if the code/compose is a mess
The text was updated successfully, but these errors were encountered: