Osservabilità in Google Cloud

L'osservabilità di Google Cloud 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 sulla connessione dei componenti ti consente di anticipare, identificare e rispondere a cambiamenti imprevisti in modo più rapido ed efficace.

Questo documento include le seguenti informazioni:

Informazioni sull'osservabilità

L'osservabilità è un approccio olistico per raccogliere e analizzare i dati di telemetria al fine di comprendere lo stato del tuo 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 delle applicazioni.

Metriche
Le metriche sono dati numerici relativi a integrità o prestazioni che vengono misurati a intervalli regolari nel tempo, ad esempio l'utilizzo della CPU e la latenza delle richieste. Modifiche impreviste a 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 un sistema o di un'applicazione nel tempo. Ogni log è una raccolta di voci di log con timestamp e ogni voce di log descrive un evento in un determinato momento.

Un log contiene spesso informazioni dettagliate che ti aiutano a capire cosa è successo con una parte specifica della tua applicazione. Tuttavia, i log non forniscono informazioni utili su come una modifica in un componente dell'applicazione si relaziona all'attività in un altro componente. Le tracce possono contribuire a colmare questa lacuna.

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 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 sulla latenza per aiutarti a identificare la causa principale di un problema.

Altri dati

Puoi ottenere informazioni aggiuntive 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 forniscono 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 una combinazione di software open source e commerciale.

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 i problemi in modo proattivo prima che si ripercuotano sugli utenti
  • Risolvere i problemi noti e quelli nuovi
  • Eseguire il debug delle applicazioni durante lo sviluppo
  • Pianifica e comprendi 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 quanto riguarda la disponibilità e la resilienza agli errori.

Per scoprire di più sulle pratiche di affidabilità, inclusi i principi e le pratiche correlati all'osservabilità, leggi il libro Site Reliability Engineering: How Google Runs Production Systems. Gli argomenti includono:

Google Cloud Observability

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.

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 l'integrità e le prestazioni, identificare tendenze e problemi e inviare notifiche in caso di variazioni di comportamento.

  • Raccogli automaticamente le metriche per la maggior parte dei servizi Google Cloud.
  • 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.
  • Raccogliere automaticamente gli audit log per la maggior parte dei servizi Google Cloud.
  • Raccogli i log dal software di terze parti.
  • Esplora e analizza i log.
  • Utilizza Log Analytics per eseguire un'analisi dei log e di altri dati con BigQuery. Ad esempio, puoi utilizzare BigQuery per confrontare gli URL nei tuoi log con un set di dati pubblico di URL dannosi noti.
  • Creare metriche dai log.
  • Ricevere avvisi quando un messaggio specifico viene visualizzato in un log.

Error Reporting: visualizza e analizza gli errori dei servizi cloud in esecuzione:

  • Aggregare gli errori rilevati da Error Reporting nelle voci dei log e visualizzare i log associati.
  • Aggrega gli errori inviati dalle tue applicazioni all'API Error Reporting.

Trace: visualizza e analizza il flusso e la latenza delle richieste di applicazioni durante il debug e la risoluzione dei problemi.

  • Monitora il modo in cui le richieste si propagano nelle tue applicazioni.
  • Raccogli i dati di latenza dalle tue applicazioni e visualizza i grafici dei dati.
  • Visualizza i report sulla latenza che mostrano i cali di rendimento.
  • Ricevi avvisi per le modifiche al profilo di latenza delle tue applicazioni.
  • Annota le tracce con attributi personalizzati.
  • Esporta le tracce in BigQuery in modo da poterle esplorare con altri dati.

Cloud Profiler: analizza l'utilizzo della CPU e della memoria per le tue applicazioni in modo da 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 ricava 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 di avvio rapido

Prova le guide rapide per acquisire familiarità con i servizi disponibili.

Esaminare i dati raccolti automaticamente

La maggior parte dei servizi Google Cloud genera automaticamente metriche e log predefiniti. Ciò significa che puoi iniziare a esaminare alcuni dati di osservabilità per i servizi Google Cloud supportati senza ulteriore configurazione.

  • Alcuni servizi Google Cloud, 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 per impostazione predefinita log e metriche di sistema e puoi configurare la raccolta di dati aggiuntivi.
  • Le funzioni Cloud Run e App Engine generano automaticamente metriche, log e tracce.

Puoi anche visualizzare le metriche raccolte in Esplora metriche, visualizzare i log in Esplora log o le tracce in Traccia. Per esaminare insieme i dati correlati, crea dashboard personalizzate. Ad esempio, puoi creare una dashboard che include log, metriche sul rendimento e criteri di avviso per le macchine virtuali.

Configura le VM di Compute Engine per raccogliere dati aggiuntivi

Per impostazione predefinita, le VM Compute Engine raccolgono solo metriche e log di sistema di base senza l'agente operativo

Installa Ops Agent per raccogliere dati di telemetria aggiuntivi (log, metriche e tracce) dalle tue istanze e applicazioni Compute Engine per la risoluzione dei problemi, il monitoraggio delle prestazioni e la generazione di avvisi.

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 le applicazioni di terze parti come Postgres, MongoDB e Redis. Queste integrazioni forniscono dashboard e criteri di avviso preconfigurati.

Configurare 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 invece metriche OTLP, puoi utilizzare un sidecar OpenTelemetry. Per un esempio, consulta il tutorial per la raccolta delle metriche OTLP utilizzando il sidecar.

Instrumenta le applicazioni

La strumentazione è il codice che aggiungi a un'applicazione per emettere dati di telemetria. Esistono diversi framework di strumenti open source che ti consentono di raccogliere metriche, log e tracce dalla tua applicazione e inviare questi dati a qualsiasi fornitore, incluso Google Cloud. Tuttavia, potresti non dover instrumentare la tua applicazione. Ad esempio, Cloud Run, le funzioni Cloud Run e App Engine forniscono il monitoraggio automatico.

Per eseguire la strumentazione dell'applicazione, ti consigliamo di utilizzare un framework di strumentazione indipendente dal fornitore open source, come OpenTelemetry, anziché API o librerie client specifiche per il fornitore e il prodotto. Per informazioni sulla strumentazione dell'applicazione, consulta Strumentazione e osservabilità.

Per esempi di codice che illustrano come instrumentare l'applicazione per inviare la telemetria a Google Cloud, consulta quanto segue:

Potrebbero interessarti anche i seguenti argomenti: