Strumentazione e osservabilità

La strumentazione si riferisce al codice specifico che genera o raccoglie dati sul comportamento di runtime della tua applicazione. All'interno dell'applicazione, gli strumenti, come quelli forniti da OpenTelemetry, possono raccogliere informazioni specifiche del dominio sul runtime del linguaggio, sul framework o sulla logica dell'applicazione e quindi inviare i dati a un progetto Google Cloud o a un'altra destinazione. Questi dati, noti anche come telemetria, includono metrics, log e tracce.

Le metriche a livello di sistema come l'utilizzo della CPU, la memoria utilizzata e l'utilizzo del disco sono utili per rilevare i problemi dell'applicazione, ma non forniscono informazioni dettagliate sui problemi a livello di applicazione. La strumentazione può aiutare la tua applicazione a generare i dati necessari per diagnosticare la causa principale di un problema, poiché la telemetria risultante mostra cosa sta succedendo all'interno dell'applicazione. Ad esempio, i log spesso includono il contesto relativo al programma, come un messaggio di errore specifico o l'analisi dello stack, e la posizione nel codice sorgente. Analogamente, le tracce distribuite aiutano a capire come più servizi interagiscono durante l'elaborazione delle richieste. Le metriche ti permettono di ricevere notifiche quando l'applicazione non funziona correttamente.

La strumentazione dell'applicazione comporta la generazione di telemetria e l'invio a dove è possibile archiviare i dati ed eseguire query. Ad esempio, la strumentazione potrebbe inviare dati di telemetria a un progetto Google Cloud. I servizi nell'osservabilità di Google Cloud consentono di raccogliere, analizzare e correlare i dati di telemetria. Forniscono inoltre valori predefiniti integrati per iniziare più velocemente, come dashboard e criteri di avviso predefiniti. Per ulteriori informazioni sull'osservabilità di Google Cloud, consulta Osservabilità in Google Cloud.

La figura seguente illustra in che modo un'applicazione utilizza la strumentazione per generare e inviare dati di telemetria a un sistema di archiviazione:

Figura che illustra l'architettura della strumentazione in processo.

Come illustrato nella figura precedente, il codice di strumentazione esiste all'interno del processo dell'applicazione e interagisce con l'applicazione per generare dati di telemetria. Il framework di strumentazione esporta quindi la telemetria in un sistema di archiviazione configurato. Nella figura, il sistema di archiviazione è il tuo progetto Google Cloud.

Informazioni sui framework di strumentazione neutrali

Anche se prevedi di inviare telemetria solo a Google Cloud, ti consigliamo di utilizzare un framework di strumentazione open source indipendente dal fornitore per la strumentazione delle tue applicazioni. Questi tipi di framework offrono alcuni vantaggi fondamentali:

Nessun vincolo al fornitore
I framework neutrali non sono legati a nessun fornitore specifico e forniscono un proprio modello dei dati per la telemetria generata. Pertanto, puoi inviare dati a più fornitori e in genere puoi cambiare il fornitore utilizzato senza modificare il codice.
Procedure standardizzate per la raccolta dei dati di telemetria
Framework ben progettati, come OpenTelemetry, forniscono un approccio standardizzato alla raccolta dei dati di telemetria dalle applicazioni. Puoi usare lo stesso framework per le applicazioni scritte nelle lingue supportate. E poiché il framework è standardizzato, puoi raccogliere e confrontare la telemetria di tutti i tuoi servizi.
Librerie interoperabili
I framework di strumentazione includono un ricco ecosistema di librerie che raccoglino segnali di telemetria e tali librerie sono interoperabili. Ad esempio, OpenTelemetry fornisce librerie per raccogliere dati di traccia e dati di metriche. Puoi utilizzare una libreria o entrambe.

Consigli generali

Questa sezione contiene suggerimenti generali su come implementare la tua applicazione. Per indicazioni specifiche per Google Cloud, vedi Scegliere un approccio per la strumentazione.

Per raccogliere metriche, ti consigliamo di utilizzare OpenTelemetry o Prometheus:

  • OpenTelemetry è un progetto open source che fornisce un framework unificato per la strumentazione delle applicazioni. Offre inoltre librerie di strumentazione per le librerie più diffuse. OpenTelemetry fornisce un agente autonomo, OpenTelemetry Collector, in grado di ricevere, trasformare ed esportare la telemetria. Il file di configurazione di OpenTelemetry Collector determina il comportamento di OpenTelemetry Collector. Per inviare la telemetria a un agente o direttamente a un sistema di archiviazione, utilizza il protocollo OpenTelemetry (OTLP).

  • Prometheus è un popolare sistema di monitoraggio open source. Puoi utilizzare le librerie client di Prometheus per generare metriche dall'applicazione ed è disponibile un ecosistema di terze parti di librerie di strumentazione per i framework più diffusi. I client Prometheus espongono le proprie metriche come endpoint HTTP che può essere scansionato da un agente.

Per raccogliere le tracce, ti consigliamo di usare OpenTelemetry.

Per raccogliere i log, ti consigliamo di utilizzare un framework che possa essere configurato per generare log strutturati JSON per Cloud Logging. Per scrivere dati di log, consigliamo quanto segue:

Soluzioni Google Cloud

L'osservabilità di Google Cloud offre opzioni flessibili per la raccolta dei dati di telemetria:

Passaggi successivi

Per maggiori informazioni sull'osservabilità di Google Cloud, consulta Osservabilità in Google Cloud.