Skip to content

[Regression]: opentelemetry_sdk::TracerProvider::span_processors no longer public #2060

Closed
@demurgos

Description

@demurgos

What happened?

PR #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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriage:todoNeeds to be traiged.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions