Changes for version 0.10 - 2026-09-16

  • ADDS: http.server.request.duration, recorded by the SDK itself. Claimed by the POD since this distribution was written and never built. Recorded on EVERY request, including the unsampled ones: a duration histogram over a sample is not a smaller histogram, it is a wrong one. Seconds, the conventions' boundaries, and http.route absent rather than substituted - on a metric that substitution is a million series.
  • ADDS: a `metrics` switch beside server/client/db, and install() takes the meter. No meter means no clock is even stashed.
  • ADDS: a database span is a CHILD of the request that issued it. Started with a NULL parent it got a fresh trace id, so every statement was its own trace one span long while the request sat in another. Needs Punk 0.50 (pk_abi v5 current_of); against an older Punk it still roots, as before.
  • ADDS: an outbound call with no caller-set traceparent is a child of the request being served, instead of a root.
  • ADDS: DBIx::Loop's statement observer is registered. Three comments here said it was and it never had been; install() now reports db_loop.
  • FIXES: the boot line printed the configured propagators, which said they did something. The automatic instrumentation reads and injects W3C traceparent only, whatever OTEL_PROPAGATORS says, so the line told an operator the opposite of the truth. Dropped from the banner and documented instead.

Modules

OpenTelemetry for Punk: traces, metrics and logs over OTLP
the OTEL_* environment surface and precedence
OTLP on the wire
OTLP over gRPC
where the spans come from
the logs signal
the payload the encoders take
trace context across a process boundary
what produced this telemetry
schema URLs and the version converter
OpenTelemetry for a Punk application