Componenti del modello di metrica

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

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

Il documento Il modello delle metriche descrive in termini generali questi concetti di Cloud Monitoring. Se non conosci questi concetti, prima leggi la pagina.

In questa pagina vengono descritti in modo più dettagliato i tipi di metriche, le risorse monitorate e le serie temporali, insieme 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 azioni:

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

Alcune parole 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 località della macchina e l'ID progetto associato alla macchina. Quando vengono registrate informazioni sulla risorsa monitorata, queste includono i valori delle etichette. Una risorsa monitorata potrebbe anche avere etichette di metadati forniti 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 in modo più dettagliato 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 di architettura in Google Kubernetes Engine, tabelle in Bigtable, varie risorse AWS e molto altro ancora.

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

Per ognuno dei tipi di risorse monitorate supportati è 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 vengono presentate nell'elenco.

Un esempio di tipo di risorsa monitorata

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

Elenco per il bucket Cloud Storage.

Tutte le voci dell'elenco includono le seguenti informazioni:

  • Tipo: l'intestazione della 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 ulteriori informazioni, consulta la pagina 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 dei dischi, il consumo di archiviazione e molto altro ancora.

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 dispone di una voce nelle pagine dell'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 utilizza una voce come esempio, ma tutte le tabelle usano lo stesso formato.

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

  • Tipo di metrica: un identificatore del 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 determinato 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, "Conteggio richieste" nell'esempio.

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

    • Tipo: questo esempio è una metrica delta che registra una modifica in un periodo di tempo. In altre parole, ogni punto dati registra il numero di chiamate API dalla scrittura del punto dati precedente. Per saperne di più sui tipi, consulta Tipi di valore e tipi di metriche.

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

    • Unità: questa metrica non ha bisogno di un'unità esplicita perché rappresenta un conteggio; la cifra 1 viene utilizzata per indicare che non sono necessarie 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 quali dati vengono registrati e come. Impostalo in corsivo per distinguerlo dalle etichette.

  • Etichette: un insieme di dimensioni per la classificazione dei dati. Per ulteriori informazioni, consulta la pagina 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 progetto per il tipo di metrica storage.googleapis.com/api/request_count, vedrai i conteggi delle API solo per i bucket Cloud Storage nel progetto. Se il tuo 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 Metriche mostra l'intero set di tipi di metriche integrate. Le metriche elencate nella pagina [Elenco di metriche esterne][metrics-external] 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 un prefisso external.googleapis.com.

Metriche personalizzate

Quando crei la tua applicazione, potresti avere determinate proprietà da misurare, per le quali non sono presenti metriche integrate in Cloud Monitoring. Con Cloud Monitoring, puoi definire i tuoi tipi di metriche o importarne i tipi da origini esterne. Questi tipi di metriche sono chiamati metriche personalizzate. Se una metrica ha un prefisso di custom.googleapis.com o prometheus.googleapis.com, si tratta di una metrica personalizzata. Queste ultime 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 saperne di più, 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 dei dati.

Etichette di metrica ed etichette delle risorse monitorate

Le definizioni dei tipi di metrica e di risorsa monitorata includono le etichette. Le etichette sono classificatori dei dati raccolti; aiutano a classificare 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 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 ed Elenco delle risorse monitorate.

Monitorando il codice di risposta, il nome del metodo e la località quando conteggi le chiamate API, puoi recuperare il numero di chiamate a un determinato metodo API, il numero di chiamate non riuscite a qualsiasi metodo o il numero di chiamate con errori a un metodo specifico in una località specifica.

Il numero di etichette e il numero di valori che possono assumere ciascuno è indicato come cardinalità. La cardinalità è il numero di possibili serie temporali che potrebbero essere raccolte per una coppia di tipi di metrica e risorsa-monitorata: 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 nella metrica e nei tipi di risorse monitorate, Monitoring raccoglie internamente ulteriori informazioni sulle risorse monitorate e le archivia nelle etichette dei metadati del 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 durante la configurazione di risorse come le istanze VM nella console Google Cloud.

Le etichette dei metadati del sistema e dell'utente sono denominate collettivamente etichette dei metadati delle risorse. Puoi utilizzare queste etichette, come quelle definite nella metrica e i tipi di risorse monitorate nei filtri delle serie temporali. Per ulteriori informazioni sui filtri, consulta la sezione Filtri di Monitoring.

Serie temporale: dati da una risorsa monitorata

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

Cloud Monitoring archivia le misurazioni regolari nel tempo per coppie di tipi di metriche e risorse monitorate. Le misurazioni vengono raccolte in serie temporali, ognuna delle quali 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 rappresenta 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 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 tuo 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 delle risorse e delle metriche; le illustrazioni ne mostrano alcuni:

Immagini che mostrano più serie temporali in una metrica

Cloud Monitoring non registra le 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 quell'etichetta e non viene menzionato in nessuna serie temporale. Ciò significa che, se il progetto non ha dati per una metrica specifica, 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 è presente 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, che si trova nella pagina di riferimento del metodo timeSeries.list nell'API Monitoring.

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

  2. Nel riquadro denominato 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 precedente di 20 minuti rispetto all'ora di fine.
    • interval.end_time: inserisci l'ora di fine.

Se la richiesta ha esito positivo, restituirà i dati della serie temporale che corrispondono 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. Le metriche e i tipi di risorse monitorate forniscono ciascuno un certo numero di etichette. In Cloud Monitoring, il numero di combinazioni univoche di valori per il set di etichette corrisponde alla cardinalità del tipo di metrica o del tipo di risorsa monitorata. Questi valori sono indicati come cardinalità delle metriche e cardinalità delle risorse e determinano quante possibili serie temporali, ovvero la cardinalità totale, potrebbero essere generate.

Metrica, risorsa e cardinalità totale

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

  • Se i colori possibili sono solo tre, "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 (3x2). Se esistono 1000 possibili valori 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.

Questa cardinalità è un valore massimo, in base al numero di combinazioni di valori possibili delle etichette. Il valore reale effettivo potrebbe essere notevolmente basso quando tutte le combinazioni di valori di etichetta non si verificano effettivamente. Ad esempio, se ogni colore appare in una sola zona, non in entrambe le zone, il numero massimo di serie temporali che vedi nel sistema in esecuzione è 1000. Tuttavia, l'utilità della cardinalità efficace dipende dai motivi per cui determinate combinazioni non vengono visualizzate e dalla probabilità che ciò accada in futuro.

La cardinalità dipende dai valori consentiti per le etichette.

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

Quando progetti le tue metriche, assicurati che l'insieme dei possibili valori per ogni etichetta sia vincolato. Un piccolo insieme di valori discreti (come "rosso", "verde" e "blu") è l'approccio preferito. 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 e cardinalità delle query

Quando esegui una query sui dati, il volume di dati richiesto è il fattore più importante per le prestazioni della query: una query su un'ora di dati è in genere più veloce di una query che copre i sei mesi della stessa query. Tuttavia, il volume di dati restituiti da una richiesta è sensibile anche al numero di serie temporali contenute 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 ad alta cardinalità, 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, come 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, hai spesso un certo controllo sulla cardinalità delle metriche. Con le metriche personalizzate, ad esempio, determinate le etichette e i possibili 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:

  1. Nel pannello di navigazione della console Google Cloud, seleziona Monitoring, quindi  Gestione delle metriche:

    Vai a Gestione delle metriche

  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, consulta Monarch: database di serie temporali in memoria di Google Planet-Scale.

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