perf-sentinel chart v0.9.23
What's new in chart-v0.9.23
This chart release carries the messaging daemon and changes one default that can turn a green pipeline red. No template is touched, so a Deployment, StatefulSet or DaemonSet install renders exactly as it did under 0.9.22, with one exception: the ConfigMap now holds a fourth quality-gate rule. appVersion advances to 0.9.23, the release that admits OpenTelemetry messaging spans as I/O and attributes broker energy to the findings they produce.
Changed (can fail a gate that passed before)
- The default
config.tomlgainsn_plus_one_messaging_warning_max = 3. A values file that keeps the bundledconfig.tomlinherits the fourth gate rule, so a service carrying four or more warning-or-highern_plus_one_messagingfindings starts failing its gate with no configuration change of its own. The threshold counts warning-and-above rather than critical-only on purpose: a Kafka client may already batch the publishes it buffers, so the occurrence count is an upper bound and a zero tolerance would fire on work already done. Override the value underconfig.tomlin your values file to keep the previous behavior. config.tomlaccepts the two new broker energy sections.[green.alumet.broker]measures a declared broker cgroup with Alumet.[green.broker_static]needs no agent at all, an operator declaresnodesand an instance type and the embedded SPECpower table turns that into watts, which is the only path open on a managed broker such as MSK, Confluent Cloud or SQS. Neither is enabled by default and the schema still treatsconfig.tomlas an opaque string, so nothing changes for a values file that does not set them.
Added (companion Grafana dashboard)
The dashboard is examples/grafana-dashboard.json in the repository, deliberately not rendered by the chart, since a dashboard pinned in a chart drifts from the Grafana you already run. Re-import it after upgrading to pick up:
- A messaging series on the slow-span panel, so publish latency is visible beside SQL and HTTP.
- An OTLP span intake panel, plotting
perf_sentinel_otlp_spans_received_totalagainst filtered and rejected spans, which is what tells you the daemon is being fed rather than merely running. - The three missing energy backends on the freshness panel. It plotted Scaphandre and cloud energy only, so an operator running Alumet, Kepler or Redfish saw no staleness signal at all. All five now appear.
- Analysis batch shedding on the headroom panel, from
perf_sentinel_analysis_shed_batches_total. Shedding is the daemon dropping whole analysis batches under queue pressure, so findings go missing with nothing else moving, which makes it the counter to alert on rather than to discover afterwards. - A description on every panel stating what the metric measures and how to read it, since the metric names alone assume knowledge of the pipeline internals.
Behavior
- No template changes. Manifests render identically for every workload kind, so upgrading from
0.9.22rolls nothing beyond the new image and the ConfigMap line above. TheDaemonSetopt-inworkload.daemonset.spanRoutingByTraceIdintroduced in0.9.22is unchanged and still required. - The eight
PrometheusRulealerts are unchanged, and still disabled by default underprometheusRule.enabled. appVersionmoves to0.9.23, so upgrading pulls the new daemon image unlessimage.tagis pinned. That release widens what counts as I/O: publish spans now feedtotal_io_ops, the I/O intensity score and the waste-ratio denominator, so the same traffic scores differently than it did under0.9.22. Read the v0.9.23 release notes before upgrading a cluster whose dashboards or gates track those numbers.
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.9.23Upgrade an existing release:
helm upgrade perf-sentinel oci://ghcr.io/robintra/charts/perf-sentinel --version 0.9.23Keeping the previous gate behavior on a bus-heavy service means overriding the threshold in your own values file. config.toml is one opaque string, so a --set cannot patch a single line inside it, copy the block from values.yaml and edit the rule:
config:
toml: |
[thresholds]
n_plus_one_sql_critical_max = 0
n_plus_one_http_warning_max = 3
n_plus_one_messaging_warning_max = 20 # was absent before 0.9.23
io_waste_ratio_max = 0.30
# ... keep the rest of the default blockFull Changelog: chart-v0.9.22...chart-v0.9.23