feat: expose job resource summaries and Prometheus metrics #10

Closed
thesimplekid wants to merge 0 commits from metrics into main
Owner

Expose attributable resource measurements for Firecracker jobs so operators can compare template sizes and concurrency using observed memory, CPU, execution time, and failure evidence.

  • Collect guest memory/headroom, VMM cgroup CPU and memory, OOM evidence, disk/network counters, phase timings, template settings, and observed concurrency.
  • Expose live and retained per-job JSON summaries through the job API. Checkpoint measurements across controller restarts, preserve partial reports, and bound retention with job history.
  • Export resource histograms, completion/OOM/missing-measurement counters, and live memory/concurrency gauges through /metrics, using bounded labels. Document measurement boundaries and Grafana/PromQL examples.

Validation: all 276 tests, strict Clippy, and Nix checks passed. Tests cover attribution, counter/peak semantics, partial reports, persistence, retention, protocol compatibility, and Prometheus export.

Deployment requires rebuilding guest images alongside the controller and launcher. Live Firecracker validation and representative three-by-8-GiB versus four-by-6-GiB workload comparisons remain pending.

Fixes #9.

Expose attributable resource measurements for Firecracker jobs so operators can compare template sizes and concurrency using observed memory, CPU, execution time, and failure evidence. - Collect guest memory/headroom, VMM cgroup CPU and memory, OOM evidence, disk/network counters, phase timings, template settings, and observed concurrency. - Expose live and retained per-job JSON summaries through the job API. Checkpoint measurements across controller restarts, preserve partial reports, and bound retention with job history. - Export resource histograms, completion/OOM/missing-measurement counters, and live memory/concurrency gauges through `/metrics`, using bounded labels. Document measurement boundaries and Grafana/PromQL examples. Validation: all 276 tests, strict Clippy, and Nix checks passed. Tests cover attribution, counter/peak semantics, partial reports, persistence, retention, protocol compatibility, and Prometheus export. Deployment requires rebuilding guest images alongside the controller and launcher. Live Firecracker validation and representative three-by-8-GiB versus four-by-6-GiB workload comparisons remain pending. Fixes #9.
Collect guest memory, VMM CPU and memory, OOM evidence, and disk and
network counters to guide Firecracker sizing and concurrency decisions.
Expose live and retained summaries through the job API, including phase
timings, template resources, and observed concurrency.

Checkpoint measurements across controller restarts, retain partial reports
when final samples are missing, and bound retention with job history.

Export resource histograms, completion and missing-measurement counters,
and live memory and concurrency gauges through the existing /metrics
endpoint. Keep labels bounded and omit missing histogram observations.
Document measurement boundaries and Grafana/PromQL sizing examples.

Cover attribution, persistence, protocol compatibility, failure handling,
and Prometheus export with tests.

Rebuild guest images alongside the controller and launcher to enable
collection. Live Firecracker validation remains pending.
thesimplekid closed this pull request 2026-10-22 17:38:58 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
thesimplekid/rith!10
No description provided.