Skip to content

Define registry api in api gem #2154

@thompson-tomo

Description

@thompson-tomo

Currently we have the following awkward situation.

  • Instrumentation Library depends on base
  • Base depends on registry (complete implementation)
  • Registry depends on api

By Having the instrumentation library depend on the registry implementation, this appears to go against the below:

This allows end users to consume API only without also consuming the implementation

Third party libraries and frameworks that add instrumentation to their code will have a dependency only on the API of OpenTelemetry client. The developers of third party libraries and frameworks do not care (and cannot know) what specific implementation of OpenTelemetry is used in the final application.

The developers of the final application normally decide how to configure OpenTelemetry SDK and what extensions to use.

To Address this I would propose we introduce a registry api module within the api gem which removes the need for instrumentation to take a dependency on the registry gem.

Further benefit would be that vendors who can implement their own registry using our api and that allow application developers to choose what registry to use as per above.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions