Capacity planning
/agents/<id> → onglet Capacity affiche par serveur l’évolution sur 14 jours de CPU%, mem%, et throughput réseau, plus une projection régression linéaire “quand atteignez-vous le plafond”. La croissance disque se trouve sous l’onglet Disks.
Ce que fait la hub
Par métrique par agent il calcule :
SELECT time_bucket('1 day', time)::DATE AS day, AVG(metric_expr)::FLOAT AS avg, MAX(metric_expr)::FLOAT AS max FROM <metric_table> WHERE agent_id = X AND time > NOW() - INTERVAL '14 days' GROUP BY 1 ORDER BY 1;Puis régression linéaire sur day-index → avg :
slope = (n × ΣXY − ΣX × ΣY) / (n × ΣX² − ΣX²)days_until_ceiling = (ceiling − current_avg) / slope, avec projection de date. Slope négative ou =0 → pas de projection.
Pour le disque par mount : identique mais depuis disk_metrics par (agent, mount_point). Ceiling = total_bytes.
Ce que vous voyez dans l’UI
Trois cards dans l’onglet Capacity :
- CPU 14d — bars daily avg + max, current value, slope/jour, date de projection si slope > 0
- Memory 14d — idem
- Network 14d — total rx+tx Mbps. Pas de ceiling (pas de limite fixe), juste la tendance.
Par card vous voyez :
current avg X.XX % · slope +0.012/day[14 barres daily : clair = max, foncé = avg]~ 73 days until 100% (2026-07-22)L’onglet Disks affiche par mount-point la même chose plus inode%, perms, fs-type. “Days until full” coloré : rouge < 30j, jaune < 90j, sinon muted.
Ce que ce n’est PAS
- Pas de ML / time-series forecasting. Régression linéaire sur 14 points — marche pour une croissance monotone (logs qui s’accumulent, db storage). Marche mal pour des workloads spiky/saisonniers.
- Pas d’intervalle de confiance. Vous obtenez une date de projection, pas une bande [P5–P95].
- Pas de modèle multi-ressources. La projection CPU ignore la memory-pressure.
Pour du vrai capacity planning sur systèmes critiques, un spreadsheet avec jugement d’expert ou un outil comme Prophet. Cet onglet sert à couvrir le cas 80% : “quand ce disque sera-t-il plein”.
Astuce : alert rule + capacity ensemble
Combinez avec l’alert builder :
metric: disk_pctoperator: >threshold: 85duration: 3600 (1h au-dessus de 85%)severity: warnL’onglet Capacity vous montre probablement déjà depuis des semaines quand ça arrivera. L’alerte est le failsafe — capacity planning est l’early warning.