opentelemetry-rust
opentelemetry-rust copied to clipboard
[Regression]: opentelemetry_sdk::TracerProvider::span_processors no longer public
What happened?
PR https://github.com/open-telemetry/opentelemetry-rust/pull/1755 did some API clean-ups, but it was too aggressive and turned some useful APIs private. In particular opentelemetry_sdk::TracerProvider::span_processors
was pub
but is now only pub(crate)
.
I have an HTTP server that acts as an OTLP proxy. A tracer provider is configured with exporters. This tracers is then used either to directly write traces for the main server, or to forward traces received through POST /v1/traces/
.
To forward already existing spans received through OTLP, you need access to the span_processors
. This was previously exposed by opentelemetry_sdk::TracerProvider::span_processors
in version 0.23.0
but since version 0.24.0
it is no longer exposed.
Please expose this method so it is possible to wrap a tracer provider into a higher level tracer provider adapter.
API Version
0.24.0
SDK Version
0.24.1
What Exporter(s) are you seeing the problem on?
OTLP
Relevant log output
error[E0624]: method `span_processors` is private
--> crates/core/src/opentelemetry/mod.rs:28:43
|
28 | Self::Regular(provider) => provider.span_processors(),
| ^^^^^^^^^^^^^^^ private method
|
::: /home/demurgos/.cargo/registry/src/index.crates.io-6f17d22bba15001f/opentelemetry_sdk-0.24.1/src/trace/provider.rs:92:5
|
92 | pub(crate) fn span_processors(&self) -> &[Box<dyn SpanProcessor>] {
| ----------------------------------------------------------------- private method defined here