Docker Compose setup that:
- Runs metrics receiver with SQLite storage
- Spawns CPU and memory stress workloads using stress-ng
- Uses shared PID namespace (pid: service:cpu-stress) for proper isolation
- Collector gathers metrics and pushes summary on shutdown
Known issue: Container CPU summary may show overflow values on first
sample due to delta calculation - to be fixed in accumulator.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add cgroup-based process grouping to the resource collector. Processes are
grouped by their cgroup path, with container names resolved via configurable
process-to-container mapping.
New features:
- Read cgroup info from /proc/[pid]/cgroup (supports v1 and v2)
- Parse K8s resource notation (500m, 1Gi, etc.) for CPU/memory limits
- Group metrics by container using CGROUP_PROCESS_MAP env var
- Calculate usage percentages against limits from CGROUP_LIMITS env var
- Output cgroup metrics with CPU cores used, memory RSS, and percentages
Environment variables:
- CGROUP_PROCESS_MAP: Map process names to container names for discovery
- CGROUP_LIMITS: Define CPU/memory limits per container in K8s notation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>