Osservabilità in Google Cloud

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 collegamento dei componenti consente di prevedere, identificare e rispondere a cambiamenti imprevisti in modo più rapido ed efficace.

Questo documento include le seguenti informazioni:

  • Una panoramica sull'osservabilità e sul motivo per cui l'osservabilità è importante per mantenere le applicazioni disponibili e affidabili.
  • Scopri come Google Cloud Observability ti aiuta a monitorare e gestire l'integrità di applicazioni e infrastrutture.
  • 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.

Metriche
Le metriche sono dati numerici relativi all'integrità o alle prestazioni che misuri a intervalli regolari nel tempo, come l'utilizzo della CPU e la latenza delle richieste. Le 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 prevedere le esigenze delle risorse.
Log

Un log è un record generato delle attività di sistema o delle applicazioni 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 complete e dettagliate che ti aiutano a capire cosa è successo in una parte specifica della tua applicazione. Tuttavia, i log non forniscono informazioni utili sulla correlazione tra una modifica in un componente dell'applicazione e l'attività in un altro componente. Le tracce possono aiutarti a colmare questo divario.

Tracce

Le tracce rappresentano il percorso di una richiesta tra le parti della tua applicazione distribuita. Una metrica o una voce di log in un componente dell'applicazione che ha attivato una notifica di avviso può essere 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 identificare la causa principale di un problema.

Altri dati

Puoi ottenere ulteriori insight 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 di applicazioni distribuite possono essere difficili perché sono coinvolti molti sistemi e componenti software, spesso con una combinazione di software open source e commerciali.

Gli strumenti di osservabilità ti aiutano ad affrontare 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 abbiano impatto sui tuoi utenti
  • Risolvere i problemi sia noti che nuovi
  • Debug delle applicazioni durante lo sviluppo
  • Pianifica e comprendi l'impatto delle modifiche sulle tue applicazioni
  • Esplora i dati per scoprire nuovi insight

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 principi e pratiche relativi 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 consentono di raccogliere, analizzare e correlare i dati di telemetria. Forniscono inoltre impostazioni predefinite integrate, come dashboard e criteri di avviso predefiniti, per aiutarti a iniziare più rapidamente.

Cloud Monitoring, Cloud Logging e Cloud Trace sono alcuni dei servizi abilitati per impostazione predefinita quando crei un progetto Google Cloud.

Monitoraggio: utilizza le metriche raccolte per monitorare l'integrità e il rendimento, identificare tendenze e problemi e segnalare i cambiamenti nel 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.
  • Definire 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 insight sulle applicazioni.

  • Raccogli automaticamente i log per la maggior parte dei servizi Google Cloud.
  • Raccogli automaticamente gli audit log per la maggior parte dei servizi Google Cloud.
  • Raccogliere i log da software di terze parti.
  • Esplora e analizza i log.
  • Utilizza Analisi dei log 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.
  • Ricevi avvisi quando un messaggio specificato viene visualizzato in un log.

Error Reporting: visualizza e analizza gli errori dell'esecuzione dei servizi cloud.

  • 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 report sulla latenza che mostrano le riduzioni delle prestazioni.
  • Ricevi avvisi in caso di modifiche nel profilo di latenza per le tue applicazioni.
  • Annota le tracce con attributi personalizzati.
  • Esporta le tracce in BigQuery per esplorarle con altri dati.

Cloud Profiler: analizza l'utilizzo di CPU e memoria per le tue applicazioni al fine di identificare 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 insight 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 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 configurazione aggiuntiva.

  • 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 metriche di sistema e log per impostazione predefinita e tu configuri la raccolta di dati aggiuntivi.
  • Cloud Functions e App Engine generano automaticamente metriche, log e tracce.

Puoi anche creare un grafico delle 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 log e metriche di sistema di base senza Ops Agent

Installa Ops Agent per raccogliere ulteriori dati di telemetria (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.

Configura i cluster GKE per raccogliere dati aggiuntivi

Per impostazione predefinita, i cluster GKE inviano log di sistema 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 al fine di 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 disponi di un servizio Cloud Run che scrive metriche di Prometheus, puoi utilizzare il file collaterale di Prometheus per inviare le metriche a Cloud Monitoring.

Se il tuo servizio Cloud Run scrive invece metriche OTLP, puoi utilizzare un file collaterale OpenTelemetry. Per un esempio, guarda il tutorial per la raccolta di metriche OTLP utilizzando il file collaterale.

Instrumenta le tue 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 metriche, log e tracce dall'applicazione e di inviare i dati a qualsiasi fornitore, incluso Google Cloud. Tuttavia, potrebbe non essere necessario instrumentare la tua applicazione. Ad esempio, Cloud Run, Cloud Functions e App Engine forniscono il tracciamento automatico.

Per lo strumento per l'applicazione, ti consigliamo di utilizzare un framework di strumentazione indipendente dal fornitore che sia open source, come OpenTelemetry, anziché le librerie client o le API specifiche del fornitore e del prodotto. Per informazioni sulla strumentazione della tua applicazione, consulta Strumentazione e osservabilità.

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

Ti potrebbe interessare anche esplorare i seguenti argomenti: