Introduzione a Cloud Monitoring

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questo documento offre una panoramica di Cloud Monitoring, che fa parte della suite operativa di Google Cloud. Cloud Monitoring è integrato con la maggior parte dei servizi Google Cloud e raccoglie e archivia automaticamente le informazioni sulle prestazioni su tali servizi. Può anche raccogliere metriche di sistema e applicazioni da applicazioni di terze parti. Gli strumenti di visualizzazione e analisi dei dati forniti da Cloud Monitoring ti aiutano a rispondere a domande importanti come le seguenti:

  • Qual è il carico sul mio servizio?
  • Il mio sito web risponde correttamente?
  • Il mio servizio ha un buon rendimento?

Cloud Monitoring fornisce supporto per Google Cloud Console e API per la maggior parte dei suoi servizi, oltre alle pagine di riferimento dell'API Cloud Monitoring, come la pagina alertPolicies.list, per sperimentare con le chiamate API direttamente dalla pagina di riferimento.

Questo documento è rivolto agli sviluppatori e agli amministratori di sistema che devono monitorare le prestazioni di un servizio o di un sistema.

Monitora il carico su un servizio

Per comprendere il carico attuale di un servizio o per visualizzare i dati sulle prestazioni del servizio durante l'ultimo mese, utilizza gli strumenti per grafici e dashboard. Puoi registrare e monitorare qualsiasi dato (numerico) delle metriche raccolto dal tuo progetto Google Cloud, tra cui:

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

  • Metriche di sistema e delle applicazioni raccolte dall'agente Cloud Monitoring. Queste metriche forniscono informazioni aggiuntive 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 in modo da raccogliere metriche da plug-in di terze parti come server web Apache o Nginx oppure database MongoDB o PostgreSQL.

  • Metriche personalizzate scritte dal tuo servizio utilizzando 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 per un'applicazione di cui è stato eseguito il deployment in App Engine.

Per visualizzare i dati per vedere le tendenze, identificare i valori anomali e visualizzare altri dettagli sui dati, puoi utilizzare i seguenti strumenti:

  • 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 vengono create automaticamente. Tramite la dashboard Istanze VM, puoi visualizzare i dettagli, ad esempio l'utilizzo di memoria e disco, identificare gli indirizzi IP e individuare le VM che rilasciano pacchetti di rete. Questa dashboard visualizza anche informazioni sull'utilizzo dell'agente Cloud Monitoring e fornisce suggerimenti per la strumentazione.

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

  • Grafici: puoi aggiungere grafici a una dashboard personalizzata oppure puoi utilizzare Metrics Explorer, uno strumento di creazione di grafici progettato per consentirti di registrare rapidamente i dati delle serie temporali ed esplorarli. Puoi salvare i grafici creati con Metrics Explorer in una dashboard personalizzata.

Quando crei un grafico, selezioni i dati della serie temporale che vuoi visualizzare. Ad esempio, puoi configurare un grafico per visualizzare i dati per le istanze VM di Compute Engine situate nella zona us-east-1d.

Le impostazioni del grafico consentono di confrontare i dati attuali con i dati precedenti, visualizzare valori anomali e percentili e visualizzare più metriche. Ad esempio, il seguente screenshot mostra un grafico che mostra il numero di byte letti e scritti da una singola VM:

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

Per ulteriori informazioni sulla visualizzazione dei dati delle serie temporali, vedi Utilizzo di dashboard e grafici.

Monitorare la disponibilità del sito web

Per monitorare se un sito web risponde, configura un controllo di uptime. Questi controlli verificano periodicamente il servizio in modo da imitare le modalità di accesso dei servizi ai clienti, quindi registrano l'esito positivo e la latenza del probe.

Per visualizzare le informazioni sui controlli di uptime, Cloud Monitoring fornisce una dashboard che riassume lo stato di ogni controllo di uptime, e per ogni controllo, fornisce una dashboard con informazioni dettagliate. La visualizzazione dettagliata 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 Gestione dei controlli di uptime.

Ricevi una notifica quando un servizio non ha un buon rendimento

Per ricevere una notifica quando le prestazioni di un servizio non soddisfano i criteri che hai definito, crea un criterio di avviso. Ad esempio, puoi creare un criterio di avviso che avvisi il team su chiamata quando il 90° percentile della latenza delle risposte HTTP 200dal tuo servizio è superiore a 100 ms. Allo stesso modo, puoi ricevere una notifica quando un controllo di uptime non va a buon fine.

I criteri di avviso consentono di configurare se una singola serie temporale può causare la conformità a una condizione o se più serie temporali devono soddisfare la condizione prima di essere soddisfatta. I criteri di avviso possono essere semplici o complessi. Ad esempio:

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

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

  • Avvisami quando il carico della CPU di qualsiasi istanza VM nel mio progetto Google Cloud è superiore a una soglia di 0,6.

Cloud Monitoring offre una dashboard che riassume lo stato dei tuoi criteri di avviso e, per ogni criterio, una dashboard con informazioni dettagliate. Come mostrato dal seguente screenshot, la dashboard dettagliata per un avviso mostra i dati monitorati, la soglia dell'avviso, i canali di notifica, un elenco degli incidenti e qualsiasi documentazione definita dall'utente che è inclusa in una notifica:

Criterio di avviso che monitora il carico della CPU.

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

  • Qualsiasi controllo di uptime per il 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 vengono soddisfatte, ad esempio quando ogni controllo di uptime nel dominio example.com non va a buon fine per tre minuti, Cloud Monitoring apre un incidente e invia notifiche sui problemi.

Un incidente è un record permanente che archivia le informazioni sulla risorsa monitorata. Ad esempio, un criterio di avviso che monitora l'utilizzo della CPU memorizzerebbe le informazioni sulla VM il cui utilizzo causa la condizione. Quando la condizione non è più 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 notifica comuni, tra cui email, Cloud Mobile App e servizi come PagerDuty o Slack. Per un elenco completo dei canali di notifica, vedi Opzioni di notifica.

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

Monitora sistemi di grandi dimensioni

Questa sezione descrive come gestire le risorse come una raccolta e come monitorare le metriche archiviate in più progetti Google Cloud.

Gestire le risorse come una raccolta

Per gestire le tue risorse come raccolta invece che individualmente, 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 aggiungendo 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 tag test-cluster.
  • Istanze Amazon EC2 nella regione A o nella regione 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 scoprire di più su questo argomento, consulta Utilizzo dei gruppi di risorse.

Monitorare 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 nella console Google Cloud forniscono l'accesso solo alla serie temporale archiviata nel progetto di ambito. Il progetto di definizione dell'ambito è il progetto che hai selezionato con il selettore di progetti della console Google Cloud. 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 di altri progetti Google Cloud e di account AWS. Per informazioni su come modificare un ambito delle metriche, consulta la sezione Modificare la configurazione di Cloud Monitoring del progetto.

Modello di dati di Cloud Monitoring

Questa sezione introduce il modello di 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 contenente misurazioni con timestamp timestamp di una metrica e informazioni sull'origine e sul significato di tali misurazioni.

Ad esempio, quanto segue 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",

    },

Di seguito sono riportate alcune informazioni dettagliate 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 il componente hardware o software che stai monitorando. 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 gce_instance, che indica che queste misurazioni vengono 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 stai monitorando.

  • 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 cosa viene monitorato. In questo esempio, l'agente Cloud Monitoring è il servizio e misura la percentuale del disco utilizzata. Quando il campo type inizia con custom o external, la metrica è una metrica personalizzata o una definita da una terza parte.

    • Il campo labels contiene coppie chiave-valore che forniscono informazioni aggiuntive sulla misurazione. Queste etichette sono definite come parte di MetricDescriptor, una struttura di dati che definisce gli attributi dei dati misurati. 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 oraria.

    • Le metriche CUMULATIVE memorizzano il valore accumulato dell'elemento misurato in un determinato momento, ad esempio un contachilometri all'interno di un veicolo.

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

  • 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 serie temporali. Ad esempio, quando un progetto Google Cloud contiene più istanze VM di Compute Engine, l'utilizzo della CPU per ogni istanza VM è una serie temporale univoca. Ecco alcuni modi per visualizzare questi dati:

  • Puoi mostrare l'utilizzo della CPU di ciascuna istanza VM.
  • Puoi mostrare l'utilizzo della CPU per un'istanza VM specifica filtrando la serie temporale in base a un singolo valore dell'etichetta instance_id.
  • Puoi raggruppare le istanze VM in base all'etichetta machine_type, quindi visualizzare l'utilizzo medio della CPU. Il seguente screenshot illustra un grafico con questa configurazione:

    Utilizzo medio della CPU raggruppato per tipo di macchina.

Passaggi successivi