> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/gym/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/gym/_mcp/server.

# nemo_gym.telemetry

NeMo Gym telemetry: optional OpenTelemetry instrumentation via nemo-lens.

Importing this package never requires nemo-lens. Install it with
`uv sync --extra telemetry` and switch it on with a `telemetry:` block or
`NEMO_LENS_ENABLED=1`; with either missing, every instrumentation site in `nemo_gym`
is a \~0-cost no-op.

## Public surface

* :class:`~nemo_gym.telemetry.config.TelemetryConfig` — the `telemetry:` config block.
* :class:`~nemo_gym.telemetry.span_groups.GymSpanGroup` — Gym span groups and presets.
* :func:`~nemo_gym.telemetry.setup.configure_telemetry_env` — orchestrator side; hands
  the settings to spawned server processes through the environment.
* :func:`~nemo_gym.telemetry.setup.init_telemetry` /
  :func:`~nemo_gym.telemetry.setup.get_telemetry` /
  :func:`~nemo_gym.telemetry.setup.shutdown_telemetry` — per-process lifecycle.

Instrumentation primitives (`managed_span` / `span_cm` / `trace_fn` /
`is_span_group_enabled` / `safe_set_span_attributes`) come from
:mod:`nemo_gym.telemetry._fallbacks`, which resolves to the real nemo-lens
implementations when it is installed and to no-op stubs when it is not.

See `nemo_gym/telemetry/README.md` for the design, and
`fern/versions/latest/pages/observability/` for user documentation.

## Submodules

* **[`nemo_gym.telemetry._fallbacks`](/nemo-gym/nemo_gym/telemetry/_fallbacks)**
* **[`nemo_gym.telemetry.config`](/nemo-gym/nemo_gym/telemetry/config)**
* **[`nemo_gym.telemetry.contrib`](/nemo-gym/nemo_gym/telemetry/contrib)**
* **[`nemo_gym.telemetry.endpoints`](/nemo-gym/nemo_gym/telemetry/endpoints)**
* **[`nemo_gym.telemetry.metrics`](/nemo-gym/nemo_gym/telemetry/metrics)**
* **[`nemo_gym.telemetry.setup`](/nemo-gym/nemo_gym/telemetry/setup)**
* **[`nemo_gym.telemetry.span_groups`](/nemo-gym/nemo_gym/telemetry/span_groups)**
* **[`nemo_gym.telemetry.spans`](/nemo-gym/nemo_gym/telemetry/spans)**

## Package Contents

### Data

[`__all__`](#nemo_gym-telemetry-__all__)

### API

```python
nemo_gym.telemetry.__all__ = ['TELEMETRY_KEY_NAME', 'GymSpanGroup', 'TelemetryConfig', 'configure_telemetry_e...
```