Skip to content

feat(asgi): respect suppress_http_instrumentation in ASGI middleware#4375

Merged
xrmx merged 5 commits intoopen-telemetry:mainfrom
liustve:asgi-suppress-http-spans
Apr 3, 2026
Merged

feat(asgi): respect suppress_http_instrumentation in ASGI middleware#4375
xrmx merged 5 commits intoopen-telemetry:mainfrom
liustve:asgi-suppress-http-spans

Conversation

@liustve
Copy link
Copy Markdown
Contributor

@liustve liustve commented Mar 30, 2026

Description

ASGI OpenTelemetryMiddleware should respect the suppress_http_instrumentation context and skip server span creation when HTTP instrumentation is suppressed.

parities the same feature in aiohttp-server: https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/instrumentation/opentelemetry-instrumentation-aiohttp-server/src/opentelemetry/instrumentation/aiohttp_server/__init__.py#L446

What changed:

  • Added is_http_instrumentation_enabled() check in OpenTelemetryMiddleware.call
  • Added test_suppress_http_instrumentation test validating zero spans are emitted when suppression is active

Fixes #4376

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

  • Unit testing

Does This PR Require a Core Repo Change?

  • Yes. - Link to PR:
  • No.

Checklist:

See contributing.md for styleguide, changelog guidelines, and more.

  • Followed the style guidelines of this project
  • Changelogs have been updated
  • Unit tests have been added
  • Documentation has been updated

@liustve liustve requested a review from a team as a code owner March 30, 2026 04:38
Add is_http_instrumentation_enabled() check in OpenTelemetryMiddleware.__call__
so ASGI server spans are skipped when HTTP instrumentation is suppressed.

Every other HTTP instrumentor (client and server) already honors this flag.
ASGI was the only one that did not.
Copy link
Copy Markdown
Contributor

@tammy-baylis-swi tammy-baylis-swi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm! Other approvers will have a look

@tammy-baylis-swi tammy-baylis-swi requested a review from a team March 30, 2026 19:39
@tammy-baylis-swi tammy-baylis-swi moved this to Approved PRs in Python PR digest Mar 30, 2026
@liustve
Copy link
Copy Markdown
Contributor Author

liustve commented Mar 30, 2026

Awesome, thanks! @tammy-baylis-swi

liustve added a commit to aws-observability/aws-otel-python-instrumentation that referenced this pull request Mar 30, 2026
*Description of changes:*

- Suppress redundant HTTP/ASGI spans on MCP client and server by default

- Patch `OpenTelemetryMiddleware.__call__` to respect
`suppress_http_instrumentation` context
note: SHOULD remove this patch once
open-telemetry/opentelemetry-python-contrib#4375
is merged

- Skip creating MCP spans for initialize and notifications/initialized
handshake messages

- Introduce `OTEL_MCP_SUPPRESS_HTTP_INSTRUMENTATION` env var, defaults
to true


<img width="1038" height="546" alt="image"
src="https://github.com/user-attachments/assets/d6f0254a-3b4f-4d46-bb32-424d6fee12b3"
/>

 


By submitting this pull request, I confirm that you can use, modify,
copy, and redistribute this contribution, under the terms of your
choice.
@xrmx xrmx enabled auto-merge (squash) April 3, 2026 08:54
@xrmx xrmx merged commit 5430c75 into open-telemetry:main Apr 3, 2026
867 of 868 checks passed
@github-project-automation github-project-automation bot moved this from Approved PRs to Done in Python PR digest Apr 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

ASGI OpenTelemetryMiddleware does not respect suppress_http_instrumentation

3 participants