Importer
OpenTelemetry
Many agent frameworks emit OpenTelemetry GenAI spans with the model and token usage of every call. Point their exporter at a collector you run, save the traces to a file, and import it.
- Run the OpenTelemetry Collector with the file exporter (config below).
- Point your framework's OTLP exporter at the collector.
- Run your agents; traces collect in
traces.jsonl. - Run
import-otel. Span names are matched to the blueprint's step names, and unmatched spans are listed so you can rename steps.
Collector config
# otel-collector.yaml: run the OpenTelemetry Collector (contrib) on your machine or server
receivers:
otlp:
protocols: { http: {}, grpc: {} }
exporters:
file:
path: ./traces.jsonl
service:
pipelines:
traces: { receivers: [otlp], exporters: [file] }Import
python harness.py import-otel traces.jsonl --blueprint .harness/harness.yaml --out .harness/runs/otel.jsonl.gz
python harness.py check-logs .harness/harness.yaml --runs .harness/runsWhere the log lands
In the trace file your collector writes.
How it reaches the harness
It is already on your machine or server; copy it to where you run the harness.
The importer reads both the older and newer GenAI attribute names, counts cache reads as input, and keeps cost when the span carries it.