Repository navigation
koto 1.3.1
koto 1.3.1
1.3.1 supersedes 1.3.0, which was published without its
SHA256SUMS.ascand cannot be fixed because releases are immutable. Code is identical to 1.3.0; only the version stamp inkotodiffers. Use 1.3.1.
OpenTelemetry export (#19)
koto can now export metrics, logs and spans to any OTLP receiver. It is off by default: with no endpoint configured, no exporter, socket or goroutine is created.
- Traces go into the microVM. A turn's span tree runs host → guest (
guest.turn,guest.worker, tool and think spans) → proxy LLM request. Guest spans travel back over vsock, so the guest still has no egress. The daemon treats guest spans as untrusted: it forces the trace id, re-parents unknown or cyclic spans, clamps timestamps, caps sizes and strips reserved attributes. - Metrics: LLM requests, request duration and tokens (input, output, cache read, cache create), plus per-group and host resource gauges for CPU, memory and disk.
- Logs: turn output is bridged to OTel logs. Bodies are replaced with a placeholder unless
KOTO_OTEL_CAPTURE_CONTENT=1. - Transports: OTLP/HTTP protobuf and gRPC.
Configuration
Standard OTel env vars: OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_PROTOCOL, the per-signal OTEL_EXPORTER_OTLP_{TRACES,METRICS,LOGS}_{ENDPOINT,PROTOCOL}, OTEL_EXPORTER_OTLP_HEADERS, OTEL_SERVICE_NAME, OTEL_RESOURCE_ATTRIBUTES and OTEL_METRIC_EXPORT_INTERVAL. KOTO_OTEL_ENDPOINT also works; OTEL_* takes precedence. Set these in the host environment only; they cannot be changed through ctl.
Default protocol is
http/protobuf(the OTel spec default). SetOTEL_EXPORTER_OTLP_PROTOCOL=grpcfor a gRPC receiver.http/jsonand unknown values disable OTel with a logged error.
Security
- Header values and endpoint credentials are never logged.
- An unreachable or slow receiver never blocks koto.
- The proxy strips
traceparent/tracestatebefore requests go upstream. - New dependencies are pinned exactly (OTel Go v1.46.0 / log v0.22.0, released 2026-08-25). grpc stays at v1.83.2. govulncheck v1.7.0 finds 0 vulnerabilities affecting koto.
Upgrade note
fc-agent changed (guest span emission), so this release ships a new rootfs.img. Run make fetch && make install.
🤖 Generated with Claude Code