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 perché l'osservabilità è importante per mantenere le applicazioni disponibili e affidabili.
- In che modo Google Cloud Observability ti aiuta a monitorare e mantenere l'integrità delle applicazioni e dell'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 del tuo ambiente. I dati di telemetria sono metriche, log, tracce e altri dati generati dalle applicazioni e dall' infrastruttura delle applicazioni che forniscono informazioni sull'integrità e sulle prestazioni delle applicazioni. 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 sull'integrità o sulle prestazioni che misuri a intervalli regolari nel tempo, ad esempio l'utilizzo della CPU e la latenza delle richieste. Variazioni impreviste di una metrica potrebbero indicare un problema da esaminare. Nel tempo, puoi anche analizzare i pattern delle metriche per comprendere meglio i pattern 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 dell'applicazione. Tuttavia, i log non forniscono informazioni utili su come una modifica in un componente dell'applicazione si riferisce all'attività in un altro componente. Le tracce possono aiutarti a colmare questa lacuna.
- Tracce
Le tracce rappresentano il percorso di una richiesta attraverso le 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 un 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 che può essere 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:
- Rilevare in modo proattivo i problemi prima che influiscano sugli utenti
- Risolvere i problemi noti e nuovi
- Eseguire il debug delle applicazioni durante lo sviluppo
- Pianificare e comprendere l'impatto delle modifiche alle applicazioni
- Esplorare i dati per scoprire nuovi approfondimenti
In breve, un ambiente osservabile ti aiuta a mantenere l'affidabilità delle applicazioni. Un'applicazione è affidabile quando soddisfa gli obiettivi attuali di disponibilità e resilienza agli errori.
Per scoprire di più sulle pratiche di affidabilità, inclusi i principi e le 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
- Test per l'affidabilità
Google Cloud Observability
I servizi di Google Cloud Observability ti aiutano a raccogliere, analizzare e correlare i dati di telemetria, sia dalle applicazioni sia dall'infrastruttura sottostante. Questi servizi forniscono anche impostazioni predefinite integrate per aiutarti a iniziare più rapidamente, ad esempio dashboard predefinite per le applicazioni App Hub e policy di avviso preconfigurate.
Cloud Monitoring, Cloud Logging e Cloud Trace sono tra i servizi abilitati per impostazione predefinita quando crei un Google Cloud progetto.
Monitoraggio: utilizza le metriche raccolte per monitorare l'integrità e le prestazioni, identificare tendenze e problemi e inviare notifiche per le modifiche del comportamento.
- Visualizza l'integrità delle 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 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 approfondimenti sulle applicazioni.
- Raccogli automaticamente i log per la maggior parte dei Google Cloud servizi.
- Raccogli automaticamente i log di controllo per la maggior parte dei Google Cloud servizi.
- 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 pubblici di URL dannosi noti.
- Crea metriche dai log.
- Ricevi avvisi quando un messaggio specificato 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 applicazioni inviano all'API Error Reporting.
Trace: visualizza e analizza il flusso e la latenza delle richieste delle applicazioni durante il debug e la risoluzione dei problemi.
- Tieni traccia della propagazione delle richieste nelle applicazioni.
- Raccogli i dati di latenza dalle applicazioni e visualizza i grafici dei dati.
- Visualizza i report sulla latenza che mostrano i peggioramenti delle prestazioni.
- Ricevi avvisi per le modifiche al profilo di latenza delle applicazioni.
- Esporta le tracce in BigQuery in modo da poterle esplorare con altri dati.
Cloud Profiler: analizza l'utilizzo della CPU e la memoria utilizzata per le tue applicazioni in modo da poter identificare le opportunità di miglioramento delle prestazioni.
- Raccogli i dati sull'utilizzo della CPU e sull'allocazione della memoria dalle applicazioni.
- Identifica le parti di un'applicazione che consumano la maggior parte delle risorse e ottieni approfondimenti 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.
Esamina 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 servizi supportati Google Cloud senza ulteriori configurazioni.
- Alcuni Google Cloud servizi, come Google Kubernetes Engine (GKE), Compute Engine e Cloud SQL, forniscono dashboard predefinite nella Google Cloud console 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 configurano la raccolta di dati aggiuntivi.
- Le funzioni Cloud Run 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 i dati correlati insieme, crea dashboard personalizzate. Ad esempio, puoi creare una dashboard che includa log, metriche delle prestazioni e policy 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 di 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 riepiliego dei dati di telemetria raccolti, consulta la panoramica di 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 risorse delle applicazioni e dei cluster. Ad esempio, le metriche del piano di controllo sono utili per creare SLO per monitorare la disponibilità e la latenza dei servizi.
- Monitora le applicazioni di terze parti come Postgres, MongoDB, e Redis. Queste integrazioni forniscono dashboard e policy di avviso preconfigurate.
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 servizio Cloud Run scrive metriche OTLP invece, puoi utilizzare un sidecar OpenTelemetry. Per un esempio, consulta il tutorial sulla raccolta delle metriche OTLP utilizzando il sidecar.
Strumenta le applicazioni
La strumentazione è il codice che aggiungi a un'applicazione per emettere dati di telemetria. Esistono diversi framework di strumentazione open source che consentono di raccogliere dati di log, metriche e tracce dall'applicazione e quindi inviarli a qualsiasi fornitore, incluso Google Cloud. Tuttavia, potresti non dover strumentare l'applicazione. Ad esempio, Cloud Run, le funzioni Cloud Run e App Engine forniscono la tracciabilità automatica.
Per strumentare l'applicazione, ti consigliamo di utilizzare un framework di strumentazione open source e indipendente dal fornitore, come OpenTelemetry, anziché API o librerie client specifiche del fornitore e del prodotto. Per informazioni su questi framework, consulta Strumentazione e osservabilità e Scegliere un approccio di strumentazione.
Per esempi di codice che illustrano come strumentare l'applicazione per inviare dati di telemetria a Google Cloud, consulta quanto segue:
- Panoramica degli esempi.
- Esempio di strumentazione Go.
- Esempio di strumentazione Java.
- Esempio di strumentazione Node.js.
- Esempio di strumentazione Python.
Potresti anche essere interessato a esplorare i seguenti argomenti:
- Scopri di più sulle opzioni di strumentazione per le tracce
- Scopri di più sulla raccolta di metriche definite dall'utente
- Scopri di più sulla scrittura dei log delle applicazioni