Revision history for Punk-Observe
0.10 2026-09-16
- The trace page shows each span's attributes: a + on the row opens a table under it. Assembly works on the indexed 64-byte span, which carries no attributes, so the view read a list that was never filled; the trace's span records are now read once more, filtered on the trace id, and matched by span id.
- Fixes: collapsing a subtree set the hidden attribute on rows whose display: grid rule outranked the browser's [hidden] rule, so nothing was hidden.
0.09 2026-09-16
- Fixes: the flamegraph dropped the ROOT SPAN of every trace. The store hands back a parent span id and the trace page ran it through the resolver written for Trace::analyse's parent INDEX, so the root indexed itself, assembly read that as a cycle and the frame builder skipped it. Both were called `parent`; they are `parent_span_id` and `parent_index` now, so the two cannot be confused again. The waterfall beside it was always right, which is why this went unseen.
- Fixes: collapsing a subtree in the waterfall hid the wrong rows. Rows are emitted chronologically, so descendants are not adjacent when sibling subtrees overlap in time; it walked forward while depth was greater. Collapse is by parent identity now, and every row carries data-parent.
- Fixes: a span in a cycle has depth -1 and was indented -9px, out of its own cell. Clamped, and such a row no longer collapses.
0.08 2026-09-13
- Fixes: the alerts policy hash (every, group_wait, repeat_interval) was taken as a rules seam, so the alerts page showed no rules over a store full of them
- Adds: t/0934-alerts-policy.t
0.07 2026-09-02
- Fixes: the retention cron reads the lease it was granted on perls below 5.32, where SvTRUE(POPs) popped once per mention
- Fixes: a log axis asks whether it is safe the same way
- Adds: t/0005-multieval.t, which reads the sources for the same trap
0.06 2026-09-01
- Fixes: the histogram sum and health check ms tests compare a float64 by value, failed on a long double or quadmath perl
0.05 2026-08-30
- Fixes: a cached panel is no longer partial - the caller's row budget reaches every chunk
- Fixes: a chunk that truncated is never stored, and entries from before this are retired
- Adds: the settled chunks are warmed in the background, off the request path
- Adds: a cold chunk is computed once across the pool, not once per worker
- Adds: punk-observe-warm, one warm pass by hand
- Adds: the log volume, ingest and metrics charts use the chunk cache too
- Adds: the health page reads through the chunk cache - 7.5s to 0.9s over 7d
- Fixes: the arriving, volume and health charts ask for no row ceiling, so a busy chunk is cached instead of rescanned every poll
- Fixes: the chunked path reports degraded and scanned_bytes like the plain one
0.04 2026-08-30
- Fixes: the arriving chart draws a signal with no data as zero instead of dropping it from the legend
- Fixes: builds on perls below 5.36 again - G_LIST issues
- Fixes: the cron closure uses mg_find, not the 5.14-only mg_findext
0.03 2026-08-29
- Adds: dashboard panels keep the settled part of a window, so a refresh recomputes only the live tail
- Fixes: retention adopts the logs of workers that died, which nothing reclaimed before
- Fixes: registering the plugin without an application no longer warns
0.02 2026-08-29
- Adds: Custom Dashboards
- Adds: Health service check
- Adds: Help page
- Fixes to many things accross existing pages and the query language itself
0.01 2026-08-27
First version