Skip to content

TelemetryMiddleware

autogen.beta.middleware.builtin.telemetry.TelemetryMiddleware #

TelemetryMiddleware(*, tracer_provider=None, capture_content=True, agent_name=None, provider_name=None, model_name=None)

Bases: MiddlewareFactory

Middleware that emits OpenTelemetry spans for agent turns, LLM calls, tool executions, and human input.

Follows the OpenTelemetry GenAI Semantic Conventions.

PARAMETER DESCRIPTION
tracer_provider

Optional TracerProvider. Defaults to the global provider.

TYPE: TracerProvider | None DEFAULT: None

capture_content

Whether to include message content, tool arguments/results in spans. Defaults to True.

TYPE: bool DEFAULT: True

agent_name

Agent name for span attributes. If not set, defaults to "unknown".

TYPE: str | None DEFAULT: None

provider_name

LLM provider name (e.g. "openai", "anthropic").

TYPE: str | None DEFAULT: None

model_name

Model name (e.g. "gpt-4o-mini").

TYPE: str | None DEFAULT: None

Source code in autogen/beta/middleware/builtin/telemetry.py
def __init__(
    self,
    *,
    tracer_provider: TracerProvider | None = None,
    capture_content: bool = True,
    agent_name: str | None = None,
    provider_name: str | None = None,
    model_name: str | None = None,
) -> None:
    self._tracer = _get_tracer(tracer_provider)
    self._capture_content = capture_content
    self._agent_name = agent_name or "unknown"
    self._provider_name = provider_name
    self._model_name = model_name