Add OTLP/Jaeger tracing support for daemon and coordinator#1327
Draft
Nakshatra480 wants to merge 1 commit intodora-rs:mainfrom
Draft
Add OTLP/Jaeger tracing support for daemon and coordinator#1327Nakshatra480 wants to merge 1 commit intodora-rs:mainfrom
Nakshatra480 wants to merge 1 commit intodora-rs:mainfrom
Conversation
d6e010f to
5334c76
Compare
5334c76 to
6f5269b
Compare
11ee196 to
5876a13
Compare
Enables Jaeger tracing when DORA_OTLP_ENDPOINT is set. Key changes: - Add service name to OTLP resource configuration - Register global tracer provider for span export - Store OtelGuard to prevent premature shutdown - Initialize OTLP within tokio runtime context - Move TracingBuilder import to top-level with proper feature gate Fixes dora-rs#1313
5876a13 to
bc7dc5f
Compare
Author
|
@haixuanTao @phil-opp changes are ready, pls review it |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1313
Summary
Implements OTLP tracing for
dora-daemonanddora-coordinator, enabling distributed tracing via Jaeger when theDORA_OTLP_ENDPOINTenvironment variable is set.Changes
telemetry.rs: Added service name to OTLP Resource for proper service identification in Jaegerlib.rs: Registered global tracer provider to enable span exportdaemon.rs: Runtime-safe OTLP initialization with OtelGuard lifetime managementcoordinator.rs: Runtime-safe OTLP initialization with OtelGuard lifetime managementKey Technical Details
The implementation addresses a critical async/sync challenge: OTLP uses async gRPC (Tonic) but daemon/coordinator initialize tracing before creating the tokio runtime. The solution uses conditional two-phase initialization:
Additionally, the
OtelGuardmust be stored for the lifetime of the runtime to prevent the tracer provider from shutting down immediately after initialization.Testing
Tested with Jaeger all-in-one: