SLA dashboard per Kubernetes: uptime e pod failure rate

SLA dashboard per Kubernetes: come visualizzare uptime, pod failure rate e risorse in un unico pannello

Introduzione

Nel mondo dei microservizi su Kubernetes, monitorare uptime, pod failure rate e consumo di risorse è fondamentale per mantenere gli SLA (Service Level Agreement) sotto controllo. Senza una vista unificata, gli incidenti si propagano, il MTTR (Mean Time to Recovery) aumenta e la compliance con le policy di servizio diventa difficile da dimostrare. In questo articolo, ti guideremo passo‑passo dalla concezione alla messa in produzione di un SLA dashboard per Kubernetes che aggrega tutti i dati chiave in un unico pannello operativo.

1. Pianificazione del progetto

1.1 Definizione degli obiettivi

  • Uptime: percentuale di tempo in cui le applicazioni sono disponibili.
  • Pod failure rate: numero di pod terminati per OOM, crash loop o errori di readiness.
  • Risorse: utilizzo di CPU, memoria e storage per ciascun pod.
  • SLA compliance: confrontare i valori misurati con i target definiti nei contratti di servizio.

1.2 Scelta dello stack tecnologico

Componenti Motivo della scelta
Prometheus Raccolta metriche a livello di cluster e pod.
Grafana Visualizzazione flessibile e supporto a dashboard personalizzate.
Lescopr APM Correlazione tra metriche di infrastruttura e tracing applicativo.
Kube‑State‑Metrics Esposizione dello stato dei pod, deployment e replica set.

1.3 Definizione dei KPI

  • Target uptime: 99,9% mensile.
  • Soglia pod failure rate: < 0,1% delle richieste totali.
  • Utilizzo medio CPU: < 70% per nodo.
  • MTTR: < 5 minuti per incidenti di pod crash.

2. Progettazione della dashboard

2.1 Architettura dei dati

  1. Prometheus raccoglie metriche da kube‑node-exporter, kube‑state‑metrics e dagli endpoint /metrics dei microservizi.
  2. Lescopr APM invia trace a un back‑end centralizzato, arricchendo le metriche con informazioni di business.
  3. Grafana interroga Prometheus e l'API di Lescopr per costruire pannelli compositi.

2.2 Layout consigliato

  • Header: KPI di uptime e SLA compliance.
  • Sezione 1: Grafico a linee dell'uptime per servizio (last 30 giorni).
  • Sezione 2: Bar chart del pod failure rate per namespace.
  • Sezione 3: Heatmap di utilizzo CPU/memoria per nodo.
  • Sezione 4: Tabella di incidenti recenti con link ai trace di Lescopr.

2.3 Lista di controlli fondamentali

  • Verifica che tutti i pod espongano le metriche process_cpu_seconds_total e process_resident_memory_bytes.
  • Configura alert di Prometheus per superamento soglia CPU > 80%.
  • Abilita la raccolta di trace in Lescopr per