Skip to content

OpenTelemetry

Open standards

Every run writes a native trace, events.jsonl: one JSON line per model, tool, or agent call. OpenTelemetry (OTel) is the optional second export: timed spans with a name, attributes, and a parent, so any OTel backend can read the run.

MAS-Lab writes those spans in the wire format of AGNTCY's ioa-observe-sdk. Conversion and OTLP export live in mas-library-telemetry. The native stream does not depend on OTel; you add the library when you want spans.

How MAS-Lab implements it

Live export and replay share one converter (events_to_otel).

uv pip install -e "library-telemetry[convert,verify]"
mas-lab telemetry convert traces/events.jsonl -o otel_sdk_spans.jsonl
mas-lab telemetry push otel_sdk_spans.jsonl   # OTLP to a collector

--events-format otel on mas-ctl writes spans during the run. Pipeline shortcuts: telemetry:pipelines/native-to-otel-json.yaml and export-otel-collector.yaml.

The native event model (an announced stream, not a query interface) is Event model. SCOPE consumes the same runs; see IoC integrations and Tutorial 9.

Dependencies

Piece Package
Conversion, replay, CLI mas-library-telemetry extras convert, verify, bench
Span SDK opentelemetry-sdk, opentelemetry-exporter-otlp-proto-http
AGNTCY observe-sdk ioa-observe-sdk>=1.0.49
Native recorder mas-library-standard observability plugin

Compliance

Spans follow the in-repo span contracts:

mas-lab telemetry verify checks a converted file against those specs. There is no separate OpenTelemetry TCK in this repository.