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 utilizzo di CPU, memoria e utilizzo del disco, sono utili per rilevare i problemi della tua applicazione, ma molto insight sui problemi a livello di applicazione. La strumentazione può aiutarti generare i dati di cui hai bisogno diagnosticare la causa principale di un problema, perché la telemetria risultante mostra per capire cosa sta succedendo all'interno della tua applicazione. Ad esempio, i log spesso includono contesto come un messaggio di errore specifico o l'analisi dello stack, nonché la posizione 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.

La strumentazione dell'applicazione comporta la generazione e l'invio della telemetria in cui è possibile archiviare i dati ed eseguire 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 correlare i dati di telemetria. Forniscono anche impostazioni predefinite integrate per aiutarti a ad esempio per le dashboard predefinite e i criteri di avviso. 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 della strumentazione in corso.

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 strumentazione indipendente dal fornitore

Anche se prevedi di inviare dati di telemetria solo a Google Cloud, ti consigliamo di utilizzare un framework di strumentazione open source indipendente dal fornitore per instrumentare i tuoi diverse 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. Pertanto, possono inviare dati a più fornitori e di solito puoi modificare il fornitore che utilizzi senza modificare il codice.
Procedure standardizzate per la raccolta dei dati di telemetria
I framework ben progettati, come OpenTelemetry, offrono un approccio standardizzato alla raccolta dei dati di telemetria dalle applicazioni. Puoi usare lo stesso framework per applicazioni scritte nelle lingue supportate. E poiché è standardizzato, puoi raccogliere e confrontare i dati di telemetria per 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 delle librerie o entrambe.

Consigli generali

Questa sezione contiene consigli generali su come instrumentare il tuo un'applicazione. Per indicazioni specifiche per Google Cloud, consulta Scegliere un approccio alla strumentazione.

Per raccogliere metriche, consigliamo di utilizzare OpenTelemetry o Prometheus:

  • OpenTelemetry è un progetto open source che offre un framework unificato per la strumentazione delle applicazioni. Offre inoltre librerie di strumentazione per le biblioteche più diffuse. OpenTelemetry fornisce un agente autonomo, OpenTelemetry Collector, che può ricevere, trasformare, ed esportare i dati di telemetria. La 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 lo librerie client di Prometheus per generare metriche dalla tua applicazione ed esiste un un ecosistema di librerie di strumentazione 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 tracce, consigliamo di utilizzare OpenTelemetry.

Per raccogliere i log, consigliamo di utilizzare un framework che può essere configurato per produrre Log strutturati 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 saperne di più su Google Cloud Observability, consulta Osservabilità in Google Cloud.