open-telemetry / open-telemetry/opentelemetry-ruby

Define registry api in api gem

Open
#2,154 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

keep
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.