Skip to content

Add network aggregate metrics, per-interface errors, and PMID fixes#11

Merged
tallpsmith merged 11 commits into
mainfrom
feature/os-metadata-metrics
Mar 19, 2026
Merged

Add network aggregate metrics, per-interface errors, and PMID fixes#11
tallpsmith merged 11 commits into
mainfrom
feature/os-metadata-metrics

Conversation

@tallpsmith
Copy link
Copy Markdown
Owner

Summary

  • Add 6 network.all.* aggregate metrics (bytes, packets, errors — in/out) that roll up per-interface values
  • Add 2 network.interface.{in,out}.errors per-interface error counters
  • Fix 4 existing per-interface PMIDs to match real Linux PMDA (CLUSTER_NET_DEV=3) item numbering
  • Add optional error_rate stressor field for network error injection (defaults to 0)
  • Aggregates computed using totals-first pattern matching disk domain; sum(per-interface) == aggregate guaranteed exactly
  • PMIDs sourced from src/pmdas/linux/pmda.cCLUSTER_NET_ALL=90 for aggregates

Test plan

  • 6 new stressor parsing tests (error_rate validation, bounds, missing → None)
  • 7 new descriptor tests (corrected PMIDs, new PMIDs, indom checks, complete name set)
  • 11 new compute tests (accumulation, sum invariants, error proportionality, edge cases)
  • Updated metric count assertions in test_cli.py and test_list_metrics.py (63 → 71)
  • ./pre-commit.sh green: ruff, mypy, mandoc, 461 unit/integration + 7 E2E tests

🤖 Generated with Claude Code

Covers network.all.* aggregates, per-interface errors,
and PMID corrections to match real Linux PMDA assignments.
Clarify PMID correction semantics, add error_rate validation range,
document cluster 90 item gaps, and flesh out full test plan.
Address review findings: explicit CLI entry deletion step,
fix broken test_instance_names iteration, task interdependency
note, man page prose placement, correct metric count 63->71.
Support optional error injection for network metrics.
Validated 0.0-1.0, same pattern as noise field.
Correct CLUSTER_NET_DEV item numbers to match Linux PMDA.
Add 6 network.all.* aggregate + 2 per-interface error descriptors.
Totals-first pattern matching disk domain. Errors driven
by optional error_rate stressor field, default 0.
Total metric count: 63 -> 71.
Mandoc requires lines under 80 chars. Also caught two
hardcoded counts in test_cli.py missed by Task 4.
@tallpsmith tallpsmith merged commit ae6c937 into main Mar 19, 2026
4 checks passed
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