Per strumentazione si intende il codice specifico che genera o raccoglie i dati sul comportamento di runtime dell'applicazione. All'interno dell'applicazione, la misurazione, ad esempio quella fornita da OpenTelemetry, può raccogliere informazioni specifiche del dominio sul runtime del linguaggio, sul framework o sulla logica dell'applicazione, per poi inviare questi dati a un progetto Google Cloud o a un'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 il contesto del programma, ad esempio un messaggio di errore o uno stack trace specifico e la posizione nel codice sorgente. Analogamente, le tracce distribuite ti aiutano a capire in che modo più servizi interagiscono durante l'elaborazione delle richieste. Le metriche ti consentono di ricevere una notifica quando l'applicazione non si comporta 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 approfondire Google Cloud Observability, consulta Osservabilità in Google Cloud.
La figura seguente mostra come un'applicazione utilizza la misurazione per generare e inviare la telemetria a un sistema di archiviazione:
Come illustrato nella figura precedente, il codice di misurazione è presente nel processo dell'app e interagisce con l'app per generare i dati di telemetria. Il framework di misurazione 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 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 chiave:
- Nessun vincolo al fornitore
- I framework indipendenti dal fornitore non sono legati a un determinato fornitore e forniscono 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 della telemetria
- Framework ben progettati, come OpenTelemetry, forniscono un approccio standardizzato per raccogliere la telemetria dalle applicazioni. Puoi utilizzare lo stesso framework per le 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 misurazione includono un ricco ecosistema di librerie che raccoglie i segnali di telemetria e sono interoperabili. Ad esempio, OpenTelemetry fornisce librerie per raccogliere i dati delle tracce e raccogliere i dati delle metriche. Puoi utilizzare una o entrambe le librerie.
Consigli generali
Questa sezione contiene consigli 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 fornisce un framework unificato per l'instrumentazione delle applicazioni. Fornisce inoltre librerie di ispezione per le librerie più diffuse. OpenTelemetry fornisce un agente autonomo, OpenTelemetry Collector, che può ricevere, trasformare e 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 sistema di monitoraggio open source molto diffuso. 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 possono essere scremati da 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, ti consigliamo quanto segue:
Soluzioni Google Cloud
Google Cloud Observability offre opzioni flessibili per la raccolta della telemetria:
Per esempi di codice che illustrano come instrumentare l'applicazione per inviare la telemetria a Google Cloud, consulta quanto segue:
Per scoprire come raccogliere e visualizzare i dati di latenza dalle tue applicazioni, consulta Visualizza la latenza delle richieste di app.
Per informazioni sulla soluzione cross-project multicloud completamente gestita di Google Cloud per Prometheus, consulta Google Cloud Managed Service per Prometheus.
Per informazioni su come configurare Ops Agent, consulta i seguenti documenti:
Passaggi successivi
Per ulteriori informazioni su Google Cloud Observability, consulta Osservabilità in Google Cloud.