github robintra/perf-sentinel v0.16.0

latest release: chart-v0.16.0
6 hours ago

What's new in v0.16.0

tempo and jaeger-query gain an absolute search window. Building it turned up the reason one was needed: jaeger-query --service had never sent a window at all.

The window that was never sent

jaeger-query expressed its window as lookback. Victoria Traces implements the Jaeger query API but reads that parameter only on its service-graph endpoint, never on /api/traces, so it was discarded and the search ran from the Unix epoch, bounded by nothing but --max-traces. Nothing in the output says so: a search over all of history returns the recent traces too.

lookback=1s                        5 traces
start/end over that same second    0 traces

Both window forms now send explicit start and end. Against Jaeger upstream this swaps one honored parameter for two others, same results. Against Victoria Traces, expect fewer traces, and the right ones.

An absolute window

perf-sentinel jaeger-query --endpoint http://victoria-traces:10428/select/jaeger \
  --service order-svc --from 2026-08-20T15:00:00Z --to 2026-08-20T16:00:00Z

ISO 8601 UTC, given as a pair, mutually exclusive with --lookback and with --trace-id. A lookback drifts because it resolves when the request is issued, which makes it useless for re-reading a specific hour three days ago.

Upgrade impact

  • Victoria Traces needs a path in --endpoint: http://host:10428/select/jaeger. The example in docs/INTEGRATION.md omitted it and had never worked. Jaeger upstream stays at the root.
  • Breaking, perf-sentinel-core only: six ingest functions take a SearchWindow where they took a Duration. Wrap a lookback as SearchWindow::Lookback(d). tempo::parse_lookback, jaeger_query::parse_lookback and their InvalidLookback variants are gone; ingest::lookback::parse is public and unchanged.
  • The lookback parser accepts d, so 7d and 180d no longer have to be written in hours.
  • CLI surface otherwise unchanged, daemon API untouched, MSRV stays 1.97.1.

Full detail in CHANGELOG.md.

Verifying this release

# Binary integrity via SLSA Build L3 attestation
gh attestation verify perf-sentinel-linux-amd64 \
  --repo robintra/perf-sentinel

# A periodic disclosure produced by this binary
perf-sentinel verify-hash --report perf-sentinel-report.json \
  --expected-identity "https://github.com/robintra/perf-sentinel/.github/workflows/release.yml@refs/tags/v0.16.0" \
  --expected-issuer "https://token.actions.githubusercontent.com" \
  --verify-binary ./perf-sentinel-linux-amd64

gh CLI 2.49 or newer required for gh attestation verify.

Don't miss a new perf-sentinel release

NewReleases is sending notifications on new releases.