Informazioni sulle metriche con valore di distribuzione

Questo documento descrive come creare e interpretare un grafico che mostra i dati delle metriche 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 medie o percentile, su queste misurazioni sono importanti. Ad esempio, quando un'applicazione si basa sul traffico HTTP, puoi utilizzare una metrica con valori di distribuzione che acquisisca la latenza della risposta HTTP per valutare la velocità di completamento delle richieste HTTP.

Per illustrare come viene creato un istogramma, considera un servizio che misuri la latenza HTTP delle richieste e che registri questi dati utilizzando una metrica con un tipo di valore di distribuzione. I dati vengono riportati ogni minuto. Il servizio definisce intervalli di valori per la metrica, chiamati bucket, e registra il numero di valori misurati che rientrano in ogni bucket. Ad esempio, quando una richiesta HTTP viene completata, il servizio incrementa il conteggio nel bucket il cui intervallo include il valore di latenza della richiesta. Questi conteggi creano un istogramma di 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 in che modo le singole misurazioni influiscono sul conteggio di ciascun bucket:

Bucket Misure di latenza Numero di valori nel bucket
[12,16) 14 1
[8,12) 10 1
[4,8) 5, 5 e 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, l'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 di latenza come misurato all'ora 1:00. La tabella mostra come eseguire una serie di misurazioni e convertirle in conteggi dei bucket. Supponiamo che i conteggi del bucket nei momenti 1:01, 1:02 e 1:03 siano come mostrato nella seguente tabella:

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 all'ora. Ogni colonna della tabella rappresenta i dati di latenza per un periodo di un minuto. Per ottenere il numero di misurazioni in un determinato momento, somma i conteggi dei bucket. Tuttavia, le misurazioni effettive non vengono mostrate perché non sono disponibili nelle metriche con valore di distribuzione.

Grafici a mappa termica

I grafici a 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 è chiaro indica un valore più alto. Ad esempio, le aree scure della mappa termica indicano un numero di bucket inferiore rispetto alle aree gialle o bianche.

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

Grafico della 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 rossi e le arancioni rappresentano i valori compresi tra questi due estremi.

Poiché i grafici a mappa termica possono visualizzare 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. Nel pannello di navigazione della console Google Cloud, seleziona Monitoring e poi  Metrics Explorer:

    Vai a Metrics Explorer

  2. Nell'elemento Metrica, espandi il menu Seleziona una metrica, inserisci RTT latencies nella barra dei filtri, quindi 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 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 del generatore di query, seleziona il pulsante il cui nome è  MQL o  PromQL.
  2. Verifica che MQL sia selezionato 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 per group_by è [], tutte le serie temporali vengono combinate. Il secondo argomento, [aggregate(value.rtt)], definisce il modo in cui le serie temporali vengono combinate. 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 selezioni vengono convertite in una query MQL in forma rigida:

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 di Monitoring Query Language.

Grafici a linee e a barre

I grafici a linee, a barre in pila e in pila, progettati per mostrare dati scalari, non possono mostrare valori di distribuzione. Per visualizzare una metrica con un valore di distribuzione con uno di questi tipi di grafico, devi convertire i valori degli istogrammi in valori scalari. Ad esempio, puoi impostare le opzioni di aggregazione per calcolare la media dei valori nell'istogramma o per calcolare 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 di punti all'interno di una serie temporale e di combinazione di più serie temporali. L'aggregazione per le metriche del tipo di distribuzione è la stessa che per le metriche con un tipo di valore intero o doppio. Tuttavia, il tipo di grafico prevede alcuni requisiti sulle scelte utilizzate per allineare e raggruppare le serie temporali.

Grafici a mappa termica

I grafici della mappa termica mostrano una serie temporale con valori di distribuzione. Pertanto, la funzione di allineamento e la funzione di raggruppamento devono essere impostate in modo da 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 di una singola serie temporale che si trovano nello stesso periodo di allineamento, generando 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 somma produce [4, 8, 5, 2].

La funzione di raggruppamento definisce il modo in cui le diverse serie temporali vengono combinate. Questa funzione a volte viene chiamata aggregatore o riduttore. Per le mappe termiche, imposta la funzione di raggruppamento sulla funzione sum. La funzione di 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] di serie temporale-A e del valore [1, 5, 2, 2] di 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 valori di distribuzione, il grafico viene configurato con parametri ottimali per visualizzare una mappa termica. I campi dell'elemento Aggregation sono impostati su Distribution e None.

  • L'interpretazione della 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 valori di distribuzione ha un tipo di metrica CUMULATIVE, la funzione di allineamento predefinita è DELTA.

  • L'impostazione Nessuno garantisce la combinazione di tutti gli orari.

Se vuoi visualizzare una metrica con valori di distribuzione in un grafico a linee, devi modificare le impostazioni predefinite del grafico. Ad esempio, per configurare un grafico a linee su 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. Nel pannello di navigazione della console Google Cloud, seleziona Monitoring, quindi seleziona  Dashboard:

    Vai a Dashboard

  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 Visualizzazione, 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 è selezionata alcuna etichetta, quindi viene visualizzata una riga nel grafico.

Passaggi successivi

Per informazioni su come determinare il modello di bucket per una metrica e come interpretare i percentili, consulta Percentile e metriche sul valore di distribuzione.