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 ungce_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 tipogce_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 campotype
inizia concustom
oexternal
, 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 delMetricDescriptor
, ovvero una struttura dei dati che definisce gli attributi dei dati misurati. L'elementoMetricDescriptor
per la metricaagent.googleapis.com/disk/percent_used
include le etichettedevice
estate
.
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
oDISTRIBUTION
.
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: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:
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:
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:
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:
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
Per esplorare Cloud Monitoring, prova la guida rapida per il monitoraggio di un'istanza di Compute Engine.
Per informazioni su come configurare il nostro progetto Google Cloud per visualizzare le metriche per più progetti Google Cloud e account AWS, vedi Configurare Cloud Monitoring.
Per informazioni sull'API Cloud Monitoring, consulta API e riferimento.
Per un elenco delle metriche e delle risorse monitorate, consulta le sezioni Elenco delle metriche ed Elenco delle risorse monitorate.
Consulta la sezione Risorse per informazioni su prezzi, quote e limiti.