Google Cloud Observability include servizi di osservabilità che ti aiutano a comprendere il comportamento, l'integrità e le prestazioni delle tue applicazioni. La visibilità sul comportamento delle applicazioni e sul modo in cui i componenti sono connessi ti aiuta ad anticipare, identificare e rispondere ai cambiamenti imprevisti in modo più rapido ed efficace.
Questo documento include le seguenti informazioni:
- Una panoramica dell'osservabilità e del motivo per cui è importante per mantenere le applicazioni disponibili e affidabili.
- In che modo Google Cloud Observability ti aiuta a monitorare e mantenere l'integrità di applicazioni e infrastruttura.
- Come iniziare a utilizzare l'osservabilità in Google Cloud.
Informazioni sull'osservabilità
L'osservabilità è un approccio olistico alla raccolta e all'analisi dei dati di telemetria per comprendere lo stato dell'ambiente. I dati di telemetria sono metriche, log, tracce e altri dati generati dalle tue applicazioni e dall'infrastruttura dell'applicazione che forniscono informazioni sull'integrità e sulle prestazioni dell'applicazione. L'osservabilità incentrata sulle applicazioni si riferisce a strumenti che consentono di visualizzare e analizzare i dati di telemetria dal punto di vista di un'applicazione.
- Metriche
- Le metriche sono dati numerici su salute o prestazioni che misuri a intervalli regolari nel tempo, ad esempio l'utilizzo della CPU e la latenza delle richieste. Variazioni inattese di una metrica potrebbero indicare un problema da esaminare. Nel tempo, puoi anche analizzare i pattern delle metriche per comprendere meglio i modelli di utilizzo e anticipare le esigenze di risorse.
- Log
Un log è un record generato dell'attività di sistema o dell'applicazione nel tempo. Ogni log è una raccolta di voci di log con timestamp e ogni voce di log descrive un evento in un momento specifico.
Un log spesso contiene informazioni dettagliate e complete che ti aiutano a capire cosa è successo a una parte specifica della tua applicazione. Tuttavia, i log non forniscono informazioni utili su come una modifica a un componente dell'applicazione si rapporti all'attività di un altro componente. Le tracce possono contribuire a colmare questo divario.
- Tracce
Le tracce rappresentano il percorso di una richiesta nelle parti dell'applicazione distribuita. Una metrica o una voce di log in un componente dell'applicazione che ha attivato una notifica di avviso potrebbe essere il sintomo di un problema che ha origine in un altro componente. Le tracce ti consentono di seguire il flusso di una richiesta ed esaminare i dati di latenza per aiutarti a identificare la causa principale di un problema.
- Altri dati
Puoi ottenere ulteriori approfondimenti analizzando metriche, log e tracce nel contesto di altri dati. Ad esempio, un'etichetta per la gravità di un avviso o l'ID cliente associato a una richiesta nei log fornisce un contesto utile per la risoluzione dei problemi e il debug.
Il monitoraggio, il debug e la risoluzione dei problemi delle applicazioni distribuite possono essere difficili perché sono coinvolti molti sistemi e componenti software, spesso con un mix di software open source e commerciali.
Gli strumenti di osservabilità ti aiutano a gestire questa complessità raccogliendo dati significativi e fornendo funzionalità per esplorare, analizzare e correlare i dati. Un ambiente osservabile ti aiuta a:
- Rileva in modo proattivo i problemi prima che si ripercuotano sugli utenti
- Risolvere i problemi noti e nuovi
- Eseguire il debug delle applicazioni durante lo sviluppo
- Pianificare e comprendere l'impatto delle modifiche alle tue applicazioni
- Esplorare i dati per scoprire nuovi approfondimenti
In breve, un ambiente osservabile ti aiuta a mantenere l'affidabilità dell'applicazione. Un'applicazione è affidabile quando soddisfa i tuoi obiettivi attuali per disponibilità e resilienza ai guasti.
Per saperne di più sulle pratiche di affidabilità, inclusi principi e pratiche relativi all'osservabilità, leggi il libro Site Reliability Engineering: How Google Runs Production Systems. Gli argomenti includono:
- Obiettivi del livello di servizio
- Monitoraggio dei sistemi distribuiti
- Avvisi
- Risoluzione dei problemi
- Testare l'affidabilità
Google Cloud Observability
I servizi di Google Cloud Observability ti aiutano a raccogliere, analizzare e correlare i dati di telemetria, sia dalle tue applicazioni sia dall'infrastruttura sottostante. Questi servizi forniscono anche impostazioni predefinite integrate per aiutarti a iniziare più rapidamente, ad esempio dashboard predefinite per le tue applicazioni App Hub e criteri di avviso preconfigurati.
Cloud Monitoring, Cloud Logging e Cloud Trace sono tra i servizi abilitati per impostazione predefinita quando crei un progetto Google Cloud .
Monitoraggio: utilizza le metriche raccolte per monitorare lo stato e le prestazioni, identificare tendenze e problemi e inviare notifiche in caso di cambiamenti nel comportamento.
- Visualizza lo stato delle tue applicazioni App Hub.
- Raccogli automaticamente le metriche per la maggior parte dei Google Cloud servizi.
- Raccogli metriche di sistema e delle applicazioni da applicazioni di terze parti.
- Visualizza e analizza le metriche con dashboard predefinite o personalizzate.
- Utilizza il monitoraggio sintetico per testare le prestazioni delle tue applicazioni.
- Definisci gli obiettivi del livello di servizio (SLO) per monitorare l'affidabilità del servizio.
- Ricevi avvisi quando si verificano problemi.
Logging: utilizza i log raccolti per eseguire il debug, risolvere i problemi e ottenere informazioni sulle tue applicazioni.
- Raccogli automaticamente i log per la maggior parte dei servizi. Google Cloud
- Raccogli automaticamente i log di controllo per la maggior parte dei servizi Google Cloud.
- Raccogli i log da software di terze parti.
- Esplora e analizza i log.
- Utilizza Observability Analytics per eseguire un'analisi dei tuoi log e di altri dati con BigQuery. Ad esempio, puoi utilizzare BigQuery per confrontare gli URL nei log con un set di dati pubblico di URL dannosi noti.
- Crea metriche dai log.
- Ricevi avvisi quando un messaggio specifico viene visualizzato in un log.
Error Reporting: visualizza e analizza gli errori dei servizi cloud in esecuzione:
- Aggrega gli errori rilevati da Error Reporting nelle voci di log e visualizza i log associati.
- Aggrega gli errori che le tue applicazioni inviano all'API Error Reporting.
Trace: visualizza e analizza il flusso e la latenza delle richieste dell'applicazione durante il debug e la risoluzione dei problemi.
- Monitora il modo in cui le richieste si propagano attraverso le tue applicazioni.
- Raccogli i dati di latenza dalle tue applicazioni e visualizza i grafici dei dati.
- Visualizza i report sulla latenza che mostrano i peggioramenti del rendimento.
- Ricevi avvisi per le modifiche al profilo di latenza delle tue applicazioni.
- Esporta le tracce in BigQuery per esplorarle con altri dati.
Cloud Profiler: analizza l'utilizzo di CPU e memoria utilizzata per le tue applicazioni in modo da poter identificare le opportunità per migliorare le prestazioni.
- Raccogli i dati sull'utilizzo della CPU e sull'allocazione della memoria dalle tue applicazioni.
- Identifica le parti di un'applicazione che consumano più risorse e ottieni informazioni sulle prestazioni complessive dell'applicazione.
Inizia
Questa sezione descrive i passaggi che puoi seguire per acquisire familiarità con le funzionalità di osservabilità in Google Cloud.
Prova le guide rapide
Prova le guide rapide per acquisire familiarità con i servizi disponibili.
Esaminare i dati raccolti automaticamente
La maggior parte dei Google Cloud servizi genera automaticamente metriche e log predefiniti. Ciò significa che puoi iniziare a esaminare alcuni dati di osservabilità per i serviziGoogle Cloud supportati senza configurazioni aggiuntive.
- Alcuni Google Cloud servizi come Google Kubernetes Engine (GKE), Compute Engine e Cloud SQL forniscono dashboard predefinite nella console Google Cloud per visualizzare i dati di osservabilità nel contesto del servizio.
- Compute Engine, GKE e Cloud Run generano metriche e log di sistema per impostazione predefinita e tu configuri la raccolta di dati aggiuntivi.
- Cloud Run Functions e App Engine generano automaticamente metriche, log e tracce.
Puoi anche rappresentare graficamente le metriche raccolte in Esplora metriche, visualizzare i log in Esplora log o visualizzare le tracce in Trace. Per esaminare insieme i dati correlati, crea dashboard personalizzate. Ad esempio, puoi creare una dashboard che includa log, metriche delle prestazioni e criteri di avviso per le macchine virtuali.
Configura le VM di Compute Engine per raccogliere dati aggiuntivi
Per impostazione predefinita, le VM di Compute Engine raccolgono solo metriche e log di sistema di base senza Ops Agent
Installa Ops Agent per raccogliere dati di telemetria aggiuntivi (log, metriche e tracce) dalle istanze e dalle applicazioni Compute Engine per la risoluzione dei problemi, il monitoraggio delle prestazioni e la generazione di avvisi.
- Raccogli automaticamente metriche host come metriche di CPU, GPU, memoria e processi.
- Raccogli automaticamente log di sistema come syslog dalle VM Linux e il log eventi di Windows dalle VM Windows.
- Osserva le tue applicazioni con:
- Integrazioni di applicazioni di terze parti per software diffusi come Postgres, MongoDB e Java Virtual Machine con dashboard e policy di avviso preconfigurate
- Metriche Prometheus
- Metriche e tracce OpenTelemetry Protocol (OTLP)
- Log delle applicazioni
- Per un riepilogo dei dati di telemetria raccolti, consulta la panoramica dell'Ops Agent.
Configura i cluster GKE per raccogliere dati aggiuntivi
Per impostazione predefinita, i cluster GKE inviano log e metriche di sistema a Logging e Monitoring. Google Cloud Managed Service per Prometheus gestisce la raccolta di metriche di terze parti e definite dall'utente.
- Utilizza i pacchetti di metriche di osservabilità per comprendere meglio lo stato delle applicazioni e delle risorse del cluster. Ad esempio, le metriche del piano di controllo sono utili per creare SLO per monitorare la disponibilità e la latenza del servizio.
- Monitora applicazioni di terze parti come Postgres, MongoDB e Redis. Queste integrazioni forniscono dashboard e criteri di avviso preconfigurati.
Configura Cloud Run per raccogliere dati personalizzati
Se hai un servizio Cloud Run che scrive metriche Prometheus, puoi utilizzare il sidecar Prometheus per inviare le metriche a Cloud Monitoring.
Se il tuo servizio Cloud Run scrive metriche OTLP, puoi utilizzare un sidecar OpenTelemetry. Per un esempio, consulta il tutorial per la raccolta delle metriche OTLP utilizzando il sidecar.
Instrumentare le applicazioni
L'instrumentazione è un codice che aggiungi a un'applicazione per emettere dati di telemetria. Esistono diversi framework di strumentazione open source che ti consentono di raccogliere metriche, log e tracce dalla tua applicazione e inviare i dati a qualsiasi fornitore, incluso Google Cloud. Tuttavia, potresti non dover strumentare la tua applicazione. Ad esempio, Cloud Run, Cloud Run Functions e App Engine forniscono la tracciabilità automatica.
Per instrumentare l'applicazione, ti consigliamo di utilizzare un framework di instrumentazione indipendente dal fornitore e open source, come OpenTelemetry, anziché API o librerie client specifiche per fornitori e prodotti. Per informazioni sulla strumentazione dell'applicazione, vedi Instrumentazione e osservabilità.
Per esempi di codice che mostrano come instrumentare l'applicazione per inviare dati di telemetria a Google Cloud, vedi quanto segue:
- Panoramica del campione.
- Esempio di strumentazione Go.
- Esempio di strumentazione Java.
- Esempio di strumentazione Node.js.
- Esempio di strumentazione Python.
Potrebbero interessarti anche i seguenti argomenti:
- Scopri di più sulle opzioni di strumentazione per le tracce
- Scopri di più sulla raccolta delle metriche definite dall'utente
- Scopri di più sulla scrittura dei log delle applicazioni