Skip to content

Commit d95a347

Browse files
authored
feat: Added exclude_spans option for otel config (#4534)
1 parent d33b285 commit d95a347

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

litestar/contrib/opentelemetry/config.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from __future__ import annotations
22

33
from dataclasses import dataclass, field
4-
from typing import TYPE_CHECKING, Any, Callable
4+
from typing import TYPE_CHECKING, Any, Callable, Literal
55

66
from litestar.contrib.opentelemetry._utils import get_route_details_from_scope
77
from litestar.contrib.opentelemetry.middleware import (
@@ -77,6 +77,8 @@ class OpenTelemetryConfig:
7777
OpenTelemetry supports excluding urls by passing an env in the format '{exclude_urls_env_key}_EXCLUDED_URLS'. With
7878
the default being ``LITESTAR_EXCLUDED_URLS``.
7979
"""
80+
exclude_spans: list[Literal["receive", "send"]] | None = None
81+
"""Optionally exclude HTTP send and/or receive spans from the trace."""
8082
scopes: Scopes | None = field(default=None)
8183
"""ASGI scopes processed by the middleware, if None both ``http`` and ``websocket`` will be processed."""
8284
middleware_class: type[OpenTelemetryInstrumentationMiddleware] = field(

litestar/contrib/opentelemetry/middleware.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ def __init__(self, app: ASGIApp, config: OpenTelemetryConfig) -> None:
3838
client_response_hook=config.client_response_hook_handler, # type: ignore[arg-type]
3939
default_span_details=config.scope_span_details_extractor,
4040
excluded_urls=get_excluded_urls(config.exclude_urls_env_key),
41+
exclude_spans=config.exclude_spans,
4142
meter=config.meter,
4243
meter_provider=config.meter_provider,
4344
server_request_hook=config.server_request_hook_handler,

0 commit comments

Comments
 (0)