Skip to content

Telemetry

Kilo Code exports traces and logs natively, with telemetry on by default, so the presence of an endpoint is all that enables it. Its spans form their own trace, correlated to the run by resource attribute.

A run configures this only when the deployment already exports telemetry. See Observability for the OTEL_EXPORTER_OTLP_ENDPOINT master switch that gates it.

SignalExported
TracesYes
LogsYes
MetricsNo

Token usage is captured for a run through the metrics path, which parses the CLI’s output rather than relying on OpenTelemetry.

A run sets these standard variables on the container before the session:

VariableValue
OTEL_EXPORTER_OTLP_ENDPOINTthe collector, as a base URL
OTEL_EXPORTER_OTLP_PROTOCOLhttp/protobuf
OTEL_SERVICE_NAMEtcab-harness-kilo
OTEL_RESOURCE_ATTRIBUTESthe run’s tcab.* attributes

Kilo Code documents no inbound trace-context configuration, so it starts a fresh trace. Every exporting harness carries the tcab.harness, tcab.test_case, tcab.variant, tcab.model, and tcab.run_id resource attributes, so the Kilo Code trace for a run is found by querying those attributes or by correlating timestamps against the run’s own spans.

Kilo Code is an OpenCode derivative. Its spans use the opencode.* namespace and it shares OpenCode’s config conventions, so a dashboard built for OpenCode largely works for Kilo Code, with the service name as the discriminator.