Introduzione a Cloud Monitoring

Questa pagina fornisce una panoramica degli strumenti e del modello dei dati di Cloud Monitoring. Con Cloud Monitoring, puoi rispondere a domande importanti come le seguenti:

  • Qual è il carico del mio servizio?
  • Il mio sito web è accessibile e risponde correttamente?
  • Il servizio funziona bene?

Questa pagina è rivolta agli sviluppatori e agli amministratori di sistema che devono monitorare le prestazioni di un servizio o sistema.

Panoramica di Cloud Monitoring

Cloud Monitoring raccoglie le misurazioni del tuo servizio e delle risorse Google Cloud che utilizzi. Questa sezione fornisce una panoramica degli strumenti di Cloud Monitoring che puoi utilizzare per visualizzare e monitorare queste misurazioni.

Criteri di avviso e controlli di uptime

Crea un criterio di avviso per ricevere una notifica quando le prestazioni di un servizio non soddisfano i criteri che hai definito. Ad esempio, puoi creare un criterio di avviso che avvisi il tuo team su chiamata quando il 90° percentile della latenza delle risposte 200 del servizio supera i 100 ms.

Per ricevere una notifica quando un servizio implementato non è accessibile o quando non risponde correttamente, configura un controllo di uptime e allega un criterio di avviso:

  • Il controllo di uptime verifica periodicamente l'integrità del tuo servizio e ne archivia il successo e la latenza come dati di metrica.
  • Il criterio di avviso monitora lo stato del controllo di uptime e verifica se un probe non funziona.

Grafici e dashboard

Per comprendere il carico attuale di un servizio o visualizzare i dati sulle prestazioni del servizio nell'ultimo mese, utilizza gli strumenti grafici e dashboard. Cloud Monitoring completa le dashboard in base ai servizi e alle risorse utilizzati dai tuoi servizi; tuttavia, puoi anche creare dashboard personalizzate, per creare grafici di dati, indicatori di visualizzazione o testo di visualizzazione.

Puoi tracciare e monitorare qualsiasi dato (numerico) delle metriche raccolto dal tuo progetto Google Cloud, inclusi:

  • Metriche di sistema generate dai servizi Google Cloud. Queste metriche forniscono informazioni sul funzionamento del servizio. Ad esempio, Compute Engine segnala più di 25 metriche univoche per ogni istanza di macchina virtuale (VM). Per un elenco completo delle metriche, consulta l'articolo Metriche di Google Cloud.

  • Metriche di sistema e applicazioni raccolte dall'agente Cloud Monitoring. Queste metriche forniscono ulteriori informazioni sulle risorse di sistema e sulle applicazioni in esecuzione sulle istanze di Compute Engine e sulle istanze di Amazon Elastic Compute Cloud (Amazon EC2). Facoltativamente, puoi configurare l'agente per raccogliere metriche da plug-in di terze parti, come server web Apache o Nginx o database MongoDB o PostgreSQL.

  • Metriche personalizzate scritte dal tuo servizio mediante l'API Cloud Monitoring o utilizzando una libreria come OpenCensus.

  • Metriche basate su log, che raccolgono informazioni numeriche sui log scritti in Cloud Logging. Le metriche basate su log definite da Google includono il numero di errori rilevati dal servizio e il numero totale di voci di log ricevute dal tuo progetto Google Cloud. Puoi anche definire metriche basate su log. Ad esempio, potresti creare una metrica che conteggia il numero di errori 404 Not Found relativi a un'applicazione di cui è stato eseguito il deployment in App Engine.

Metriche e serie temporali

Questa sezione introduce il modello dei dati di Cloud Monitoring:

  • Una metrica descrive qualcosa che viene misurato. Esempi di metriche includono l'utilizzo della CPU di una VM e la percentuale di un disco utilizzato.

  • Una serie temporale è una struttura di dati che contiene misurazioni timestamp con una metrica e informazioni sulla fonte e sul significato di tali misurazioni.

Ad esempio, la seguente serie illustra una serie temporale:

  "timeSeries": [
    {
      "points": [
        {
          "interval": {
            "startTime": "2020-07-27T20:20:21.597143Z",
            "endTime": "2020-07-27T20:20:21.597143Z"
          },
          "value": {
            "doubleValue": 0.473005
          }
        },
        {
          "interval": {
            "startTime": "2020-07-27T20:19:21.597239Z",
            "endTime": "2020-07-27T20:19:21.597239Z"
          },
          "value": {
            "doubleValue": 0.473025
          }
        },
      ],
      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "2708613220420473591",
          "zone": "us-east1-b",
          "project_id": "sampleproject"
        }
      },
      "metric": {
        "labels": {
          "device": "sda1",
          "state": "free"
        },
        "type": "agent.googleapis.com/disk/percent_used"
      },
      "metricKind": "GAUGE",
      "valueType": "DOUBLE",

    },

Ecco alcuni dettagli sul contenuto di una serie temporale:

  • L'array points contiene le misurazioni con timestamp.

    Nell'esempio precedente, l'array points contiene due valori:

      "points": [
        {
          "interval": {
            "startTime": "2020-07-27T20:20:21.597143Z",
            "endTime": "2020-07-27T20:20:21.597143Z"
          },
          "value": {
            "doubleValue": 0.473005
          }
        },
        {
          "interval": {
            "startTime": "2020-07-27T20:19:21.597239Z",
            "endTime": "2020-07-27T20:19:21.597239Z"
          },
          "value": {
            "doubleValue": 0.473025
          }
        },
      ],
    

    Per comprendere il significato di un valore, devi fare riferimento agli altri dati inclusi nella serie temporale e alle relative definizioni.

  • Il campo resource descrive l'hardware o il componente software che viene monitorato. In Cloud Monitoring, il componente hardware o software è denominato risorsa monitorata. Esempi di risorse monitorate includono istanze di Compute Engine e applicazioni App Engine. Per un elenco completo delle risorse monitorate, consulta l'elenco delle risorse monitorate.

    Nell'esempio precedente, il campo resource è il seguente:

      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "2708613220420473591",
          "zone": "us-east1-b",
          "project_id": "sampleproject"
        }
    
    • Il campo type elenca la risorsa monitorata come un gce_instance, che indica che queste misurazioni sono eseguite su un'istanza VM di Compute Engine.

    • Il campo labels contiene coppie chiave-valore che forniscono informazioni aggiuntive sulla risorsa monitorata. Per un tipo gce_instance, le etichette identificano l'istanza VM che viene monitorata.

  • Il campo metric descrive ciò che viene misurato.

    Nell'esempio precedente, il campo metric è il seguente:

      "metric": {
        "labels": {
          "device": "sda1",
          "state": "free"
        },
        "type": "agent.googleapis.com/disk/percent_used"
      },
    
    • Per i servizi Google, il campo type specifica il servizio e ciò che è in fase di monitoraggio. In questo esempio, l'agente Cloud Monitoring è il servizio e sta misurando la percentuale del disco utilizzata. Quando il campo type inizia con custom o external, la metrica è una metrica personalizzata o definita da una terza parte.

    • Il campo labels contiene coppie chiave-valore che forniscono informazioni aggiuntive sulla misurazione. Queste etichette sono definite come parte del MetricDescriptor, ovvero una struttura dei dati che definisce gli attributi dei dati misurati. L'elemento MetricDescriptor per la metrica agent.googleapis.com/disk/percent_used include le etichette device e state.

  • Il campo metricKind descrive la relazione tra le misurazioni adiacenti in una serie temporale:

    • Le metriche GAUGE memorizzano il valore dell'elemento misurato in un determinato momento, ad esempio un record di temperatura orario.

    • Le metriche CUMULATIVE memorizzano il valore accumulato dell'oggetto misurato in un determinato momento, ad esempio un contachilometri su un veicolo.

    • Le metriche DELTA memorizzano la modifica del valore dell'oggetto misurato in un determinato periodo, ad esempio un riepilogo delle azioni che mostra i guadagni o le perdite.

  • Il campo valueType descrive il tipo di dati per la misurazione: INT64, DOUBLE, BOOL, STRING o DISTRIBUTION.

Cloud Monitoring scrive una serie temporale per ogni combinazione di valori delle risorse e delle etichette delle metriche. Puoi utilizzare queste etichette per raggruppare e filtrare le serie temporali. Ad esempio, quando un progetto Google Cloud contiene più istanze VM di Compute Engine, l'utilizzo del disco per ogni istanza VM è una serie temporale univoca. Di seguito sono riportate alcune modalità di visualizzazione di questi dati:

  • Puoi mostrare l'utilizzo del disco di ogni istanza VM.
  • Puoi raggruppare le istanze VM in base all'etichetta state, quindi visualizzare l'utilizzo medio del disco. Il seguente screenshot illustra un grafico con questa configurazione:

    Utilizzo medio del disco raggruppato per stato.

  • Puoi mostrare l'utilizzo del disco per un'istanza VM specifica filtrando la serie temporale in base a un singolo valore dell'etichetta instance_id. Il seguente screenshot illustra un grafico con questa configurazione:

    Percentuale utilizzata del disco per un disco specifico.

Visualizza serie temporali

Cloud Monitoring offre diversi modi per visualizzare i dati della serie temporale:

  • Dashboard di Google Cloud: Cloud Monitoring crea automaticamente queste dashboard in base alle risorse utilizzate dal tuo progetto Google Cloud.

    Ad esempio, quando un progetto Google Cloud contiene istanze VM di Compute Engine, le dashboard per tali istanze e dischi VM vengono create automaticamente. Utilizzando la dashboard Istanze VM, puoi visualizzare dettagli come l'utilizzo di memoria e disco, identificare gli indirizzi IP e identificare le VM che eliminano i pacchetti di rete. Questa dashboard mostra anche informazioni sul tuo utilizzo dell'agente Cloud Monitoring e fornisce suggerimenti per la strumentazione.

  • Dashboard personalizzate: puoi creare o installare queste dashboard. Dashboard personalizzate ti consentono di definire i dati da visualizzare e come. Ad esempio, puoi visualizzare i dati delle metriche, i criteri di avviso e i log archiviati nel tuo progetto Google Cloud. Puoi visualizzare i dati delle serie temporali su un grafico, con un indicatore o un prospetto oppure in formato tabulare. Le dashboard supportano anche i widget di testo. Puoi creare una dashboard personalizzata con l'API Dashboards o Google Cloud Console.

  • Grafici: puoi aggiungere grafici a una dashboard personalizzata o utilizzare Metrics Explorer, uno strumento di creazione di grafici che ti consente di tracciare ed esplorare rapidamente i dati delle serie temporali. Puoi salvare i grafici creati con Metrics Explorer in una dashboard personalizzata.

Quando crei un grafico, selezioni la risorsa monitorata e il tipo di metrica di cui vuoi visualizzare i dati delle serie temporali. Dopo aver effettuato queste selezioni, puoi applicare filtri per le serie temporali che corrispondono a determinati valori di etichette e raggruppare i dati per etichetta. Ad esempio, puoi aggiungere un filtro in modo che un grafico mostri solo le serie temporali per le istanze VM di Compute Engine situate nella zona zona.

Le impostazioni del grafico ti consentono di confrontare i dati correnti con quelli precedenti e di creare grafici che mostrano i dati delle serie temporali per più metriche. Ad esempio, il seguente screenshot mostra un grafico che mostra il numero di byte sia letti sia scritti da una singola VM:

Metrics Explorer che mostra i byte di lettura e scrittura del disco.

Per ulteriori informazioni sui dati relativi alle serie temporali, consulta Utilizzo di dashboard e grafici.

Configura avvisi

I criteri di avviso consentono di configurare se una singola serie temporale può soddisfare una condizione o se più serie temporali devono soddisfare la condizione prima che sia soddisfatta. I criteri di avviso possono essere semplici o complessi, ad esempio:

  • Inviami una notifica quando un controllo di uptime sul dominio example.com non riesce per almeno 3 minuti.

  • Comunica al team di chiamata quando il 90° percentile delle risposte 200 HTTP supera la latenza di 100 ms per 3 o più server web in 2 località Google Cloud, a condizione che il server abbia meno di 15 QPS.

  • Avvisami quando il carico CPU di qualsiasi istanza VM nel mio progetto Google Cloud è superiore a una soglia di 0,6. Il seguente screenshot illustra questo criterio di avviso:

    Criterio di avviso che monitora il carico della CPU.

Puoi creare criteri di avviso utilizzando l'API Cloud Monitoring e utilizzando Google Cloud Console. In entrambi i casi, puoi gestire e visualizzare i criteri in Google Cloud Console utilizzando la pagina Avvisi.

Le condizioni sono l'elemento principale di un criterio di avviso. Una condizione descrive un potenziale problema del sistema che vuoi monitorare con Cloud Monitoring. Ad esempio, puoi descrivere condizioni come segue:

  • Qualsiasi controllo di uptime sul dominio example.com non riesce per almeno tre minuti.
  • Lo spazio libero di qualsiasi istanza VM monitorata è inferiore al 10%.

Quando le condizioni di un criterio di avviso sono soddisfatte, ad esempio quando ogni controllo di uptime per il dominio example.com non riesce per tre minuti, Cloud Monitoring apre un incidente e invia notifiche:

  • Un incidente è un record permanente che memorizza le informazioni sulle risorse monitorate quando la condizione è stata soddisfatta. Quando la condizione smette di essere soddisfatta, l'incidente viene chiuso automaticamente. Puoi visualizzare tutti gli incidenti, aperti e chiusi, utilizzando la dashboard degli avvisi.
  • Specifica chi deve ricevere una notifica quando configuri un criterio di avviso. Monitoring supporta canali di notifiche comuni, tra cui email, Cloud Mobile App e servizi come PagerDuty o Slack. Per un elenco completo dei canali di notifica, consulta Opzioni di notifica.

Per ulteriori informazioni sui criteri di avviso, consulta la pagina Introduzione agli avvisi.

Verificare che il servizio sia accessibile

Puoi configurare Cloud Monitoring per eseguire periodicamente il probe del servizio in modo da imitare il modo in cui i tuoi clienti accedono al servizio. Quando configuri un controllo di uptime, i server in almeno tre diverse posizioni eseguono periodicamente un probe del servizio e quindi registrano l'esito positivo e la latenza del probe. Per ricevere una notifica quando il controllo di uptime non riesce, crea un criterio di avviso per monitorare la metrica uptime_check/check_passed, che registra i risultati dei controlli di uptime.

Cloud Monitoring fornisce una pagina Controlli di uptime che mostra un riepilogo dei controlli di uptime. Puoi filtrare il display e utilizzare i link incorporati per visualizzare i dettagli di un controllo di uptime specifico. La visualizzazione dei dettagli di un controllo di uptime mostra l'esito positivo o negativo della risposta e la latenza della risposta, insieme ai dettagli sul controllo di uptime:

Esempio di visualizzazione dettagliata di un controllo di uptime.

Per ulteriori informazioni su questo argomento, consulta la sezione Gestire i controlli di uptime.

Supporto di sistemi di grandi dimensioni

In questa sezione sono descritte le funzionalità progettate per aiutarti a monitorare sistemi di grandi dimensioni.

Gruppi di risorse

Per gestire le tue risorse Google Cloud o Amazon come raccolta anziché singolarmente, crea un gruppo di risorse. Un gruppo di risorse è una raccolta dinamica di risorse che soddisfano alcuni criteri forniti. Man mano che aggiungi e rimuovi risorse, ad esempio aggiungi istanze VM di Compute Engine al tuo progetto Cloud, l'appartenenza al gruppo cambia automaticamente. Di seguito sono riportati alcuni esempi di gruppi di risorse:

  • Istanze di Compute Engine i cui nomi iniziano con la stringa prod-.
  • Risorse con il tag test-cluster.
  • Istanze Amazon EC2 nell'area geografica A o area geografica B.

Dopo aver definito un gruppo di risorse, puoi monitorarlo come se fosse una singola risorsa. Ad esempio, puoi configurare un controllo di uptime per monitorare un gruppo di risorse. Per i grafici e i criteri di avviso, puoi anche filtrare in base al nome del gruppo.

Per ulteriori informazioni su questo argomento, consulta Utilizzo dei gruppi di risorse.

Visualizzare le metriche per più progetti Cloud

Per visualizzare e monitorare i dati delle serie temporali per più progetti Google Cloud e account AWS tramite un'unica interfaccia, configura un ambito delle metriche multiprogetto.

Per impostazione predefinita, le pagine di Cloud Monitoring in Google Cloud Console consentono di accedere solo alle serie temporali archiviate nel progetto di ambito. Il progetto di definizione dell'ambito è il progetto che hai selezionato con il selettore di progetto in Google Cloud Console. Il progetto di definizione dell'ambito archivia gli avvisi, i controlli di uptime, le dashboard e i gruppi di monitoraggio che hai configurato.

Il progetto di definizione dell'ambito ospita anche un ambito delle metriche. L'ambito delle metriche definisce i progetti e gli account le cui metriche sono visibili al progetto di definizione dell'ambito. Puoi configurare l'ambito delle metriche per includere i dati delle serie temporali da altri progetti Google Cloud e dagli account AWS. Per informazioni su come modificare l'ambito di una metrica, consulta la sezione Modificare la configurazione di Cloud Monitoring del progetto.

Interfacce programmatiche e grafiche

Per visualizzare i dati delle metriche e creare e gestire criteri di avviso, dashboard e controlli di uptime, puoi utilizzare Google Cloud Console.

Puoi anche utilizzare direttamente l'API Cloud Monitoring per scrivere dati di metrica personalizzati, nonché per creare e gestire criteri di avviso, dashboard e controlli di uptime. Le pagine di riferimento dell'API Cloud Monitoring, ad esempio la pagina alertPolicies.list, ti consentono di sperimentare le chiamate API direttamente dalla pagina di riferimento.

Passaggi successivi