Questo documento ti aiuta a scegliere l'approccio migliore per rappresentare in un grafico o monitorare un rapporto di dati delle metriche. Include anche link a esempi, identifica quando puoi calcolare i rapporti e descrive le anomalie che potresti notare quando rappresenti un rapporto tra due metriche diverse. Queste anomalie sono dovute a differenze nella frequenza di campionamento o nei parametri di allineamento.
I rapporti ti consentono di trasformare i dati delle metriche in una forma diversa e potenzialmente più utile. Ad esempio, considera un tipo di metrica che conteggia il numero di risposte HTTP in base al codice di risposta. I dati delle metriche riportano il numero di errori, ma non la proporzione di richieste non riuscite. Tuttavia, i requisiti di prestazioni sono spesso specificati come percentuale, ad esempio "Il tasso di errore deve essere inferiore allo 0,1%". Per determinare il tasso di errore utilizzando i dati delle metriche, calcola il rapporto tra le richieste non riuscite e il numero totale di richieste.
Best practice
Per monitorare o creare un grafico di un rapporto tra i dati delle metriche, ti consigliamo di utilizzare PromQL. Puoi utilizzare PromQL con l'API Cloud Monitoring e con la console Google Cloud. La console Google Cloud include un editor di codice che fornisce suggerimenti, rilevamento degli errori e altro supporto per la creazione di query PromQL valide.
Per creare un criterio di avviso che monitora un rapporto di metriche se non hai dimestichezza con PromQL, utilizza l'API Cloud Monitoring e includi un filtro delle serie temporali. Per un esempio, consulta Rapporto metrico.
Per creare un grafico di un rapporto di dati metrici se non hai dimestichezza con PromQL, consigliamo di utilizzare la console Google Cloud e un'interfaccia basata su menu. Per istruzioni dettagliate, consulta Graficare un rapporto tra metriche e Aggiungere grafici e tabelle a una dashboard personalizzata.
Limitazioni con i rapporti
Quando configuri un rapporto, si applicano le seguenti limitazioni:
Dopo l'aggregazione, le etichette nella serie temporale del denominatore devono essere uguali o essere un sottoinsieme delle etichette nella serie temporale del numeratore.
Ti consigliamo di selezionare le opzioni di aggregazione in modo che, dopo l'aggregazione, le serie temporali del numeratore e del denominatore abbiano le stesse etichette.
Prendiamo in considerazione una configurazione in cui la serie temporale del numeratore ha le etichette
method
,quota_metric
eproject_id
. La serie temporale del denominatore ha le etichettelimit_name
,quota_metric
eproject_id
. Le opzioni valide per il raggruppamento del denominatore dipendono dalle selezioni per il numeratore:- Numeratore raggruppato in base all'etichetta
method
: combina la serie temporale del denominatore in un'unica serie temporale. Nessun altro raggruppamento fa sì che le etichette della serie temporale del denominatore siano un sottoinsieme delle etichette della serie temporale del numeratore. - Numeratore raggruppato in base all'etichetta
quota_metric
: raggruppa il denominatore in base a questa etichetta o combina tutte le serie temporali nel denominatore in un'unica serie temporale. - Numeratore raggruppato per le etichette
quota_metric
eproject_id
: Raggruppa il denominatore per entrambe le etichette, per un'etichetta o combina la serie temporale del denominatore in un'unica serie temporale.
Le opzioni di aggregazione del denominatore valide eliminano sempre l'etichetta
limit_name
dalla serie temporale raggruppata perché questa etichetta non è presente nella serie temporale del numeratore.- Numeratore raggruppato in base all'etichetta
Il periodo di allineamento deve essere lo stesso per il numeratore e il denominatore quando configuri un grafico utilizzando la console Google Cloud; tuttavia, questi campi possono essere diversi quando utilizzi l'API Cloud Monitoring.
Ti consigliamo di utilizzare lo stesso periodo di allineamento per il numeratore e il denominatore, indipendentemente dallo strumento che utilizzi per creare il grafico.
Il numeratore e il denominatore devono avere lo stesso tipo di valore. Ad esempio, quando il numeratore è di tipo
DOUBLE
, anche il denominatore deve essere di tipoDOUBLE
.I rapporti richiedono che la metrica del numeratore e del denominatore abbia un tipo di valore
DOUBLE
oINT64
.Le serie temporali allineate per il numeratore e il denominatore devono avere lo stesso tipo di metrica. Quando le due metriche hanno tipi diversi, devi utilizzare gli allineatori per convertirle nello stesso tipo.
Considera una configurazione in cui è selezionata una metrica
DELTA
per il numeratore e una metricaGAUGE
per il denominatore. In questo caso, utilizza l'allineamento delle tariffe,ALIGN_RATE
, per convertire la metricaDELTA
in una metricaGAUGE
. Per un esempio, consulta Criteri di avviso sul rapporto sull'utilizzo della quota tariffaria per un limite.Per i rapporti non definiti con PromQL, il tipo di risorsa monitorata deve essere lo stesso per il numeratore e il denominatore.
Ad esempio, se la risorsa per la metrica del numeratore è costituita da istanze Compute Engine, anche la risorsa per la metrica del denominatore deve essere costituita da istanze Compute Engine.
Anomalie dovute a mancate corrispondenze di campionamento e allineamento
In generale, è preferibile calcolare i rapporti in base alle serie temporali raccolte per un singolo tipo di metrica utilizzando i valori delle etichette. Un rapporto calcolato su due tipi di metriche diverse è soggetto ad anomalie a causa di periodi di campionamento e finestre di allineamento diversi.
Ad esempio, supponiamo che tu abbia due tipi di metriche diversi, un conteggio totale delle RPC e un conteggio degli errori RPC, e che tu voglia calcolare il rapporto tra le RPC con conteggio degli errori e le RPC totali. Le chiamate RPC non riuscite vengono conteggiate nelle serie temporali di entrambi i tipi di metriche. Pertanto, è possibile che, quando allinei le serie temporali, un RPC non riuscito non venga visualizzato nello stesso intervallo di allineamento per entrambe le serie temporali. Questa differenza può verificarsi per diversi motivi, tra cui:
- Poiché esistono due serie temporali diverse che registrano lo stesso evento, esistono due valori di contatore sottostanti che implementano la raccolta e non vengono aggiornati in modo atomico.
- Le frequenze di campionamento potrebbero essere diverse. Quando le serie temporali sono allineate a un periodo comune, i conteggi di un singolo evento potrebbero apparire in intervalli di allineamento adiacenti nelle serie temporali per le diverse metriche.
La differenza nel numero di valori negli intervalli di allineamento corrispondenti può portare a valori di rapporto error/total
privi di significato come 1/0 o 2/1.
È meno probabile che i rapporti di numeri più grandi generino valori privi di significato. Puoi ottenere numeri più grandi tramite l'aggregazione, utilizzando una finestra di allineamento più lunga del periodo di campionamento o raggruppando i dati per determinate etichette. Queste tecniche riducono al minimo l'effetto di piccole differenze nel numero di punti in un determinato intervallo. In altre parole, una disparità di due punti è più significativa quando il numero previsto di punti in un intervallo è 3 rispetto a quando il numero previsto è 300.
Se utilizzi tipi di metriche integrate, potresti non avere altra scelta che calcolare i rapporti tra i tipi di metriche per ottenere il valore necessario.
Se stai progettando metriche personalizzate che potrebbero conteggiare la stessa cosa, ad esempio RPC che restituiscono lo stato di errore, in due metriche diverse, valuta la possibilità di utilizzare una singola metrica che includa ogni conteggio una sola volta. Ad esempio, supponiamo di contare le RPC e di voler monitorare il rapporto tra le RPC non andate a buon fine e tutte le RPC. Per risolvere il problema, crea un singolo tipo di metrica per conteggiare le chiamate RPC e utilizza un'etichetta per registrare lo stato dell'invocazione, incluso lo stato "OK". Quindi, ogni valore dello stato, errore o "OK", viene registrato aggiornando un singolo contatore per la richiesta.
Passaggi successivi
Per informazioni sull'utilizzo di PromQL per configurare i criteri di avviso, consulta Criteri di avviso con PromQL.
Per informazioni sulla creazione di grafici, consulta i seguenti documenti:
- Per creare grafici temporanei, consulta Metrics Explorer.
- Per aggiungere grafici a una dashboard utilizzando la console Google Cloud, consulta Aggiungere grafici e tabelle a una dashboard personalizzata.
- Per gestire i grafici utilizzando l'API Cloud Monitoring, consulta Creare e gestire le dashboard tramite API.