Informazioni sui rapporti delle metriche

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 parametri di allineamento.

I rapporti consentono di trasformare i dati delle metriche in valori diversi e potenzialmente più utile, forma. Ad esempio, considera un di metrica che conta il numero di risposte HTTP per codice di risposta. I dati delle metriche riportano il numero di errori, ma non la proporzione di richieste non riuscite. Tuttavia, i requisiti di rendimento sono spesso specificati come percentuale, ad esempio "La percentuale 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 su un rapporto di dati delle metriche, ti consigliamo di utilizzare PromQL Puoi utilizzare PromQL con l'API Cloud Monitoring e 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 monitori un rapporto di metriche quando non conosci PromQL, usa l'API Cloud Monitoring e includi 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, ti consigliamo di utilizzare la console Google Cloud e un'interfaccia basata su menu. Per istruzioni dettagliate, vedi: Creare un grafico di un rapporto di 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 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.

    Considera una configurazione in cui la serie temporale del numeratore ha method, quota_metric e project_id etichette. La serie temporale del denominatore ha le etichette limit_name, quota_metric e project_id. Le scelte valide per il raggruppamento del denominatore dipendono dalle selezioni per il numeratore:

    • Numeratore raggruppato in base all'etichetta method: Combina le serie temporali del denominatore in un'unica serie temporale. Nessun altro raggruppamento genera le etichette per la serie temporale del denominatore essere un sottoinsieme delle etichette delle serie temporali del numeratore.
    • Numeratore raggruppato in base all'etichetta quota_metric: Raggruppa il denominatore in base a quell'etichetta o combina tutti serie temporali nel denominatore in un'unica serie temporale.
    • Numeratore raggruppato per le etichette quota_metric e project_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 il valore limit_name delle serie temporali raggruppate perché l'etichetta non è presente nella serie temporale del numeratore.

  • Il periodo di allineamento deve essere lo stesso per il numeratore e il denominatore Durante la configurazione di un grafico utilizzando la console Google Cloud; tuttavia, questi campi possono essere diversi quando si utilizza l'API Cloud Monitoring.

    Consigliamo di utilizzare lo stesso periodo di allineamento per il numeratore e il denominatore a prescindere dallo strumento utilizzato per creare il grafico.

  • Il numeratore e il denominatore devono avere lo stesso tipo di valore. Ad esempio, quando il numeratore è di tipo DOUBLE, il denominatore deve essere anch'esso di tipo DOUBLE.

    I rapporti richiedono che il numeratore e la metrica del denominatore abbiano un valore tipo di DOUBLE o INT64.

  • Le serie temporali allineate per il numeratore e il denominatore devono avere i valori 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 metrica GAUGE è selezionata per il denominatore. In questo caso, utilizza l'allineamento delle tariffe, ALIGN_RATE, per convertire la metrica DELTA in una metrica GAUGE. 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 numeratore istanze di Compute Engine, la risorsa per la metrica del denominatore devono essere anche istanze di Compute Engine.

Anomalie dovute a mancate corrispondenze di campionamento e allineamento

In generale, è meglio calcolare i rapporti in base alle serie temporali raccolte per: un singolo tipo di metrica, usando i valori delle etichette. Un rapporto calcolato su due diversi tipi di metriche è soggetto ad anomalie a causa di periodi di campionatura diversi e finestre di allineamento.

Ad esempio, supponiamo che tu abbia due tipi di metriche diversi, un valore e un conteggio degli errori RPC e vuoi calcolare il rapporto RPC su RPC totali. Le chiamate RPC non riuscite vengono conteggiate nelle serie temporali di entrambi i tipi di metriche. Pertanto, esiste la possibilità che, quando allinei i tempi una RPC non riuscita non viene visualizzata nello stesso intervallo di allineamento 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 possono variare. Quando le serie temporali sono allineate a un periodo, i conteggi di un singolo evento potrebbero essere visualizzati in un allineamento adiacente intervalli di tempo nella serie temporale 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 intervallo dato. 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 i tipi di metriche integrati, potresti non avere altra scelta i rapporti tra i vari tipi di metriche per ottenere il valore di cui hai bisogno.

Se stai progettando metriche personalizzate che potrebbero conteggiare la stessa cosa, ad esempio RPC che restituiscono stato di errore: in due metriche diverse, prendi in considerazione una singola metrica, che include ogni conteggio una sola volta. Ad esempio, supponiamo di contare le RPC e di voler monitorare il rapporto tra le RPC non riuscite e tutte le RPC. Per risolvere il problema, creare un singolo tipo di metrica per contare le RPC e utilizzare un'etichetta per registrare stato della chiamata, incluso "OK" . Quindi ogni valore di stato o "OK" viene registrato aggiornando un singolo contatore per quel caso.

Passaggi successivi