Conversation
## What changed - `Cargo.toml` — added opentelemetry 0.29, opentelemetry_sdk 0.29 (rt-tokio), opentelemetry-otlp 0.29 (http-json, grpc-tonic), tracing-opentelemetry 0.30 - `src/telemetry.rs` — created OTel init module with `init_otel_tracer()` and `build_otel_layer()`, W3C TraceContext propagator, OTLP exporter defaulting to HTTP/JSON - `src/lib.rs` — registered `pub mod telemetry` - `src/main.rs` — wired OTel layer into `init_logger()`, added provider shutdown on exit - `src/handlers/http/query.rs` — instrumented `query()` (root span `POST /query`), `handle_count_query()`, `handle_non_streaming_query()`, `handle_streaming_query()`, `create_streams_for_distributed()` (with JoinSet span propagation), `into_query()` - `src/query/mod.rs` — instrumented `execute()` with W3C cross-runtime propagation to QUERY_RUNTIME, `Query::execute()`, `get_bin_density()`, `get_manifest_list()` ## Dependencies added - opentelemetry 0.29 - opentelemetry_sdk 0.29 (features: rt-tokio) - opentelemetry-otlp 0.29 (features: http-json, grpc-tonic) - tracing-opentelemetry 0.30 Co-authored-by: otex-dev <dev@otex.dev>
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (6)
WalkthroughOpenTelemetry distributed tracing instrumentation was integrated into the project. Cargo dependencies were extended with OpenTelemetry SDK and related crates, a new telemetry module was created to initialize the OTel tracer, and tracing spans were added throughout HTTP handlers and query execution paths with trace context propagation across thread boundaries. Changes
Sequence DiagramsequenceDiagram
actor Client
participant HTTP as HTTP Handler
participant QueryExec as Query Executor
participant QueryRuntime as QUERY_RUNTIME<br/>(Thread Pool)
participant Exporter as OpenTelemetry<br/>Exporter
Client->>HTTP: POST /query
activate HTTP
HTTP->>HTTP: Start "query" span
HTTP->>QueryExec: execute(query)
activate QueryExec
QueryExec->>QueryExec: Extract trace context<br/>Create carrier (W3C)
QueryExec->>QueryRuntime: Spawn task with carrier
activate QueryRuntime
QueryRuntime->>QueryRuntime: Extract context from carrier<br/>Create "query.execute_runtime" span
QueryRuntime->>QueryRuntime: Set parent span context<br/>Execute query logic
QueryRuntime->>Exporter: Emit spans
deactivate QueryRuntime
QueryExec-->>HTTP: Return results
deactivate QueryExec
HTTP-->>Client: 200 OK
deactivate HTTP
Exporter->>Exporter: Batch and export traces
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested reviewers
Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
What changed
Cargo.toml— added opentelemetry 0.29, opentelemetry_sdk 0.29 (rt-tokio), opentelemetry-otlp 0.29 (http-json, grpc-tonic), tracing-opentelemetry 0.30src/telemetry.rs— created OTel init module withinit_otel_tracer()andbuild_otel_layer(), W3C TraceContext propagator, OTLP exporter defaulting to HTTP/JSONsrc/lib.rs— registeredpub mod telemetrysrc/main.rs— wired OTel layer intoinit_logger(), added provider shutdown on exitsrc/handlers/http/query.rs— instrumentedquery()(root spanPOST /query),handle_count_query(),handle_non_streaming_query(),handle_streaming_query(),create_streams_for_distributed()(with JoinSet span propagation),into_query()src/query/mod.rs— instrumentedexecute()with W3C cross-runtime propagation to QUERY_RUNTIME,Query::execute(),get_bin_density(),get_manifest_list()Dependencies added
Co-authored-by: otex-dev dev@otex.dev
Summary by CodeRabbit
Release Notes
New Features