> ## Documentation Index
> Fetch the complete documentation index at: https://ctrlrun-docs-python-3-13-3-14.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# OTelEventSink

> Export every `Event` and `Receipt` as OpenTelemetry spans (SPEC-v0.2 §8).

`ctrlrun.otel.OTelEventSink` — class, defined at `src/ctrlrun/otel.py:45`

```python theme={null}
from ctrlrun.otel import OTelEventSink
```

Needs the `otel` extra: `pip install "ctrlrun[otel]"`. Importing it without that raises `MissingDependency` carrying the install command.

```python theme={null}
class OTelEventSink
    def __init__(*, tracer_provider: Any = None, arguments: bool = False, max_open_spans: int = DEFAULT_MAX_OPEN_SPANS)
```

Export every `Event` and `Receipt` as OpenTelemetry spans (SPEC-v0.2 §8).

**Never blocks.** Spans are handed to whatever span processor the application configured
and nothing is flushed synchronously; with no configured tracer provider the API's no-op
provider makes the whole thing free. A process that dies mid-action leaves that span
unended — stated, not solved.

## Next

* [Python API index](/docs/reference/api/index).
* [Get started](/docs/get-started/quickstart) · [Why](/docs/why).
