tracing-opentelemetry icon indicating copy to clipboard operation
tracing-opentelemetry copied to clipboard

Support opentelemetry 0.23

Open MrCroxx opened this issue 1 year ago • 1 comments

Feature Request

Motivation

opentelemetry v0.23 refactored some tracer traits, build with the new version will fail:

error[E0277]: the trait bound `opentelemetry_sdk::trace::Tracer: opentelemetry::trace::tracer::Tracer` is not satisfied
   --> foyer-bench/src/main.rs:292:74
    |
292 |     let opentelemetry_layer = tracing_opentelemetry::layer().with_tracer(tracer);
    |                                                              ----------- ^^^^^^ the trait `opentelemetry::trace::tracer::Tracer` is not implemented for `opentelemetry_sdk::trace::Tracer`
    |                                                              |
    |                                                              required by a bound introduced by this call
    |
    = help: the following other types implement trait `opentelemetry::trace::tracer::Tracer`:
              opentelemetry::global::trace::BoxedTracer
              opentelemetry::trace::noop::NoopTracer
              opentelemetry_sdk::trace::tracer::Tracer
note: required by a bound in `OpenTelemetryLayer::<S, T>::with_tracer`
   --> /home/mrcroxx/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-opentelemetry-0.23.0/src/layer.rs:581:17
    |
579 |     pub fn with_tracer<Tracer>(self, tracer: Tracer) -> OpenTelemetryLayer<S, Tracer>
    |            ----------- required by a bound in this associated function
580 |     where
581 |         Tracer: otel::Tracer + PreSampledTracer + 'static,
    |                 ^^^^^^^^^^^^ required by this bound in `OpenTelemetryLayer::<S, T>::with_tracer`

error[E0277]: the trait bound `opentelemetry_sdk::trace::Tracer: PreSampledTracer` is not satisfied
   --> foyer-bench/src/main.rs:292:74
    |
292 |     let opentelemetry_layer = tracing_opentelemetry::layer().with_tracer(tracer);
    |                                                              ----------- ^^^^^^ the trait `PreSampledTracer` is not implemented for `opentelemetry_sdk::trace::Tracer`
    |                                                              |
    |                                                              required by a bound introduced by this call
    |
    = help: the following other types implement trait `PreSampledTracer`:
              opentelemetry::trace::noop::NoopTracer
              opentelemetry_sdk::trace::tracer::Tracer
note: required by a bound in `OpenTelemetryLayer::<S, T>::with_tracer`
   --> /home/mrcroxx/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-opentelemetry-0.23.0/src/layer.rs:581:32

Proposal

Alternatives

MrCroxx avatar May 23 '24 03:05 MrCroxx

There is a PR open for that:

  • https://github.com/tokio-rs/tracing-opentelemetry/pull/131

sandhose avatar May 23 '24 07:05 sandhose

Fixed in #131.

djc avatar May 24 '24 07:05 djc