Informazioni sulle metriche con valori di distribuzione

Questo documento descrive come creare e interpretare un grafico che mostra i dati metrici del tipo di valore Distribution. Questo tipo di valore viene utilizzato dai servizi quando le singole misurazioni sono troppo numerose per essere raccolte, ma le informazioni statistiche, come le medie o le Percentili, su queste misurazioni sono importanti. Ad esempio, quando un'applicazione si basa sul traffico HTTP, puoi utilizzare una metrica con valore di distribuzione che acquisisce la latenza della risposta HTTP per valutare la rapidità di completamento delle richieste HTTP.

Per illustrare come viene creato un istogramma, prendi in considerazione un servizio che misura la latenza HTTP delle richieste e che registra questi dati utilizzando una metrica con un tipo di valore di distribuzione. I dati vengono registrati ogni minuto. Il servizio definisce intervalli di valori per la metrica, chiamati bucket, e registra il conteggio dei valori misurati che rientrano in ogni bucket. Ad esempio, al termine di una richiesta HTTP, il servizio incrementa il conteggio nel bucket il cui intervallo include il valore di latenza della richiesta. Questi conteggi creano un istogramma dei valori per quel minuto.

Supponiamo che le latenze misurate in un intervallo di un minuto siano 5, 1, 3, 5, 6, 10 e 14. Se i bucket sono [0, 4), [4, 8), [8, 12] e [12, 16], l'istogramma di questi dati è [2, 3, 1, 1]. La tabella seguente mostra come le singole misurazioni influiscono sul conteggio per ogni bucket:

Bucket Misure di latenza Numero di valori nel bucket
[12,16) 14 1
[8,12) 10 1
[4,8) 5, 5, 6 3
[0,4) 1, 3 2

Quando questi dati vengono scritti nella serie temporale, viene creato un oggetto Point. Per le metriche con un valore di distribuzione, questo oggetto include l'istogramma dei valori. Per questo periodo di campionamento, Point contiene [2, 3, 1, 1]. Le singole misurazioni non vengono scritte nella serie temporale.

Supponiamo che la tabella precedente registri l'istogramma per i dati sulla latenza misurati alle ore 01:00. Questa tabella illustra come acquisire una serie di misurazioni e convertirle in conteggi dei bucket. Supponiamo che i conteggi del bucket alle ore 1:01, 1:02 e 1:03 siano come mostrato nella tabella seguente:

Bucket Istogramma per
1:00
Istogramma per
1:01
Istogramma per
1:02
Istogramma per
1:03
[12,16) 1 6 0 1
[8,12) 1 0 2 2
[4,8) 3 1 1 8
[0,4) 2 6 10 3

La tabella precedente mostra una sequenza di istogrammi indicizzati in base al tempo. Ogni colonna della tabella rappresenta i dati sulla latenza per un periodo di un minuto. Per ottenere il numero di misurazioni in un momento specifico, somma i conteggi dei bucket. Tuttavia, le misurazioni effettive non vengono mostrate perché non sono disponibili nelle metriche con valori di distribuzione.

Grafici di mappa termica

I grafici di mappa termica sono progettati per visualizzare una singola serie temporale con valori di distribuzione. Per questi grafici, l'asse X rappresenta il tempo, l'asse Y rappresenta i bucket e il colore rappresenta il valore. Più il colore è brillante, più alto è il valore. Ad esempio, le aree scure della mappa termica indicano un conteggio dei bucket inferiore rispetto alle aree gialle o bianche.

La figura seguente è una rappresentazione di una mappa termica per l'esempio precedente:

Grafico mappa termica per l'esempio.

Nella figura precedente, la mappa termica utilizza il nero per rappresentare il numero di bucket più piccolo, 0, e il giallo per rappresentare il numero di bucket più grande, 10. I colori rossi e arancioni rappresentano i valori tra questi due estremi.

Poiché i grafici delle mappe termiche possono mostrare una sola serie temporale, devi impostare le opzioni di aggregazione per combinare tutte le serie temporali.

Per utilizzare Metrics Explorer per visualizzare la somma delle latenze RTT di un'istanza VM, segui questi passaggi:
  1. Nella console Google Cloud, vai alla pagina  Esplora metriche:

    Vai a Esplora metriche

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

  2. Nell'elemento Metrica, espandi il menu Seleziona una metrica, digita RTT latencies nella barra dei filtri e poi utilizza i sottomenu per selezionare un tipo di risorsa e una metrica specifici:
    1. Nel menu Risorse attive, seleziona Istanza VM.
    2. Nel menu Categorie di metriche attive, seleziona Vm_flow.
    3. Nel menu Metriche attive, seleziona Latenze RTT.
    4. Fai clic su Applica.

Nell'esempio precedente, il grafico della mappa termica viene configurato selezionando i valori dai menu. Tuttavia, puoi anche utilizzare Monitoring Query Language (MQL) per rappresentare graficamente le metriche con valori di distribuzione. Per inserire una query MQL:

  1. Nella barra degli strumenti del riquadro Query Builder, seleziona il pulsante  MQL o  PromQL.
  2. Verifica che sia selezionato MQL nel pulsante di attivazione/disattivazione Lingua. Il pulsante di attivazione/disattivazione della lingua si trova nella stessa barra degli strumenti che consente di formattare la query.
  3. Inserisci una query ed eseguila.

Ad esempio, inserisci quanto segue nell'editor di codice:

fetch gce_instance
| metric 'networking.googleapis.com/vm_flow/rtt'
| align delta(1m)
| every 1m
| group_by [], [aggregate(value.rtt)]

Nell'espressione precedente, i dati delle serie temporali vengono recuperati, allineati e poi raggruppati. Il processo di allineamento utilizza una funzione di allineamento delta con un periodo di allineamento di un minuto. Poiché il primo argomento di group_by è [], tutte le serie temporali vengono combinate. Il secondo argomento, [aggregate(value.rtt)], definisce in che modo vengono combinate le serie temporali. In questo esempio, per ogni timestamp, i valori del campo rtt delle diverse serie temporali vengono combinati con la funzione aggregate, selezionata da MQL.

Se utilizzi i menu per selezionare la metrica e poi passi a MQL, le tue selezioni vengono convertite in una query MQL in forma rigorosa:

fetch gce_instance
| metric 'networking.googleapis.com/vm_flow/rtt'
| align delta(1m)
| every 1m
| group_by [], [value_rtt_aggregate: aggregate(value.rtt)]

L'espressione precedente è funzionalmente equivalente all'esempio MQL originale.

Per ulteriori informazioni su MQL, consulta la panoramica del linguaggio Monitoring Query Language.

Grafici a linee e a barre

I grafici a linee, i grafici a barre in pila e i grafici a linee in pila, progettati per visualizzare i dati scalari, non possono visualizzare i valori di distribuzione. Per visualizzare una metrica con un valore di distribuzione con uno di questi tipi di grafici, devi convertire i valori dell'istogramma in valori scalari. Ad esempio, puoi impostare le opzioni di aggregazione per calcolare la media dei valori nell'istogramma o un percentile.

Per informazioni su come visualizzare una metrica con valori di distribuzione su un grafico a linee, consulta la sezione seguente.

Metriche di aggregazione e distribuzione

L'aggregazione è il processo di regolarizzazione dei punti all'interno di una serie temporale e di combinazione di più serie temporali. L'aggregazione è la stessa per le metriche di tipo di distribuzione e per le metriche con un tipo di valore intero o doppio. Tuttavia, il tipo di grafico impone alcuni requisiti alle scelte utilizzate per allineare e raggruppare le serie temporali.

Grafici di mappa termica

I grafici di mappa termica mostrano una serie temporale con valori di distribuzione. Pertanto, la funzione di allineamento e la funzione di raggruppamento devono essere impostate per creare una singola serie temporale.

Seleziona una funzione di allineamento sum o delta quando un grafico mostra una mappa termica. Queste funzioni combinano, a livello di bucket, tutti i campioni per una singola serie temporale che si trovano nello stesso periodo di allineamento e il risultato è un valore di distribuzione. Ad esempio, se due campioni adiacenti di una serie temporale sono [2, 3, 1, 1] e [2, 5, 4, 1], la funzione di allineamento della somma produce [4, 8, 5, 2].

La funzione di raggruppamento definisce la modalità di combinazione delle diverse serie temporali. Questa funzione è a volte chiamata aggregatore o riduttore. Per le mappe di calore, imposta la funzione di raggruppamento sulla funzione sum. La funzione somma aggiunge i valori degli stessi bucket in tutti gli istogrammi, generando un nuovo istogramma. Ad esempio, la somma del valore [2, 3, 1, 1] della serie temporale A e del valore [1, 5, 2, 2] della serie temporale B è [3, 8, 3, 3].

Grafici a linee

I grafici a linee mostrano solo serie temporali con valori scalari. Se selezioni una metrica con valore di distribuzione, il grafico viene configurato con parametri ottimali per visualizzare una mappa di calore. I campi dell'elemento Aggregation sono impostati su Distribution e None.

  • L'interpretazione di Distribuzione dipende dalla metrica specifica. Per i tipi di metriche con valori di distribuzione che hanno un tipo di metrica GAUGE, la funzione di allineamento predefinita è impostata su sum. Quando un tipo di metrica con valore di distribuzione ha un tipo di metrica CUMULATIVE, la funzione di allineamento predefinita è DELTA.

  • L'impostazione Nessuna garantisce che tutti i periodi di tempo vengano combinati.

Se vuoi visualizzare una metrica con valore di distribuzione in un grafico a linee, devi modificare le impostazioni predefinite del grafico. Ad esempio, per configurare un grafico a linee in una dashboard in modo da visualizzare il 99° percentile di ogni serie temporale per una metrica con valore di distribuzione, procedi nel seguente modo:

  1. Nella console Google Cloud, vai alla pagina  Dashboard:

    Vai a Dashboard

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

  2. Nella barra degli strumenti, fai clic su  Aggiungi widget.
  3. Nella finestra di dialogo Aggiungi widget, seleziona  Metrica.
  4. Nell'elemento Metrica, seleziona la metrica Istanza VM - Latenze RTT.
  5. Nell'elemento Aggregazione, espandi il primo menu e seleziona 99° percentile.
  6. Nel riquadro Visualizza, imposta il valore del menu Tipo di widget su Grafico a linee.
  7. (Facoltativo) Nell'elemento Aggregazione, espandi il secondo menu e seleziona le etichette utilizzate per raggruppare le serie temporali. Per impostazione predefinita, non sono selezionate etichette, pertanto nel grafico viene visualizzata una sola linea.

Passaggi successivi

Per informazioni su come determinare il modello di bucket per una metrica e su come interpretare i percentile, consulta Percentili e metriche con valori di distribuzione.