-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[feat][pip] PIP-446: Support Native OpenTelemetry Tracing in Pulsar Java Client #24857
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
base: master
Are you sure you want to change the base?
Conversation
@Technoboy- Please add the following content to your PR description and select a checkbox:
|
7. **Multi-topic consumer support**: Track spans across multiple topic partitions | ||
8. **Agent compatibility**: Ensure compatibility with OpenTelemetry Java Agent | ||
9. **Semantic conventions**: Follow OpenTelemetry messaging semantic conventions | ||
10. **Zero overhead when disabled**: No performance impact when tracing is not enabled |
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.
One additional point to consider in the design is the behavior when sampling is configured (I believe that's the default) and a specific span isn't recorded at all. In those cases, an implementation can choose to reduce the overhead by omitting certain calls to the OTel tracing API.
This is explained in the Span IsRecording and Sampling documentation.
Although a span isn't sampled, it's still necessary to create child spans to propagate the span context to downstream, so optimizations based on span.isRecording() might not be very useful in the end.
I also noticed that the current Otel API that we have in Pulsar doesn't contain isRecording. We should also make sure to upgrade to latest stable versions of Otel libraries when implementing this PIP.
|
||
### 9. Span Attributes | ||
|
||
Following [OpenTelemetry messaging semantic conventions](https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/): |
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.
Does the scope of this work include publishing semantic conventions for Pulsar directly to OpenTelemetry project? For example contribution custom attributes to https://github.com/open-telemetry/semantic-conventions/blob/main/model/messaging/registry.yaml / https://github.com/open-telemetry/semantic-conventions/blob/main/model/messaging/spans.yaml and contributing the specification documentation?
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 so, whatever please help review the implementation to avoid missing something.
Motivation
Support Native OpenTelemetry Tracing in Pulsar Java client
Documentation
doc
doc-required
doc-not-needed
doc-complete