From https://github.com/open-telemetry/opentelemetry-java/pull/1003#discussion_r392221311:
We should consider exposing an (immutable) list of SpanProcessors added to a TracerSdkProvider to allow users to examine which ones are currently configured.
Not sure I understand why is this useful, is this for testing?
For writing our own unit tests we're able to work without that. For users it could be useful for checking the current configuration and for debugging (e.g. for printing the list in a log). It would only be exposed on the default SDK (for the application/service owner setting up telemetry collection), not on the API level.
Probably you want to have a DebugString method correct?
This way, the multi span processor would need to know how to get a debug string for each of its children, which would only be possible if we add a getDebugString method to the SpanProcessor interface. IMHO, that would be a bit of an overkill just for the sake of getting information to print for debugging.
I opened this issue because I was not happy with the reflection code in https://github.com/open-telemetry/opentelemetry-java/pull/1003#discussion_r392221311 but that code was removed in the meantime, so I'd be fine with leaving it as it is.
At the time the SDK is set up, the user has references to all span processors they configure and could just hold on to those, if desired.
Can we close this @arminru ?