Summary
The OpenTelemetry Rust ecosystem has moved to 0.32 with breaking API changes. Both limitador and wasm-shim need a coordinated upgrade since they share the same tracing pipeline and are deployed together.
Dependabot opened PRs bumping opentelemetry_sdk alone (limitador#495, wasm-shim#384), but the otel crates use lockstep versioning — all must be bumped together.
Target versions
| Crate |
Current (limitador) |
Current (wasm-shim) |
Target |
opentelemetry |
0.22.0 |
0.22.0 |
0.32 |
opentelemetry_sdk |
0.22.1 |
0.31.0 |
0.32 |
opentelemetry-otlp |
0.15 |
0.15 |
0.32 |
opentelemetry-stdout |
0.3 |
— |
0.32 |
tracing-opentelemetry |
0.23 |
0.23 |
0.33 |
Code changes required
limitador (small — 2 files)
Only limitador-server/src/main.rs needs API changes:
- Replace
opentelemetry_otlp::new_pipeline().tracing()...install_batch() with SdkTracerProvider::builder().with_batch_exporter()
- Replace
trace::config().with_resource(Resource::new(vec![...])) with Resource::builder() pattern
- Update
TraceContextPropagator import path
- Remove
opentelemetry_sdk::runtime::Tokio arg (batch processor no longer needs async runtime)
envoy_rls/server.rs only uses global and Extractor — likely unaffected.
wasm-shim (medium — 7 files)
Similar API changes plus:
- Custom
SpanProcessor in tracing/processor.rs needs on_start signature update
SpanData export trait changes in the OTLP exporter setup
KeyValue iterator changes
Checklist
References
Summary
The OpenTelemetry Rust ecosystem has moved to 0.32 with breaking API changes. Both limitador and wasm-shim need a coordinated upgrade since they share the same tracing pipeline and are deployed together.
Dependabot opened PRs bumping
opentelemetry_sdkalone (limitador#495, wasm-shim#384), but the otel crates use lockstep versioning — all must be bumped together.Target versions
opentelemetryopentelemetry_sdkopentelemetry-otlpopentelemetry-stdouttracing-opentelemetryCode changes required
limitador (small — 2 files)
Only
limitador-server/src/main.rsneeds API changes:opentelemetry_otlp::new_pipeline().tracing()...install_batch()withSdkTracerProvider::builder().with_batch_exporter()trace::config().with_resource(Resource::new(vec![...]))withResource::builder()patternTraceContextPropagatorimport pathopentelemetry_sdk::runtime::Tokioarg (batch processor no longer needs async runtime)envoy_rls/server.rsonly usesglobalandExtractor— likely unaffected.wasm-shim (medium — 7 files)
Similar API changes plus:
SpanProcessorintracing/processor.rsneedson_startsignature updateSpanDataexport trait changes in the OTLP exporter setupKeyValueiterator changesChecklist
References