The ``telemetry.py`` module
===========================
.. py:module:: ansys.fluent.mcp.common.telemetry
Summary
-------
.. py:currentmodule:: telemetry
.. tab-set::
.. tab-item:: Classes
.. list-table::
:header-rows: 0
:widths: auto
* - :py:obj:`~ansys.fluent.mcp.common.telemetry.Telemetry`
- Pluggable telemetry sink.
* - :py:obj:`~ansys.fluent.mcp.common.telemetry.LoggingTelemetry`
- Default sink that writes one JSON line per event at the INFO level.
* - :py:obj:`~ansys.fluent.mcp.common.telemetry.NullTelemetry`
- Discard everything (used in tests where logging is noise).
.. tab-item:: Functions
.. list-table::
:header-rows: 0
:widths: auto
* - :py:obj:`~get_default_telemetry`
- Return the default telemetry.
* - :py:obj:`~set_default_telemetry`
- Override the default sink. Pass ``None`` to reset to logging.
.. toctree::
:titlesonly:
:maxdepth: 1
:hidden:
Telemetry
LoggingTelemetry
NullTelemetry
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 :mod:`logging` in a structured
JSON line so consumers (such as Application Insights and OpenTelemetry collectors)
can scrape without installing extra dependencies. Replace via
:func:`set_default_telemetry` to forward elsewhere.
..
!! processed by numpydoc !!
Module detail
-------------
.. py:function:: get_default_telemetry() -> Telemetry
Return the default telemetry.
:Returns:
:obj:`Telemetry`
Telemetry produced by the operation.
..
!! processed by numpydoc !!
.. py:function:: set_default_telemetry(sink: Optional[Telemetry]) -> None
Override the default sink. Pass ``None`` to reset to logging.
:Parameters:
**sink** : :obj:`Optional`\[:obj:`Telemetry`]
Sink to supply to the function.
:Returns:
:data:`python:None`
The function completes through its side effects.
..
!! processed by numpydoc !!