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 di come sono collegati i componenti 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 alla raccolta e all'analisi dei dati telemetrici al fine di 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.

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

Un log è un record generato dell'attività del 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 consentono di capire cosa è successo con una parte specifica dell'applicazione. Tuttavia, i log non forniscono informazioni corrette su come una modifica in un componente dell'applicazione sia correlata all'attività in un altro componente. Le tracce possono aiutare 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 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 identificare la causa principale di un problema.

Altri dati

Puoi ottenere ulteriori informazioni 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 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:

  • Rilevare in modo proattivo i problemi prima che abbiano un impatto sugli utenti
  • Risolvere i problemi noti e nuovi
  • Debug delle applicazioni durante lo sviluppo
  • Pianifica e comprendi l'impatto delle modifiche alle tue applicazioni
  • Esplora i dati per scoprire nuovi insight

In breve, un ambiente osservabile 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:

Osservabilità di Google Cloud

I servizi nell'osservabilità di Google Cloud consentono di raccogliere, analizzare e correlare i dati di telemetria. Forniscono inoltre valori predefiniti integrati per iniziare più velocemente, come 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 relative a cambiamenti di comportamento.

  • Raccogli automaticamente metriche per la maggior parte dei servizi Google Cloud.
  • Raccogliere 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.
  • Raccogli i log da software di terze parti.
  • Esplora e analizza i log.
  • Utilizza Analisi dei log per eseguire un'analisi dei tuoi log e di altri dati con BigQuery. Ad esempio, puoi usare BigQuery per confrontare gli URL nei tuoi 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 inviati dalle tue applicazioni all'API Error Reporting.

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

  • Monitora il modo in cui le richieste si propagano nelle tue applicazioni.
  • Raccogli i dati sulla latenza dalle tue applicazioni e visualizza i grafici dei dati.
  • Visualizza report sulla latenza che mostrano riduzioni delle prestazioni.
  • 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 di CPU e memoria per le tue applicazioni in modo da poter identificare opportunità per migliorare le prestazioni.

  • Raccogli i dati sull'utilizzo della CPU e sull'allocazione della memoria dalle applicazioni.
  • Identificare le parti di un'applicazione che consumano più risorse e ottenere insight sulle prestazioni generali dell'applicazione.

Inizia

Questa sezione descrive i passaggi da 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.

Analizzare i dati raccolti automaticamente

La maggior parte dei servizi Google Cloud genera automaticamente metriche e log predefiniti. Ciò significa che puoi iniziare ad analizzare alcuni dati di osservabilità per i servizi Google Cloud supportati senza bisogno di ulteriori configurazioni.

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

Puoi anche tracciare un grafico delle metriche raccolte in Metrics Explorer, 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 include log, metriche sulle 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 l'agente operativo

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

Configurare i cluster GKE per raccogliere dati aggiuntivi

Per impostazione predefinita, i cluster GKE inviano i log di sistema e le metriche di sistema a Logging e Monitoring. Google Cloud Managed Service per Prometheus gestisce la raccolta di metriche definite dall'utente e di terze parti.

  • 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 latenza e la disponibilità dei servizi.
  • 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 disponi di un servizio Cloud Run che scrive le metriche di Prometheus, puoi utilizzare il file collaterale di Prometheus per inviarle a Cloud Monitoring.

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

strumenta 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 inviare i dati a qualsiasi fornitore, incluso Google Cloud. Tuttavia, potresti non aver bisogno di implementare la tua applicazione. Ad esempio, Cloud Run, Cloud Functions e App Engine forniscono il tracciamento automatico.

Per implementare la tua applicazione, ti consigliamo di utilizzare un framework di strumentazione open source indipendente dal fornitore, come OpenTelemetry, anziché API o librerie client 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 l'applicazione per inviare telemetria a Google Cloud, consulta quanto segue:

Ti consigliamo di approfondire i seguenti argomenti: