The telemetry.py module#

Summary#

Telemetry

Pluggable telemetry sink.

LoggingTelemetry

Default sink that writes one JSON line per event at the INFO level.

NullTelemetry

Discard everything (used in tests where logging is noise).

get_default_telemetry

Return the default telemetry.

set_default_telemetry

Override the default sink. Pass None to reset to logging.

Description#

Telemetry hook.

Centralized place to emit per-step events from MCP host interactions:

  • tool_call: Every tool invocation

  • host_turn: Every host round-trip, when the caller reports one

  • validation_end: Final outcome of a validation request

Default implementation logs at INFO via logging in a structured JSON line so consumers (such as Application Insights and OpenTelemetry collectors) can scrape without installing extra dependencies. Replace via set_default_telemetry() to forward elsewhere.

Module detail#

telemetry.get_default_telemetry() Telemetry#

Return the default telemetry.

Returns:
Telemetry

Telemetry produced by the operation.

telemetry.set_default_telemetry(sink: Telemetry | None) None#

Override the default sink. Pass None to reset to logging.

Parameters:
sinkOptional[Telemetry]

Sink to supply to the function.

Returns:
None

The function completes through its side effects.