0Pricing
DevOps Bootcamp · Lezione

Logging strutturato e distributed tracing

Renda osservabili i deployment con log strutturati, ID di correlazione e distributed tracing, così potrà eseguire il debug dei guasti tra i servizi della pipeline CI/CD.

Logging strutturato e distributed tracing è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.

I tre pilastri dell'osservabilità

L'osservabilità si basa su tre pilastri: metriche, log e tracce.

  • Le metriche indicano che c'è un problema
  • I log indicano che cosa è successo
  • Le tracce indicano dove è successo all'interno del flusso di una richiesta

Il monitoraggio della pipeline inizia solitamente dalle metriche; questa lezione approfondisce log e tracce.

Perché usare il logging strutturato

Una riga di log in testo semplice è difficile da interrogare. Un log strutturato è un record leggibile dalle macchine, solitamente in formato JSON, con campi denominati.

I log strutturati possono essere filtrati, aggregati e utilizzati per generare avvisi da strumenti come Loki, Elasticsearch o Datadog.

Testo semplice e strutturato

Confronti una riga non strutturata con una strutturata. La versione strutturata consente di interrogare direttamente status=500.

// Unstructured
Deploy failed for service api at 12:01

// Structured (JSON)
{"level":"error","event":"deploy_failed","service":"api","status":500}

Generare log JSON

La maggior parte dei linguaggi dispone di un logger strutturato. L'idea fondamentale è registrare un oggetto, non una stringa concatenata.

const log = (level, event, fields) =>
  console.log(JSON.stringify({ level, event, ...fields }));
log('info', 'deploy_started', { service: 'api', version: '1.4.2' });

ID di correlazione

Una singola operazione di deploy coinvolge molti step e servizi. Un ID di correlazione, o ID di trace, è un valore univoco associato a ogni riga di log relativa a una stessa operazione logica.

Cercando questo ID è possibile ricostruire l'intera sequenza tra i diversi componenti.

  - name: Set correlation id
    run: echo "TRACE_ID=$(uuidgen)" >> $GITHUB_ENV

Livelli di log

Utilizzi livelli di log coerenti, così può regolare il livello di dettaglio e gli avvisi:

  • debug — diagnostica dettagliata
  • info — eventi normali
  • warn — problemi recuperabili
  • error — errori che richiedono attenzione

Generi avvisi per error, campioni info e mantenga debug disattivato in produzione.

Che cos'è il tracing distribuito

Il tracing distribuito segue una richiesta mentre attraversa diversi servizi. Ogni passaggio è uno span; gli span si collegano in una trace.

Una trace mostra la sequenza temporale e indica quale span è stato lento o ha prodotto un errore, un'informazione preziosa nelle distribuzioni basate su microservizi.

OpenTelemetry

OpenTelemetry (OTel) è lo standard indipendente dal fornitore per generare tracce, metriche e log.

Strumentalizzi l'app con l'SDK OTel ed esporti i dati verso un backend come Jaeger, Tempo o un APM cloud.

import { trace } from '@opentelemetry/api';
const tracer = trace.getTracer('deploy-service');
const span = tracer.startSpan('deploy');
// ... do work
span.end();

Tracciare la pipeline stessa

È possibile tracciare non solo l'app, ma anche la pipeline. Gli strumenti generano uno span per ogni job e step, così è possibile vedere quale fase della CI/CD costituisce il collo di bottiglia.

In questo modo un workflow lungo diventa una rappresentazione visiva a cascata del tempo impiegato.

Aggregazione centralizzata

Invii i log e le tracce di ogni job e servizio a una piattaforma centrale. I runner CI sono effimeri, quindi i log lasciati sul runner scompaiono al termine dell'esecuzione.

Inoltri i dati a un sistema di raccolta dei log durante l'esecuzione, così sarà possibile effettuare analisi post-mortem anche dopo la rimozione del runner.

Dal segnale all'azione

L'osservabilità è utile solo se porta all'azione. Crei dashboard che mettano in evidenza i tassi di errore e le tracce lente, quindi colleghi i pattern critici agli avvisi già configurati.

L'obiettivo è passare da un singolo avviso direttamente alla trace e alla riga di log strutturata che lo spiega.

Verifica rapida

Verifichi la propria comprensione di log e tracce.

Riepilogo

Ha approfondito l'osservabilità con log e tracce.

  • Generi log strutturati (JSON) con livelli coerenti
  • Associ ID di correlazione per seguire una singola operazione
  • Utilizzi il tracing distribuito e OpenTelemetry per individuare gli span lenti o che hanno prodotto errori
  • Aggrеghi tutto centralmente prima che i runner effimeri scompaiano

Questo completa metriche e avvisi, offrendo un quadro completo dell'osservabilità della pipeline.

Domande Frequenti

La lezione «Logging strutturato e distributed tracing» è gratuita?

Sì — il testo completo di «Logging strutturato e distributed tracing» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.

Cosa imparerò in «Logging strutturato e distributed tracing»?

Renda osservabili i deployment con log strutturati, ID di correlazione e distributed tracing, così potrà eseguire il debug dei guasti tra i servizi della pipeline CI/CD. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare DevOps Bootcamp?

Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Logging strutturato e distributed tracing»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?

Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Strategie di monitoraggio delle pipeline
  2. Integrazione con servizi esterni
  3. Configurazione di notifiche e avvisi
  4. Logging strutturato e distributed tracing
← Torna a DevOps Bootcamp