Skip to content

Fix exemplar support #3031

Open
Open
@fcollonval

Description

Describe your environment

OS: Debian 12
Python version: Any
Package version: 0.49b0 and later

What happened?

Since 1.28.0, the opentelemetry Python SDK supports exemplars. However some instrumentation libraries does not add exemplars because the measure are added/recorded outside of the active span.

For example, in the asgi instrumentation, all measures should be taken within the use_span context rather than outside:

self.active_requests_counter.add(1, active_requests_count_attrs)
try:
with trace.use_span(span, end_on_exit=False) as current_span:

Steps to Reproduce

You can test the repository https://github.com/webscit/opentelemetry-demo-python with OTEL_AUTO_INSTRUMENTATION_LEVEL = 1, it uses fastapi instrumentation (but the flaw is actually in the asgi instrumentation).

Expected Result

Exemplars are recorded for all Python instrumentations

Actual Result

Some instrumentations are missing exemplars

Additional context

I don't know if all packages or only a subset of them are concerned by this. I have at least identified 3 cases:

Package Line to blame
asgi
wsgi
tornado

Would you like to implement a fix?

None

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions