Serie · 6 articoli

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.

6
Articoli pubblicati
83
Minuti di lettura
Intermedio
Livello
OpenTelemetryGrafanaLokiTempoNode.jsLGTM

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

  1. 01
    Il 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.

  2. 02
    Tutorial: 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.

  3. 03
    OpenTelemetry 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.

  4. 04
    OpenTelemetry 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.

  5. 05
    PII 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.

  6. 06
    Da 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