Skip to content

feat: show dataplane CPU of the packet-processing cores - #38

Merged
tbortolossi merged 1 commit into
mainfrom
feat/dp-cpu-active-cores
Sep 24, 2026
Merged

tbortolossi merged 1 commit into
mainfrom
feat/dp-cpu-active-cores

Conversation

@tbortolossi

Copy link
Copy Markdown
Owner

Problem

During a PA-5580 load test, the API and SNMP dashboards both showed 45 % dataplane CPU while the packet-processing cores were at about 72 %.

A probe on the firewall showed why. Each dataplane lists 128 cores in resource-monitor, but only the 80 pan task cores (1–80) process packets. Core 0 and cores 81–127 stay at exactly 0 % in both the minute average and the minute maximum. PAN-OS averages over all 128 cores in the XML API and in SNMP hrProcessorLoad alike: the two were measured within 0.3 point of each other. The all-core figure is correct, but it hides how close the working cores are to saturation.

Change

  • Collector: each dataplane's core=average point gets cpu_active_pct, the mean of the cores with any load during the minute (by maximum when available), and active_cores. An idle dataplane reports 0.0. These are new fields only; no existing field changes type.
  • API dashboards (standard and chassis):
    • a new DP CPU (active cores) tile next to DP CPU (avg). The strip now holds 9 tiles; MP CPU, MP RAM and Session Table are narrower;
    • a Dataplanes (active cores) line in CPU MP / DP;
    • DP CPU (active cores) in the Load Test ramp and the CPU vs Throughput scatter plot.
  • The all-core value is unchanged and still matches SNMP.
  • README and AGENTS.md explain both figures.

Verification

  • The real PA-5580 captures replayed through the new parser give 80 active cores per dataplane at 71–73 %, against 45 % all-core.
  • Tests: 281 OK. New tests cover the PA-5580 case, the idle and no-maximum fallbacks, and the 9-tile strip filling 24 columns edge to edge.
  • Every query of both API dashboards ran against the local InfluxDB: the active-core queries compile, and Grafana reloaded both dashboards with the new strip.

Operator impact

Rebuild the Telegraf image (./generate.sh). The new tile and lines fill in from the first poll after the upgrade.

🤖 Generated with Claude Code

During a load test on a PA-5580 the API and SNMP dashboards both showed
45% dataplane CPU while the operator read about 75% on the cores. Each
dataplane lists 128 cores in resource-monitor, but only the 80 pan task
cores process packets; core 0 and cores 81-127 stay at exactly 0%, in
both the average and the maximum of the minute. PAN-OS averages over all
128 cores, in the XML API and in SNMP hrProcessorLoad alike (measured:
API and SNMP within 0.3 point), so the all-core figure understates the
load of the cores that saturate.

The collector now adds cpu_active_pct (mean of the cores with any load
during the minute, by maximum when available) and active_cores to each
dataplane's core=average point; an idle dataplane reports 0.0. The API
dashboards show it as a DP CPU (active cores) tile next to DP CPU (avg)
(the strip now has nine tiles), as a line in CPU MP / DP, and in the
Load Test ramp and CPU vs Throughput scatter plot. The all-core value
is unchanged and still matches SNMP.

Replaying the PA-5580 captures gives 80 active cores per dataplane at
71-73% against 45% all-core.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@tbortolossi
tbortolossi merged commit 3b0258e into main Sep 24, 2026
5 checks passed
@tbortolossi
tbortolossi deleted the feat/dp-cpu-active-cores branch September 24, 2026 16:02
@tbortolossi tbortolossi mentioned this pull request Sep 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant