Osservabilità per gli sviluppatori di applicazioni

Se scrivi applicazioni, puoi strumentare il codice per generare dati di telemetria e ottenere una profonda osservabilità nel comportamento del runtime interno dell'applicazione. Questa pagina introduce i concetti di strumentazione in-process, spiega i vantaggi dei framework indipendenti dal fornitore come OpenTelemetry e ti indirizza a guide e esempi di codice specifici per la lingua per Google Cloud Observability.

Che cosa sono la strumentazione e l'osservabilità?

Il termine strumentazione si riferisce al codice specifico che genera o raccoglie dati sul comportamento del runtime dell'applicazione. All'interno dell'applicazione, la strumentazione, come quella fornita da OpenTelemetry, può raccogliere informazioni specifiche del dominio sul runtime del linguaggio, sul framework o sulla logica dell'applicazione e quindi inviare questi dati a un Google Cloud progetto o a un'altra destinazione. Questi dati, noti anche come telemetria, includono log, metriche 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 problemi con l'applicazione, ma non forniscono molti insight sulle problematiche a livello di applicazione. La strumentazione può aiutare l'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, come un messaggio di errore specifico o uno stacktrace, e la posizione nel codice sorgente. Allo stesso modo, le tracce distribuite ti aiutano a capire come interagiscono più servizi durante l'elaborazione delle richieste. Le metriche ti consentono di determinare quando l'applicazione non si comporta correttamente.

La strumentazione dell'applicazione comporta la generazione di dati di telemetria e l'invio a un sistema in cui i dati possono essere archiviati ed eseguiti query. Ad esempio, la strumentazione potrebbe inviare dati di telemetria a un Google Cloud progetto. 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 iniziare più rapidamente, come dashboard e policy di avviso predefinite. Per saperne di più su Google Cloud Observability, consulta Osservabilità in Google Cloud.

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

Figura che illustra l'architettura dell'instrumentazione in-process.

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 i dati di telemetria in un sistema di archiviazione configurato. Nella figura, il sistema di archiviazione è il tuo Google Cloud progetto.

Perché utilizzare framework di strumentazione indipendenti 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 strumentare le applicazioni. Questi tipi di framework presentano alcuni vantaggi chiave:

Nessun vincolo al fornitore
I framework indipendenti dal fornitore non sono vincolati a un fornitore specifico e forniscono il proprio modello dei dati per i dati di telemetria generati. Di conseguenza, puoi inviare dati a più fornitori e in genere puoi cambiare fornitore senza modificare il codice.
Procedure standardizzate per la raccolta di dati di telemetria
I framework ben progettati, come OpenTelemetry, forniscono un approccio standardizzato alla raccolta di dati di telemetria dalle applicazioni. Puoi utilizzare lo stesso framework per le applicazioni scritte in linguaggi supportati. Poiché il framework è standardizzato, puoi raccogliere e confrontare i dati di 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 dati di metriche. Puoi utilizzare una o entrambe le librerie.

Determinare la strategia di strumentazione

Esempi e guide all'implementazione