Blocco C · Il modello per l'Ente — Modulo 13 di 16
Osservabilità ed esercizio
Obiettivi di oggi
- Metriche Prometheus nell'API; dashboard Grafana
- Log con rotazione; i tre pilastri al posto giusto
- Il runbook: il servizio diventa operabile da chiunque
Tre pilastri, tre domande
| Strumento | Domanda a cui risponde | Quando lo guardi |
| Healthcheck | è vivo ADESSO? | docker ps, smoke test |
| Log | cosa è SUCCESSO? | durante un'indagine |
| Metriche | come sta andando NEL TEMPO? | trend, capacità, anomalie |
Senza metriche, il primo alert è la telefonata dell'utente.
Metriche in pratica
# nell'API (prometheus-client):
RICHIESTE = Counter("pratiche_richieste_totali", ..., ["endpoint","esito"])
PRATICHE_TOTALI = Gauge("pratiche_totali", ...)
# endpoint /metrics → Prometheus lo legge ogni 15s
# in Grafana: sum(rate(pratiche_richieste_totali[1m])) * 60
Il runbook
- Avvio/stop · deploy/rollback · backup/restore · "non risponde: cosa guardo, in ordine" · contatti
- Vive nel repository: si aggiorna nello stesso merge request che cambia il servizio
- Chi è di turno alle 22 non deve improvvisare: esegue
Laboratorio (2h)
- /metrics nell'API; stack Prometheus+Grafana collegato allo stack Pratiche
- Due pannelli: richieste/min e pratiche totali
- Runbook compilato; simulazione guasto seguendo SOLO il runbook
Riepilogo e prossimo passo
- L'esemplare Pratiche è COMPLETO: filiera + osservabilità + operabilità
- Ora trasformiamo l'esperienza in metodo
- Modulo 14: migrare un vero servizio legacy da VM