github robintra/perf-sentinel chart-v0.25.0
perf-sentinel chart v0.25.0

5 hours ago

What's new in chart-v0.25.0

Nothing in the chart moves but the image. No template changes, no values.yaml key is added or removed, the shipped PrometheusRule is untouched, and the rendered perf-sentinel.toml is byte-for-byte what chart-v0.24.0 rendered, same 5477 bytes and the same digest. appVersion moves to 0.25.0 and image.tag follows it to :0.25.0.

What moves inside the pod

An incident carrying a namespace froze the findings of its service in every namespace. On a cluster where each tenant runs the same service in its own namespace, a rollout that fired one alert per namespace recorded one incident per namespace, each holding every tenant's findings. The freeze now leaves out a finding whose k8s.namespace.name grouping attribute names another namespace, and keeps one that carries no such attribute. The chart sets no [detection] grouping_attributes, so the daemon's default list applies, and it puts k8s.namespace.name first: nothing to change in config.toml unless you override that list. The daemon warns at startup when [daemon.incidents] is enabled without the attribute.

GET /api/incidents takes findings=false, which returns each incident without its frozen findings and with finding_count in their place, by id as well as by page. The default response is unchanged, so perf-sentinel query incidents and the Incidents tab of perf-sentinel query monitor see no difference.

The v0.25.0 binary notes describe both.

Upgrade impact

  • Pods roll on the image. helm upgrade replaces them because appVersion and image.tag move together.
  • An incident with a namespace freezes fewer findings. Findings that name another namespace no longer land in it. Incidents already recorded, in the ring or the [daemon.incidents] archive_path file, keep what they froze.
  • checksum/config moves too, and not because your configuration changed. The rendered perf-sentinel.toml is identical, but the ConfigMap carries helm.sh/chart and app.kubernetes.io/version labels that bump with the chart, so the checksum over it differs on every version bump.
  • The example findings dashboard lives outside this chart and moves to version 12. Its Incidents table asks with findings=false and reads finding_count, where it pulled every frozen finding of 50 incidents on each refresh, which Grafana's Infinity backend parser inflated past a 1 GiB memory limit until Grafana was OOM-killed. It still counts the findings of a daemon that ignores the parameter, and __inputs is unchanged. Re-import it wherever you provision it.

Install

The chart is published as an OCI artifact on GHCR, install it directly with no helm repo add step:

helm install perf-sentinel oci://ghcr.io/robintra/charts/perf-sentinel --version 0.25.0

Upgrade an existing release:

helm upgrade perf-sentinel oci://ghcr.io/robintra/charts/perf-sentinel --version 0.25.0

Read docs/HELM-DEPLOYMENT.md for the ServiceMonitor section, sizing and Ingress postures.

If you are upgrading from chart-v0.23.0 or earlier, read the chart-v0.24.0 notes first: that release raises the default workload.statefulset.persistence.size to 2Gi, which an existing StatefulSet does not pick up on its own. From chart-v0.18.0 or earlier, read the chart-v0.19.0 notes as well: that release adds a grouping label to five metrics and is breaking for an unaggregated alert on any of them. From chart-v0.16.0 or earlier, the chart-v0.17.0 notes change the shipped PrometheusRule.

Full Changelog: chart-v0.24.0...chart-v0.25.0

Don't miss a new perf-sentinel release

NewReleases is sending notifications on new releases.