Componenti del modello di metrica

Il modello di Cloud Monitoring per il monitoraggio dei dati si compone di 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 non conosci questi concetti, leggi prima questa pagina.

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

Devi comprendere le informazioni in questa pagina se vuoi eseguire una delle seguenti operazioni:

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 utilizzarel'API Monitoring o le metriche personalizzate.

Informazioni sulle etichette

I tipi di risorse e di metriche monitorate 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 informazioni sulla risorsa monitorata, queste includono i valori per le etichette. Una risorsa monitorata potrebbe anche avere etichette dei 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 è discusso più in dettaglio nella sezione 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 molto altro ancora.

Ogni tipo di risorsa monitorata è descritto formalmente in una struttura di dati denominata descrittore di risorse monitorate. Per maggiori informazioni, consulta Descrittori delle risorse monitorate.

A ogni tipo di risorsa monitorata supportata è presente una voce nell'elenco delle risorse monitorate. Le voci nell'elenco vengono create dai descrittori delle risorse monitorate. Questa sezione descrive le informazioni acquisite in un descrittore di risorse monitorate e mostra come sono presentate nell'elenco.

Un tipo di risorsa monitorata di esempio

Nell'immagine seguente viene mostrata la voce nell'elenco per un bucket Cloud Storage:

Elenco per il bucket Cloud Storage.

Tutte le voci dell'elenco includono le seguenti informazioni:

  • Type (Tipo): l'intestazione nella voce 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 la classificazione dei dati. Per maggiori informazioni, consulta la sezione 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 le misurazioni vengono interpretate. Cloud Monitoring supporta circa 6500 tipi di metriche e ti offre la possibilità di definirne di nuovi.

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

Ogni tipo di metrica è descritto formalmente in una struttura di dati chiamata descrittore della metrica. Per ulteriori informazioni, consulta Descrittori delle metriche.

Ogni tipo di metrica integrata ha una voce nelle pagine Elenco delle metriche. Le voci in 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 usa una voce come esempio, ma tutte le tabelle usano lo stesso formato.

La voce di tabella di Cloud Storage di esempio 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 usano 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 avvio del tipo di metrica con un valore come Alpha, Beta e GA.

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

  • Kind, Type, 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à (il valore 1).

    • Kind: questo esempio è una metrica delta, che registra una variazione in un periodo di tempo. In altre parole, ogni punto dati registra il numero di chiamate API da quando è stato scritto il punto dati precedente. Per ulteriori informazioni sui tipi, consulta Tipi di valore e metriche.

    • Tipo: in questo esempio i valori vengono registrati come numeri interi a 64 bit. Per ulteriori informazioni sui tipi, consulta Tipi di valore e metriche.

    • Unità: questa metrica non ha bisogno di 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 di quelli 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 la classificazione dei dati. Per maggiori informazioni, consulta la sezione 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 per quel progetto Google Cloud. Ad esempio, se richiedi i dati del progetto per il tipo di metrica storage.googleapis.com/api/request_count, vedrai 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, tra cui 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 integrati. Le metriche elencate nella pagina Elenco 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 la tua applicazione, potresti voler misurare determinate proprietà, aspetti per i quali non esistono metriche integrate in Cloud Monitoring. Con Cloud Monitoring puoi definire tipi di metriche personali o importare tipi di metriche da origini esterne. Questi tipi di metriche sono chiamate metriche personalizzate. Se una metrica ha il prefisso custom.googleapis.com o prometheus.googleapis.com, si tratta di una metrica personalizzata. Queste ultime metriche in genere provengono 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 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 e consentono di 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 di 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 località e al progetto del bucket interessato. L'insieme di etichette varia a seconda della metrica o del tipo di risorsa monitorata; le etichette disponibili sono documentate nelle pagine Elenco delle metriche ed Elenco delle risorse monitorate.

Monitorando il codice di risposta, il nome del metodo e la località durante il conteggio delle chiamate API, puoi recuperare il numero di chiamate a un determinato metodo API, il numero di chiamate non riuscite a un metodo o il numero di chiamate non riuscite a un metodo specifico in una località 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 possono essere raccolte per una coppia di tipi di metriche e di risorse monitorate: esiste una serie temporale per ogni combinazione di valori delle etichette. Per ulteriori informazioni, consulta Cardinalità: serie temporali ed etichette.

Etichette metadati delle risorse

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

Le etichette dei metadati di sistema e utente sono chiamate collettivamente etichette dei metadati delle risorse. Puoi utilizzare queste etichette come quelle definite nella metrica e nei tipi di risorse monitorate nei filtri delle serie temporali. Per maggiori informazioni sui filtri, consulta Filtri di Monitoring.

Serie temporali: dati provenienti da una risorsa monitorata

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

Cloud Monitoring archivia misurazioni regolari nel tempo per coppie di tipi di metriche e 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, value). Il valore è la misurazione, mentre il timestamp è il momento in cui è stata effettuata 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 metriche ed etichette delle risorse 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 progetto. L'illustrazione seguente mostra alcune possibili serie temporali.

Nell'illustrazione, il valore bucket: xxxx 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 di risorsa e metrica e le illustrazioni ne mostrano alcune:

Immagini che mostrano più serie temporali in una metrica

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 l'etichetta e nessuna serie temporale li menziona. Ciò significa che, se il 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 vengono associati a più di una risorsa monitorata.

Esempio dal vivo: se hai un progetto Google Cloud, puoi provare il widget Explorer API, disponibile nella pagina di riferimento per il metodo timeSeries.list nell'API Monitoring.

  1. Apri la pagina di riferimento di timeSeries.list.

  2. Nel riquadro con l'etichetta Prova questo metodo, inserisci quanto segue:

    • name: projects/PROJECT_ID sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud.
    • filtro: 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, verranno restituiti i dati delle serie temporali corrispondenti alla richiesta. Sarà 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 metriche e risorse monitorate. I tipi di metriche e di risorse monitorate offrono ciascuno un certo numero di etichette. In Cloud Monitoring, il numero di combinazioni univoche di valori per l'insieme di etichette corrisponde alla cardinalità del tipo di metrica o del tipo di risorsa monitorata. Questi valori sono chiamati cardinalità delle metriche e cardinalità delle risorse e determinano quante possibili serie temporali, la cardinalità totale, potrebbero essere generate.

Metriche, risorse e cardinalità totale

Supponi di avere un tipo di metrica che specifica due etichette, color e zone. La cardinalità delle metriche dipende dal numero di possibili valori delle etichette:

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

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

Questo valore di cardinalità è un valore massimo, basato sul numero di combinazioni di possibili valori delle etichette. Il valore reale effettivo potrebbe essere significativamente più basso se tutte le combinazioni di valori delle etichette non si verificano effettivamente. Ad esempio, se ogni colore compare in una sola zona e non in entrambe le zone, il numero massimo di serie temporali visualizzato nel sistema in esecuzione è 1000. Tuttavia, l'utilità della cardinalità efficace dipende dai motivi per cui alcune combinazioni non verranno visualizzate e dal fatto che ciò non avvenga in futuro.

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

Quando vengono scritti, i dati delle serie temporali vengono classificati per tipo di metrica e risorse monitorate. Per qualsiasi coppia di tipi di metriche e risorse, la cardinalità totale è il prodotto della cardinalità della metrica e della cardinalità delle risorse. Se hai una metrica con cardinalità pari a 1000 e una risorsa con cardinalità pari a 100 e se compare ogni valore di etichetta, allora hai 100.000 serie temporali (1000 × 100).

Quando progetti le tue metriche, assicurati che l'insieme di possibili valori per qualsiasi etichetta sia vincolato. L'approccio da preferire è 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 non parametrizzati e così via, per le etichette delle metriche.

Prestazioni e cardinalità delle query

Quando esegui una query sui dati, il volume dei dati richiesti è il fattore più importante nelle prestazioni delle query: una query per un'ora di dati è generalmente più rapida di una stessa query che copre sei mesi. Ma anche il volume dei dati restituiti da una richiesta è sensibile 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 da recuperare.

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 importi 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, devi determinare le etichette e i relativi valori. Se importi metriche Prometheus, puoi utilizzare la rietichettatura per modificare l'insieme di etichette e rilasciare 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 delle metriche, segui questi passaggi:

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

    Vai a Gestione delle 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 delle metriche mostra informazioni sulle metriche raccolte il giorno precedente.

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

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

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