Revision history for Punk-OpenTelemetry
0.07 2026-08-26
- An outbound call joins the trace it was made from.
- A traceparent the caller already set is honoured as the parent and
replaced in place.
- Punk::OpenTelemetry::SpanRef, a BORROWED span handle with no
DESTROY: the request's span belongs to the instrumentation, and a
handle to it in the owning class would free what the response side
is about to end.
- Span: add sampled, child_of and traceparent.
- The logs signal is the application's own logger: $c->log is tapped
through pk_abi v4 and exported with its request's trace id.
- REMOVED: the $c->otel_log helper
0.06 2026-08-26
- Metrics and logs encode. Both encoders existed in the header and the
exporter never dispatched to them, so every signal but traces was
refused at the last step.
- One eval per signal in flush. A failure in any one signal aborted
the block, so metrics failing to encode meant logs were never
drained: two signals lost to one broken encoder.
0.05 2026-08-23
- Fixed the module failing to load with "undefined symbol:
clock_gettime" on glibc before 2.17 (Debian wheezy, reported by
CPAN Testers on 5.20, 5.22 and 5.24). clock_gettime lives in librt
there, so the configure probe now retries with -lrt and links it
when that is what makes it work.
0.04 2026-08-20
- FIX: change abi version checks from == to <=
- Fixed a SEGFAULT on perls before 5.32, POPs
- Fixed t/07-metrics.t failing on every perl built uselongdouble
0.03 2026-08-20
- Fixed a SEGFAULT on perls before 5.20, reported by CPAN Testers
against 0.01 on 5.18.2 (FreeBSD 9.2, gcc 4.2.1) and 5.18.4
(Linux, gcc 12). Eleven XSUBs returned by assigning &PL_sv_undef to an
SV* RETVAL. The typemap mortalises RETVAL, so each of those
returns decremented the refcount of an IMMORTAL and before
5.20 immortals have no refcount protection, so the decrements
are real and the SV is eventually freed underneath the
interpreter.
0.02 2026-08-19
- Fixed a SEGFAULT on perls before 5.20, reported by CPAN Testers
against 0.01 on 5.18.2 (FreeBSD 9.2, gcc 4.2.1) and 5.18.4
(Linux, gcc 12). Eleven XSUBs returned by assigning &PL_sv_undef to an
SV* RETVAL. The typemap mortalises RETVAL, so each of those
returns decremented the refcount of an IMMORTAL and before
5.20 immortals have no refcount protection, so the decrements
are real and the SV is eventually freed underneath the
interpreter.
0.01 2026-08-19
First version