How it works
During each ApplicationPersona reconciliation (every 60 seconds), the controller queries Prometheus for the last hour of container metrics and stores the results in.status.resourceBaseline.
Baseline fields
| Field | Description | PromQL metric |
|---|---|---|
avgCPU | Average CPU usage (millicores) | container_cpu_usage_seconds_total |
avgMemory | Average memory usage | container_memory_working_set_bytes |
peakCPU | Peak CPU usage (millicores) | container_cpu_usage_seconds_total |
peakMemory | Peak memory usage | container_memory_working_set_bytes |
150m), memory in Mi or Gi (e.g., 256Mi, 1.2Gi).
PromQL queries
The operator runs four queries per reconciliation:Average CPU
Average memory
Peak CPU
Peak memory
Pods are matched using a regex pattern
<appName>.* based on the persona’s spec.name field. The container!="POD" and container!="" filters exclude pause containers and empty container names.Graceful failure
If Prometheus is unreachable or returns no data:- The baseline fields are left empty (not cleared)
- The reconciliation continues normally
- Validation and health checks are unaffected
- A log message is emitted but no error condition is set
Configuration
Via Helm
Via CLI flag
Checking baselines
ApplicationPersona validation
How validation uses resource constraints
Cluster discovery
Cluster-level resource aggregation