Skip to content

Discovery of instrumentations for dynamic creation #5079

@thompson-tomo

Description

@thompson-tomo

What are you trying to achieve?

I want the auto-instrumentation agent as well as SDK to only be creating/managing tracers when the instrumentation scope is compatible with the application.

For instance a contrib component might require v2+ of the library which is being instrumented however in v4.2 of the library, native instrumentation was added so the contrib should become a no-op. As such I want to ensure that when the library is updated that the user doesn't start seeing duplicate traces. The assumption is the contrib library is also updated.

Further this ensures that the auto-instrumentation agent doesn't need to take a dependency on the libraries being instrumented which reduces CVE risk due to reduced dependencies.

What would you like to see?

Instrumentations can self register themselves in a manner which enables the sdk to know about them. This enables the sdk to initialise only the instrumentations compatible & configure them using the options.

Additional context.

In ruby we are achieving this by having instrumentations inherit from a base instrumentation library which registers to a registry but this functionality has broad usage for auto instrumentation.

Tip: React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    spec:traceRelated to the specification/trace directory

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions