Skip to content

koto 1.3.1

Choose a tag to compare

@jpzk jpzk released this 13 Oct 12:32
Immutable release. Only release title and notes can be modified.

koto 1.3.1

1.3.1 supersedes 1.3.0, which was published without its SHA256SUMS.asc and cannot be fixed because releases are immutable. Code is identical to 1.3.0; only the version stamp in koto differs. 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). Set OTEL_EXPORTER_OTLP_PROTOCOL=grpc for a gRPC receiver. http/json and 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/tracestate before 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