From d81d888327cd907fd8fe571e897f2548db50b284 Mon Sep 17 00:00:00 2001 From: Dirkjan Ochtman Date: Mon, 15 Jul 2024 23:02:43 +0200 Subject: [PATCH 1/3] sdk: expose hidden Tracer::should_sample() method --- opentelemetry-sdk/src/trace/tracer.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/opentelemetry-sdk/src/trace/tracer.rs b/opentelemetry-sdk/src/trace/tracer.rs index 0639515adc..f3182d388e 100644 --- a/opentelemetry-sdk/src/trace/tracer.rs +++ b/opentelemetry-sdk/src/trace/tracer.rs @@ -11,7 +11,7 @@ use crate::{ trace::{ provider::TracerProvider, span::{Span, SpanData}, - IdGenerator, SpanEvents, SpanLimits, SpanLinks, + IdGenerator, ShouldSample, SpanEvents, SpanLimits, SpanLinks, }, InstrumentationLibrary, }; @@ -166,6 +166,14 @@ impl Tracer { pub fn id_generator(&self) -> &dyn IdGenerator { &*self.provider.config().id_generator } + + /// The [`ShouldSample`] associated with this tracer. + /// + // Note: this is necessary for tracing-opentelemetry's `PreSampledTracer`. + #[doc(hidden)] + pub fn should_sample(&self) -> &dyn ShouldSample { + &*self.provider.config().sampler + } } impl opentelemetry::trace::Tracer for Tracer { From e57025e293eb19fd8afc9bd3bfae1d2b7106bfa3 Mon Sep 17 00:00:00 2001 From: Dirkjan Ochtman Date: Mon, 15 Jul 2024 23:04:46 +0200 Subject: [PATCH 2/3] sdk: clean up trailing whitespace in CHANGELOG --- opentelemetry-sdk/CHANGELOG.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/opentelemetry-sdk/CHANGELOG.md b/opentelemetry-sdk/CHANGELOG.md index abf7eedfbf..a6c28cd48e 100644 --- a/opentelemetry-sdk/CHANGELOG.md +++ b/opentelemetry-sdk/CHANGELOG.md @@ -34,13 +34,13 @@ - Added `non_exhaustive` annotation to [`trace::Config`]. Marked [`config`] as deprecated since it's only a wrapper for `Config::default` - Removed [`Tracer::tracer_provder`] and [`Tracer::instrument_libraries`] as it's not part of the spec. -- **Breaking** [#1830](https://github.com/open-telemetry/opentelemetry-rust/pull/1830/files) [Traces SDK] Improves +- **Breaking** [#1830](https://github.com/open-telemetry/opentelemetry-rust/pull/1830/files) [Traces SDK] Improves performance by sending Resource information to processors (and exporters) once, instead of sending with every log. If you are an author of Processor, Exporter, the following are *BREAKING* changes. - Implement `set_resource` method in your custom SpanProcessor, which invokes exporter's `set_resource`. - Implement `set_resource` method in your custom SpanExporter. This method should save the resource object in original or serialized format, to be merged with every span event during export. - - `SpanData` doesn't have the resource attributes. The `SpanExporter::export()` method needs to merge it + - `SpanData` doesn't have the resource attributes. The `SpanExporter::export()` method needs to merge it with the earlier preserved resource before export. - **Breaking** [1836](https://github.com/open-telemetry/opentelemetry-rust/pull/1836) `SpanProcessor::shutdown` now takes an immutable reference to self. Any reference can call shutdown on the processor. After the first call to `shutdown` the processor will not process any new spans. @@ -95,17 +95,17 @@ The `LogRecord::target` field contains the actual target/component emitting the - **Breaking** [#1624](https://github.com/open-telemetry/opentelemetry-rust/pull/1624) Remove `OsResourceDetector` and `ProcessResourceDetector` resource detectors, use the [`opentelemetry-resource-detector`](https://crates.io/crates/opentelemetry-resource-detectors) instead. -- [#1636](https://github.com/open-telemetry/opentelemetry-rust/pull/1636) [Logs SDK] Improves performance by sending +- [#1636](https://github.com/open-telemetry/opentelemetry-rust/pull/1636) [Logs SDK] Improves performance by sending Resource information to processors (and exporters) once, instead of sending with every log. If you are an author of Processor, Exporter, the following are *BREAKING* changes. - Implement `set_resource` method in your custom LogProcessor, which invokes exporter's `set_resource`. - Implement `set_resource` method in your custom LogExporter. This method should save the resource object in original or serialized format, to be merged with every log event during export. - - `LogData` doesn't have the resource attributes. The `LogExporter::export()` method needs to merge it + - `LogData` doesn't have the resource attributes. The `LogExporter::export()` method needs to merge it with the earlier preserved resource before export. - Baggage propagation error will be reported to global error handler [#1640](https://github.com/open-telemetry/opentelemetry-rust/pull/1640) - Improves `shutdown` behavior of `LoggerProvider` and `LogProcessor` [#1643](https://github.com/open-telemetry/opentelemetry-rust/pull/1643). - - `shutdown` can be called by any clone of the `LoggerProvider` without the need of waiting on all `Logger` drops. Thus, `try_shutdown` has been removed. + - `shutdown` can be called by any clone of the `LoggerProvider` without the need of waiting on all `Logger` drops. Thus, `try_shutdown` has been removed. - `shutdown` methods in `LoggerProvider` and `LogProcessor` now takes a immutable reference - After `shutdown`, `LoggerProvider` will return noop `Logger` - After `shutdown`, `LogProcessor` will not process any new logs From d198215678d36e8d20fd49fc755eaafe51e26e28 Mon Sep 17 00:00:00 2001 From: Dirkjan Ochtman Date: Mon, 15 Jul 2024 23:03:05 +0200 Subject: [PATCH 3/3] sdk: bump version to 0.24.1 --- opentelemetry-sdk/CHANGELOG.md | 4 ++++ opentelemetry-sdk/Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/opentelemetry-sdk/CHANGELOG.md b/opentelemetry-sdk/CHANGELOG.md index a6c28cd48e..fbd8d978d8 100644 --- a/opentelemetry-sdk/CHANGELOG.md +++ b/opentelemetry-sdk/CHANGELOG.md @@ -2,6 +2,10 @@ ## vNext +## v0.24.1 + +- Add hidden method to support tracing-opentelemetry + ## v0.24.0 - Add "metrics", "logs" to default features. With this, default feature list is diff --git a/opentelemetry-sdk/Cargo.toml b/opentelemetry-sdk/Cargo.toml index 6652268867..7429e7ce0c 100644 --- a/opentelemetry-sdk/Cargo.toml +++ b/opentelemetry-sdk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "opentelemetry_sdk" -version = "0.24.0" +version = "0.24.1" description = "The SDK for the OpenTelemetry metrics collection and distributed tracing framework" homepage = "https://github.com/open-telemetry/opentelemetry-rust" repository = "https://github.com/open-telemetry/opentelemetry-rust"