Strumentazione e osservabilità

Con strumentazione si intende il codice specifico che genera o raccoglie i dati sul comportamento di runtime della tua applicazione. All'interno dell'applicazione, come quella fornita da OpenTelemetry, possono raccogliere informazioni specifiche per il dominio dal runtime del linguaggio, dal framework o dalla logica dell'applicazione, quindi inviare i dati a un progetto Google Cloud o a qualche altra destinazione. Questi dati, noti anche come telemetria, includono metriche, log e tracce.

Le metriche a livello di sistema, come l'utilizzo della CPU, della memoria e del disco, sono utili per rilevare i problemi dell'applicazione, ma non forniscono molte informazioni sui problemi a livello di applicazione. La misurazione può aiutare la tua applicazione a generare i dati necessari per diagnosticare la causa principale di un problema, perché la telemetria risultante mostra cosa sta succedendo all'interno dell'applicazione. Ad esempio, i log spesso includono contesto come uno specifico messaggio di errore o uno stacktrace e la posizione nel del codice sorgente. Analogamente, le tracce distribuite aiutano a comprendere e interagire tra loro durante l'elaborazione delle richieste. Le metriche ti consentono di ricevere notifiche quando l'applicazione non funziona correttamente.

L'instrumentazione dell'applicazione prevede la generazione di telemetria e il suo invio dove i dati possono essere archiviati e sottoposti a query. Ad esempio, la tua strumentazione potrebbe inviare dati di telemetria a un progetto Google Cloud. I servizi di Google Cloud Observability ti aiutano a raccogliere, analizzare e correlata i dati di telemetria. Forniscono inoltre i valori predefiniti integrati per aiutarti a iniziare più velocemente, ad esempio dashboard e criteri di avviso predefiniti. Per per ulteriori informazioni su Google Cloud Observability, consulta Osservabilità in Google Cloud.

La figura seguente illustra come un'applicazione utilizza la strumentazione per genera e invia dati di telemetria a un sistema di archiviazione:

Figura che illustra l'architettura dell'instrumentazione in processo.

Come illustrato nella figura precedente, il codice della strumentazione è presente all'interno del al processo dell'applicazione e interagisce con quest'ultima per generare telemetria e i dati di Google Cloud. Il framework di strumentazione esporta quindi i dati di telemetria in un ambiente completamente gestito di Google Cloud. Nella figura, il sistema di archiviazione è il tuo progetto Google Cloud.

Informazioni sui framework di misurazione indipendenti dal fornitore

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

Nessun vincolo al fornitore
I framework neutrali dal fornitore non sono legati a un particolare fornitore fornisce il proprio modello dei dati per la telemetria generata. Di conseguenza, puoi inviare dati a più fornitori e in genere puoi cambiare il fornitore che utilizzi senza modificare il codice.
Procedure standardizzate per la raccolta dei dati di telemetria
Framework ben progettati, come OpenTelemetry, forniscono un approccio standardizzato per raccogliere la telemetria dalle applicazioni. Puoi usare lo stesso framework per applicazioni scritte nelle lingue supportate. Inoltre, 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 raccolgono segnali di telemetria e queste librerie sono interoperabili. Ad esempio, OpenTelemetry fornisce librerie per raccogliere dati di traccia e per raccolgono dati sulle metriche. Puoi utilizzare una o entrambe le librerie.

Consigli generali

Questa sezione contiene suggerimenti generali su come eseguire l'instrumentazione della tua applicazione. Per indicazioni specifiche per Google Cloud, consulta Scegliere un approccio di misurazione.

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

  • OpenTelemetry è un progetto open source che offre un framework unificato per la strumentazione delle applicazioni. Fornisce inoltre librerie di strumenti per le librerie più diffuse. OpenTelemetry fornisce un agente autonomo, OpenTelemetry Collector, che può ricevere, trasformare, ed esportare i dati di telemetria. Il file di configurazione di OpenTelemetry Collector determina il comportamento di OpenTelemetry Collector. Per inviare dati di telemetria a un agente o direttamente a un sistema di archiviazione, utilizza la classe Protocollo OpenTelemetry (OTLP).

  • Prometheus è un'architettura open source molto diffusa di monitoraggio delle conversioni. Puoi utilizzare le librerie client Prometheus per generare metriche dalla tua applicazione ed esiste un ecosistema di terze parti di librerie di strumenti per i framework più diffusi. I client Prometheus espongono le proprie metriche come endpoint HTTP che può essere scraping da parte di un agente.

Per raccogliere le tracce, ti consigliamo di utilizzare OpenTelemetry.

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

Soluzioni Google Cloud

Google Cloud Observability offre opzioni flessibili per la raccolta dei dati di telemetria:

Passaggi successivi

Per ulteriori informazioni su Google Cloud Observability, consulta Osservabilità in Google Cloud.