Observability nei Sistemi Distribuiti
Da console.log a distributed tracing con OpenTelemetry e LGTM stack
Una guida pratica per implementare observability in un sistema distribuito. Si parte dalla distinzione tra monitoring e observability, si costruisce lo stack LGTM completo, si arriva a gestire tail sampling, routing compliance e PII filtering in produzione. Ogni articolo è accompagnato da codice funzionante su GitHub e scenari di debug reali.
Monitoraggio e observability non sono la stessa cosa
Il monitoraggio risponde a domande che hai previsto: la CPU è sopra soglia, il disco si sta riempiendo, il servizio non risponde. Funziona finché i guasti somigliano a quelli che avevi immaginato quando hai scritto gli alert.
In un sistema distribuito i guasti smettono di somigliare a quello che avevi previsto. La domanda diventa perché questa richiesta, di questo cliente, ha impiegato dodici secondi — e non è una domanda che si può mettere in una dashboard in anticipo. L'observability è la proprietà di un sistema che permette di rispondere a domande che nessuno aveva preparato.
I segnali sono tre, e da soli valgono poco. Le metriche dicono che qualcosa è cambiato, i log dicono cosa è successo in un punto, le tracce dicono dove il tempo se n'è andato lungo il percorso. Il valore sta nel passare dall'uno all'altro senza perdere il filo: dall'alert alla traccia, dalla traccia al log della riga che ha fallito.
Questa serie parte da quel filo e lo segue fino in produzione, dove i problemi smettono di essere concettuali e diventano volume di dati, costi di storage e vincoli di conformita'.
Cosa imparerai
- ✓ Configurare OpenTelemetry su Node.js senza modificare il codice applicativo
- ✓ Costruire lo stack LGTM (Loki, Grafana, Tempo, Mimir) con Docker Compose
- ✓ Debuggare scenari distribuiti reali con distributed tracing e correlazione log
- ✓ Ridurre il volume dati del 90% con tail sampling senza perdere visibilità sugli errori
- ✓ Separare dati di audit da dati tecnici per compliance GDPR/SOC 2
Articoli della serie
- 01Il costo dell'observability si decide in due punti 8 min
Dove metti il Collector e cosa indicizzi: le due scelte che decidono quanto costa osservare un sistema. Topologie, trasporto OTLP, storage LGTM.
→ - 02Tutorial: Distributed Tracing con OpenTelemetry e LGTM Stack 19 min
Guida pratica al distributed tracing con OpenTelemetry e LGTM stack. Tre scenari di debug: silent failure, latency spike, fan-out.
→ - 03OpenTelemetry in Produzione: Tail Sampling e Retention 17 min
Come ridurre il volume dati del 90% senza perdere visibilità sugli errori. Guida pratica con config template e scenario demo.
→ - 04OpenTelemetry in Produzione: Routing dei Dati per Compliance e Costi 18 min
Separare log audit da log tecnici con il routing connector dell'OTel Collector. Demo, compliance GDPR/SOC 2 e retention differenziata.
→ - 05PII Filtering in OpenTelemetry: Proteggere i Dati Sensibili di Keycloak 13 min
Come instrumentare Keycloak e servizi third-party con dati sensibili, riducendo il rischio PII tramite filtering nell'OTel Collector. Tecniche GDPR-compliant.
→ - 06Da console.log a Grafana: logging strutturato e centralizzato con Node.js 8 min
Come passare da console.log a un sistema di logging strutturato e centralizzato con Pino, OpenTelemetry, Loki e Grafana su Node.js in tre step incrementali
→