Skip to content

Should Tracers share all configuration objects with TracerFactory? #304

@z1c0

Description

@z1c0

The introduction of "named tracers" brought up an interesting question around shared configuration objects (e.g. SpanProcessors).

Currently, the specification states that SpanProcessors must be registered on Tracer instances (https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/sdk-tracing.md#span-processor). With the introduction of named tracers, the logical counterpart for registering those would be the TracerFactory.
This however, brings up interesting questions:

  • Should all Tracer instances created by the same TracerFactory share the same configuration objects? If e.g. these configuration objects change during the creation of 2 Tracers, should only the latter "see" this changes or should the former one receive those as well?
  • Should a Tracer expose operations to manipulate those objects (e.g. add another SpanProcessor)?
  • If yes, should these changes also affect the TracerFactory and all other Tracers created by it?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions