Skip to content

Label y-axis units on stress-test CPU and inode panels - #69965

Open
charzl wants to merge 3 commits into
saltstack:3008.xfrom
charzl:fix/69944-stress-panel-unit-labels-3008x-fork
Open

Label y-axis units on stress-test CPU and inode panels#69965
charzl wants to merge 3 commits into
saltstack:3008.xfrom
charzl:fix/69944-stress-panel-unit-labels-3008x-fork

Conversation

@charzl

@charzl charzl commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • CPU Usage panels (Master, Minion 1-3, API) use Grafana's percentunit (0-1 ratio where 1.0 == 1 full CPU core, matching rate(container_cpu_usage_seconds_total[...]) semantics from cAdvisor). Without a label, a value like 1.2 is easy to misread as "1.2% of the host" rather than 1.2 CPU cores.
  • Minion Inodes panels, and Master/API Resource Usage (FD/process count) panels, all share Grafana's short unit and had no y-axis label. Each is now labeled by what it actually counts (inodes used vs count (FDs vs processes)) instead of a generic "count".
  • render_panels.py already special-cases bytes-family units to convert to MB and label the axis; this follows the same pattern so every rendered panel states what its numbers mean.

Fixes #69944

Based on 3008.x (this repo's history diverges from master, so the fix is cherry-picked rather than a master-based PR retargeted).

Test plan

  • Verified locally that render_panels.py renders distinct y-axis labels for CPU, Inodes, and FD/process panels

Result can be seen: https://github.com/charzl/salt/actions/runs/31059232360

charzl added 3 commits August 5, 2026 17:05
Fixes saltstack#69944

The CPU Usage panels (Master, Minion 1-3, API) use Grafana's
percentunit, a 0-1 ratio where 1.0 == 1 full CPU core -- matching
rate(container_cpu_usage_seconds_total[...]) semantics from cAdvisor.
Without a label, a value like 1.2 is easy to misread as "1.2% of the
host" rather than 1.2 CPU cores. The Minion Inodes panels use
Grafana's "short" unit (a plain count) and also had no y-axis label.

render_panels.py already special-cases bytes-family units to convert
to MB and label the axis; this follows the same pattern for
percentunit and short so every rendered panel states what its numbers
mean.
.cursor-ai/ was accidentally picked up while preparing this branch and
is unrelated to the y-axis label fix.
The "short" unit covers both inode counts (Minion Inodes) and FD/process
counts (Master & API Resource Usage), which had been collapsed into the
same generic "count" label. Label each by what it actually counts instead.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:full Run the full test suite

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants