Componenti del modello di metrica

Il modello di Cloud Monitoring per i dati di monitoraggio è costituito da tre concetti principali:

  • Tipi di risorse monitorate
  • Tipi di metriche
  • Serie temporale

Il documento Il modello di metrica descrive questi concetti di Cloud Monitoring in termini generali. Se questi concetti sono nuovi per te, leggi prima quella pagina.

Questa pagina descrive in modo più dettagliato i tipi di metriche, le risorse monitorate e le serie temporali, nonché alcuni concetti correlati. Questi concetti sono alla base di tutte le metriche di Monitoring.

Devi comprendere le informazioni riportate in questa pagina se vuoi:

Per ulteriori dettagli su questi concetti e su come vengono mappati all'API Cloud Monitoring, consulta Struttura delle serie temporali, in particolare se prevedi di utilizzare l'API Monitoring o le metriche personalizzate.

Informazioni sulle etichette

I tipi di risorse monitorate e i tipi di metriche supportano entrambi le etichette, che consentono di classificare i dati durante l'analisi. Ad esempio:

  • Un tipo di risorsa monitorata per una macchina virtuale potrebbe includere etichette per la posizione della macchina e l'ID progetto associato alla macchina. Quando vengono registrate le informazioni sulla risorsa monitorata, queste includono i valori delle etichette. Una risorsa monitorata potrebbe anche avere etichette di metadati fornite dal sistema o dall'utente, oltre alle etichette definite per il tipo di risorsa monitorata.
  • Un tipo di metrica che conteggia le richieste API potrebbe avere etichette per registrare il nome del metodo richiamato e lo stato della richiesta.

L'utilizzo delle etichette è descritto in modo più dettagliato in Etichette.

Tipi di risorse monitorate

Una risorsa monitorata è una risorsa da cui vengono acquisiti i dati delle metriche. Cloud Monitoring supporta circa 270 tipi di risorse monitorate.

I tipi di risorse monitorate includono nodi e attività generici, componenti architetturali in Google Kubernetes Engine, tabelle in Bigtable, varie risorse AWS e molte altre.

Ogni tipo di risorsa monitorata è descritto formalmente in una struttura di dati chiamata descrittore di risorsa monitorata. Per saperne di più, consulta Descrittori delle risorse monitorate.

Ogni tipo di risorsa monitorata supportato ha una voce nell'elenco delle risorse monitorate. Le voci dell'elenco vengono create dai descrittori delle risorse monitorate. Questa sezione descrive le informazioni acquisite in un descrittore di risorse monitorate e mostra come vengono presentate nell'elenco.

Un tipo di risorsa monitorata di esempio

L'immagine seguente mostra la voce nell'elenco per un bucket Cloud Storage:

Elenco del bucket Cloud Storage.

Tutte le voci dell'elenco includono le seguenti informazioni:

  • Tipo: l'intestazione negli elenchi di voci elenca il tipo di risorsa monitorata; gcs_bucket nell'esempio.
  • Nome visualizzato: una breve descrizione della risorsa monitorata.
  • Descrizione: una descrizione più lunga della risorsa monitorata.
  • Etichette: un insieme di dimensioni per classificare i dati. Per saperne di più, consulta Etichette.

Tipi di metriche

Un tipo di metrica descrive le misurazioni che possono essere raccolte da una risorsa monitorata. Un tipo di metrica include una descrizione di ciò che viene misurato e di come vengono interpretate le misurazioni. Cloud Monitoring supporta circa 6500 tipi di metriche e ti offre la possibilità di definire nuovi tipi.

I tipi di metriche includono conteggi di chiamate API, statistiche sull'utilizzo del disco, consumo di spazio di archiviazione e molto altro.

Ogni tipo di metrica è descritto formalmente in una struttura dati denominata descrittore di metrica. Per saperne di più, consulta Descrittori delle metriche.

Ogni tipo di metrica integrata ha una voce nelle pagine Elenco metriche. Le voci di queste tabelle vengono create dai descrittori delle metriche. Questa sezione descrive le informazioni acquisite in un tipo di metrica e mostra come vengono presentate nel materiale di riferimento.

Un tipo di metrica di esempio

L'immagine seguente mostra una voce per un tipo di metrica Cloud Storage:

Un estratto dell'elenco delle metriche per Cloud Storage.

I tipi di metriche vengono visualizzati in una tabella e l'intestazione della tabella spiega il layout delle informazioni. Questa sezione utilizza una voce come esempio, ma tutte le tabelle utilizzano lo stesso formato.

La voce di tabella di esempio di Cloud Storage fornisce le seguenti informazioni su un tipo di metrica:

  • Tipo di metrica: un identificatore per il tipo di metrica, storage.googleapis.com/api/request_count nell'esempio.

    Il prefisso storage.googleapis.com funge da spazio dei nomi per Cloud Storage. Tutti i tipi di metriche associati a un particolare tipo di risorsa monitorata utilizzano lo stesso spazio dei nomi.

    Gli spazi dei nomi vengono omessi dalle voci nelle tabelle.

    Tutti i tipi di metriche associati a Cloud Storage sono elencati nella tabella delle metriche di Cloud Storage.

  • Fase di lancio: un blocco colorato che indica la fase di lancio del tipo di metrica con un valore come Alpha, Beta e GA.

  • Nome visualizzato: una breve stringa che descrive il tipo di metrica, ad esempio "Conteggio richieste".

  • Tipo, unità: questa riga fornisce informazioni per interpretare i valori dei dati: l'esempio mostra una metrica delta registrata come un numero intero a 64 bit senza unità (ovvero il valore 1).

    • Tipo:questo esempio è una metrica delta, che registra una variazione in un periodo di tempo. ovvero ogni punto dati registra il numero di chiamate API dall'ultimo punto dati scritto. Per ulteriori informazioni sui tipi, vedi Tipi di valori e tipi di metriche.

    • Type (Tipo):questo esempio registra i valori come numeri interi a 64 bit. Per ulteriori informazioni sui tipi, vedi Tipi di valori e tipi di metriche.

    • Unità: questa metrica non richiede un'unità esplicita perché rappresenta un conteggio; la cifra 1 viene utilizzata per indicare che non è necessaria alcuna unità.

  • Risorse monitorate: le risorse monitorate per le quali è disponibile questo tipo di metrica. I valori qui sono gli stessi descritti in Tipi di risorse monitorate.

  • Descrizione: informazioni più dettagliate su cosa viene registrato e come. Impostalo in corsivo per distinguerlo dalle etichette.

  • Etichette: un insieme di dimensioni per classificare i dati. Per saperne di più, consulta Etichette.

Quando accedi ai dati di monitoraggio tramite l'API Cloud Monitoring, includi un progetto Google Cloud nella chiamata API. Puoi recuperare solo i dati visibili a quel progetto Google Cloud . Ad esempio, se richiedi i dati del tuo progetto per il tipo di metrica storage.googleapis.com/api/request_count, visualizzi i conteggi delle API solo per i bucket Cloud Storage nel tuo progetto. Se il progetto non utilizza bucket Cloud Storage, non vengono restituiti dati delle metriche.

Tipi di metriche integrate

I tipi di metriche integrate sono definiti dai servizi Google Cloud , incluso Cloud Monitoring. Questi tipi di metriche descrivono le misurazioni standard per un'ampia gamma di infrastrutture comuni e sono disponibili per chiunque.

L'elenco delle metriche mostra l'intero insieme di tipi di metriche integrate. Le metriche elencate nella pagina Elenco delle metriche esterne sono un sottoinsieme speciale di metriche integrate definite da Cloud Monitoring in collaborazione con progetti open source o provider di terze parti. In genere, queste metriche hanno il prefisso external.googleapis.com.

Metriche personalizzate

Quando crei l'applicazione, potresti avere determinate proprietà che vuoi misurare, cose per le quali non esistono metriche integrate in Cloud Monitoring. Con Cloud Monitoring, puoi definire i tuoi tipi di metriche o importare tipi di metriche da fonti esterne. Questi tipi di metriche sono chiamati metriche personalizzate. Se una metrica ha il prefisso custom.googleapis.com o prometheus.googleapis.com, si tratta di una metrica personalizzata. Queste ultime metriche provengono in genere da Google Cloud Managed Service per Prometheus.

Ad esempio, se vuoi monitorare il numero di widget venduti dai tuoi negozi, devi utilizzare una metrica personalizzata. Per ulteriori informazioni, consulta la panoramica delle metriche definite dall'utente.

Etichette

Un'etichetta è una coppia chiave-valore che può essere utilizzata per fornire informazioni su un valore di dati.

Etichette delle metriche e delle risorse monitorate

Le definizioni dei tipi di metriche e di risorse monitorate includono le etichette. Le etichette sono classificatori per i dati raccolti; aiutano a categorizzare i dati per un'analisi più approfondita. Ad esempio:

  • Il tipo di metrica Cloud Storage storage.googleapis.com/api/request_count ha due etichette, response_code e method.
  • Il tipo di risorsa monitorata Cloud Storage gcs_bucket ha tre etichette: project_id, bucket_name e location. Le etichette identificano istanze specifiche del tipo di risorsa.

Pertanto, tutti i dati raccolti per le richieste API da un bucket Cloud Storage vengono classificati in base al metodo chiamato, al codice di risposta per la chiamata, al nome, alla posizione e al progetto del bucket coinvolto. Il set di etichette varia in base alla metrica o al tipo di risorsa monitorata; le etichette disponibili sono documentate nelle pagine Elenco delle metriche e Elenco delle risorse monitorate.

Se monitori il codice di risposta, il nome del metodo e la posizione durante il conteggio delle chiamate API, puoi recuperare il numero di chiamate a un particolare metodo API, il numero di chiamate non riuscite a qualsiasi metodo o il numero di chiamate non riuscite a un metodo specifico in una posizione specifica.

Il numero di etichette e il numero di valori che ognuna può assumere sono indicati come cardinalità. La cardinalità è il numero di possibili serie temporali che potrebbero essere raccolte per una coppia di tipi di metriche e risorse monitorate: esiste una serie temporale per ogni combinazione di valori delle relative etichette. Per saperne di più, consulta Cardinalità: serie temporali ed etichette.

Etichette dei metadati delle risorse

Oltre alle etichette definite per i tipi di metriche e risorse monitorate, Monitoring raccoglie internamente informazioni aggiuntive sulle risorse monitorate e le archivia nelle etichette dei metadati di sistema. Queste etichette dei metadati di sistema sono disponibili per gli utenti come valori di sola lettura. Alcune risorse consentono inoltre agli utenti di creare le proprie etichette di metadati delle risorse quando configurano risorse come le istanze VM nella console Google Cloud .

Le etichette dei metadati del sistema e dell'utente sono chiamate collettivamente etichette dei metadati delle risorse. Puoi utilizzare queste etichette come quelle definite per la metrica e i tipi di risorse monitorate nei filtri delle serie temporali.

Le etichette dei metadati delle risorse vengono visualizzate nel risultato della query solo se le aggreghi in modo esplicito.

Per saperne di più sul filtraggio, consulta Filtri di monitoraggio.

Serie temporali: dati di una risorsa monitorata

Questa sezione spiega cosa sono i dati di monitoraggio e come sono organizzati nelle serie temporali. È qui che i componenti concettuali del modello di metrica diventano artefatti concreti.

Cloud Monitoring memorizza misurazioni regolari nel tempo per coppie di metriche e tipi di risorse monitorate. Le misurazioni vengono raccolte in serie temporali e ogni serie temporale contiene i seguenti elementi:

  • Il nome del tipo di metrica a cui appartiene la serie temporale e una combinazione di valori per le etichette della metrica.

  • Una serie di coppie (timestamp, valore). Il valore è la misurazione e il timestamp è l'ora in cui è stata eseguita la misurazione.

  • La risorsa monitorata che è l'origine dei dati delle serie temporali e una combinazione di valori per le etichette della risorsa.

Viene creata una serie temporale per ogni combinazione di etichette di metrica e risorsa che genera dati.

Esempio stilizzato: il tipo di metrica storage.googleapis.com/api/request_count potrebbe avere molte serie temporali per i bucket Cloud Storage del tuo progetto. La tabella seguente mostra alcune possibili serie temporali.

Nella tabella, il valore bucket: xyz rappresenta il valore dell'etichetta bucket_name nel tipo di risorsa monitorata, mentre response_code e method sono etichette nel tipo di metrica. Esiste una serie temporale per ogni combinazione di valori nelle etichette delle risorse e delle metriche; la tabella ne mostra alcune:

Etichetta risorsa
monitorata
Etichette metriche Dati delle metriche
bucket: 1234 response_code: OK,
method: read
{
(3, Wed 2:00pm),
(2, Wed 2:05pm),
(8, Wed 2:10pm),
...}
bucket: 1234 response_code: OK,
method: write
{
(1, Wed 2:01pm),
(2, Wed 2:04pm),
(7, Wed 2:09pm),
...}
bucket: 1234 response_code: FAIL,
method: write
{
(1, Wed 2:01pm),
(0, Wed 2:04pm),
(0, Wed 2:09pm),
...}
bucket: 9876 response_code: OK,
method: read
{
(2, Wed 1:59pm),
(4, Wed 2:05pm),
(3, Wed 2:10pm),
...}

Cloud Monitoring non registra serie temporali "vuote". Nell'esempio dei bucket Cloud Storage, se non utilizzi un determinato bucket o non chiami mai un determinato metodo API, non vengono raccolti dati per questa etichetta e nessuna serie temporale la menziona. Ciò significa che, se il tuo progetto non ha dati per una determinata metrica, non vedrai mai il tipo di metrica.

I tipi di metriche non indicano quali tipi di risorse monitorate si trovano nelle serie temporali delle metriche. Per Cloud Storage, esiste un solo tipo di risorsa monitorata: gcs_bucket. Alcuni tipi di metriche si accoppiano con più di una risorsa monitorata.

Esempio pratico: se hai un progetto Google Cloud , puoi provare il widget Explorer API, che si trova nella pagina di riferimento del metodo timeSeries.list nell'API Monitoring.

  1. Apri la pagina di riferimento timeSeries.list.

  2. Nel riquadro Prova questo metodo, inserisci quanto segue:

    • name: projects/PROJECT_ID sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud .
    • filter: metric.type="logging.googleapis.com/log_entry_count" resource.type="gce_instance"
    • interval.start_time: inserisci l'ora di inizio e assicurati che sia 20 minuti prima dell'ora di fine.
    • interval.end_time: inserisci l'ora di fine.

Se la richiesta ha esito positivo, vengono restituiti i dati delle serie temporali che corrispondono alla richiesta. Avrà un aspetto simile al seguente snippet:

{
  "timeSeries": [
    {
      "metric": {
        "labels": {
          "severity": "INFO",
          "log": "compute.googleapis.com/activity_log"
        },
        "type": "logging.googleapis.com/log_entry_count"
      },
      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "0",
          "zone": "us-central1",
          "project_id": "your-project-id"
        }
      },
      "metricKind": "DELTA",
      "valueType": "INT64",
      "points": [
        {
        "interval": {
            "startTime": "2024-03-29T13:53:00Z",
            "endTime": "2024-03-29T13:54:00Z"
          },
          "value": {
            "int64Value": "0"
          }
        },
        ...
      ]
    },
    ...
  ]
}

Per ulteriori informazioni sull'utilizzo del widget Explorer API, inclusa la risoluzione dei problemi, consulta Explorer API.

Cardinalità: serie temporali ed etichette

Ogni serie temporale è associata a una coppia specifica di tipi di metrica e risorsa monitorata. I tipi di metrica e di risorsa monitorata forniscono ciascuno un certo numero di etichette. In Cloud Monitoring, il numero di combinazioni uniche di valori per l'insieme di etichette è la cardinalità del tipo di metrica o del tipo di risorsa monitorata. Questi valori sono denominati cardinalità metrica e cardinalità risorsa e determinano il numero di serie temporali possibili, la cardinalità totale, che potrebbero essere generate.

Cardinalità di metrica, risorsa e totale

Supponiamo di avere un tipo di metrica che specifica due etichette, color e zone. La cardinalità della metrica dipende dal numero di valori possibili che hanno queste etichette:

  • Se sono possibili solo tre colori, "rosso", "verde" e "blu", l'etichetta color può avere fino a tre valori distinti.
  • Se esistono solo due zone possibili, "est" e "ovest", l'etichetta zone può avere fino a due valori distinti.

La cardinalità di questa metrica è 6 (3×2). Se esistono 1000 valori possibili per l'etichetta color e se ogni colore può essere visualizzato in ogni zona, allora la cardinalità della metrica è 2000 (1000×2). Lo stesso calcolo si applica se si tratta di etichette di un tipo di risorsa monitorata anziché di un tipo di metrica.

Questo valore di cardinalità è un valore massimo, basato sul numero di combinazioni di valori di etichetta possibili. Il valore effettivo nel mondo reale potrebbe essere notevolmente inferiore quando non si verificano tutte le combinazioni di valori delle etichette. Ad esempio, se ogni colore viene visualizzato in una sola zona, non in entrambe, il numero massimo di serie temporali visualizzate nel sistema in esecuzione è 1000. Tuttavia, l'utilità della cardinalità effettiva dipende dai motivi per cui determinate combinazioni non vengono visualizzate e se potrebbero essere visualizzate in futuro.

La cardinalità dipende dai valori che possono avere le etichette.

Quando vengono scritti i dati delle serie temporali, questi vengono classificati in base ai tipi di metriche e risorse monitorate. Per qualsiasi coppia di tipi di metriche e risorse, la cardinalità totale è il prodotto della cardinalità della metrica e della cardinalità della risorsa. Se hai una metrica con cardinalità 1000 e una risorsa con cardinalità 100 e se viene visualizzato ogni valore dell'etichetta, avrai 100.000 serie temporali (1000 × 100).

Quando progetti le tue metriche, assicurati che l'insieme di valori possibili per qualsiasi etichetta sia vincolato. È preferibile utilizzare un piccolo insieme di valori discreti (come "rosso", "verde" e "blu"). Se, ad esempio, utilizzi valori RGB a 8 bit per un'etichetta color, puoi avere oltre 16 milioni di valori diversi. Non utilizzare valori ad alta risoluzione come timestamp, qualsiasi tipo di identificatore univoco, ID utente, indirizzi IP, URL senza parametri e così via per le etichette delle metriche.

Prestazioni delle query e cardinalità

Quando esegui una query per i dati, il volume di dati richiesto è il fattore più importante per le prestazioni della query: una query per un'ora di dati è generalmente più veloce della stessa query che copre sei mesi. Tuttavia, il volume di dati restituiti da una richiesta è sensibile anche al numero di serie temporali in una richiesta. Una query che recupera due mesi di dati per una metrica a bassa cardinalità è probabilmente più veloce di un'altra query che recupera due mesi di dati per una metrica a cardinalità molto elevata, a causa della quantità di dati recuperati.

La cardinalità dipende principalmente dal numero di valori che le etichette possono avere, non dal numero di etichette. In generale, non hai il controllo sulla cardinalità delle risorse, ad esempio quando il numero di pod o VM cambia in base alle esigenze aziendali. Tuttavia, quando inserisci le metriche in Cloud Monitoring, anziché utilizzare le metriche di sistema, spesso hai un certo controllo sulla cardinalità delle metriche. Ad esempio, con le metriche personalizzate definite dall'utente, determini le etichette e i valori possibili per queste etichette. Se stai importando metriche Prometheus, puoi utilizzare la rielaborazione delle etichette per modificare l'insieme di etichette ed eliminare le serie temporali che non vuoi importare.

Puoi utilizzare la pagina Gestione delle metriche di Cloud Monitoring per identificare le metriche che potrebbero presentare problemi di cardinalità. Per visualizzare la pagina Gestione metriche:

  1. Nella console Google Cloud , vai alla pagina  Gestione metriche:

    Vai a Gestione metriche

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

  2. Nella barra degli strumenti, seleziona la finestra temporale. Per impostazione predefinita, la pagina Gestione metriche mostra informazioni sulle metriche raccolte nel giorno precedente.

Per saperne di più sulla pagina Gestione metriche, consulta Visualizzare e gestire l'utilizzo delle metriche.

Per informazioni tecniche di base sul modo in cui Cloud Monitoring archivia e recupera i dati delle serie temporali, consulta Monarch: Google's Planet-Scale In-Memory Time Series Database.

Per informazioni sui limiti delle metriche definite dall'utente in Cloud Monitoring, consulta Metriche definite dall'utente.