open-telemetry / open-telemetry/opentelemetry-ruby
Define registry api in api gem
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 606
- Forks
- 301
- Avg merge
- 3d 19h
- Merged PRs (30d)
- 42
Description
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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the dependency relationships described between the instrumentation library, base, registry, and api gems, then examine how the current registry implementation is exposed. Done means the api gem provides a registry API so instrumentation depends only on the API while applications and vendors can choose or implement the registry.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- api, observability-sre
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100