Informazioni sui rapporti tra le metriche

Questo documento ti aiuta a scegliere l'approccio migliore per rappresentare graficamente 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 visualizzare quando tracci un grafico del 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 un formato diverso 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 rendimento 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 rappresentare graficamente 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 monitori un rapporto tra metriche quando non hai familiarità con PromQL, utilizza l'API Cloud Monitoring e includi un filtro delle serie temporali. Per un esempio, vedi Rapporto tra metriche.

Per rappresentare graficamente un rapporto tra i dati delle metriche quando non hai familiarità con PromQL, ti consigliamo di utilizzare la console Google Cloud e un'interfaccia basata su menu. Per istruzioni dettagliate, vedi Rappresentare graficamente un rapporto tra metriche e Aggiungere grafici e tabelle a una dashboard personalizzata.

Limitazioni con proporzioni

Quando configuri un rapporto, si applicano le seguenti limitazioni:

  • Dopo l'aggregazione, le etichette nelle serie temporali del denominatore devono essere uguali o un sottoinsieme delle etichette nelle serie temporali 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.

    Prendi in considerazione una configurazione in cui la serie temporale del numeratore ha le etichette method, quota_metric e project_id. 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 fa sì che le etichette delle serie temporali del denominatore siano un sottoinsieme delle etichette delle serie temporali del numeratore.
    • Numeratore raggruppato in base all'etichetta quota_metric: Raggruppa il denominatore in base a questa etichetta o combina tutte le serie temporali del denominatore in un'unica serie temporale.
    • Numeratore raggruppato in base alle etichette quota_metric e project_id: Raggruppa il denominatore in base a entrambe le etichette, a una sola etichetta o combina le serie temporali del denominatore in un'unica serie temporale.

    Le opzioni di aggregazione del denominatore valide eliminano sempre l'etichetta limit_name dalle serie temporali raggruppate perché non è presente nelle serie temporali del numeratore.

  • 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 utilizzato per creare il grafico.

  • Il numeratore e il denominatore devono avere lo stesso tipo di valore. Ad esempio, se il numeratore è di tipo DOUBLE, anche il denominatore deve essere di tipo DOUBLE.

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

  • 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.

    Prendi in considerazione una configurazione in cui viene selezionata una metrica DELTA per il numeratore e una metrica GAUGE per il denominatore. In questa situazione, utilizza lo strumento di 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 di frequenza 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 sono le istanze di Compute Engine, anche la risorsa per la metrica del denominatore deve essere costituita da istanze di Compute Engine.

Anomalie dovute a discrepanze di campionamento e allineamento

In generale, è meglio 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 diversi è soggetto ad anomalie dovute a periodi di campionamento e finestre di allineamento diversi.

Ad esempio, supponiamo di avere due tipi di metriche diversi, un conteggio totale RPC e un conteggio errori RPC, e di voler calcolare il rapporto tra le RPC con conteggio errori e le RPC totali. Le RPC non riuscite vengono conteggiate nella serie temporale di entrambi i tipi di metriche. Pertanto, quando allinei le serie temporali, è possibile che una RPC non riuscita non venga visualizzata nello stesso intervallo di allineamento per entrambe le serie temporali. Questa differenza può verificarsi per diversi motivi, tra cui:

  • Poiché esistono due diverse serie temporali 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 variare. Quando le serie temporali sono allineate a un periodo comune, i conteggi di un singolo evento potrebbero essere visualizzati 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 senza senso come 1/0 o 2/1.

È meno probabile che i rapporti tra 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. ovvero 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 integrati, potresti non avere altra scelta che calcolare i rapporti tra i tipi di metriche per ottenere il valore che ti serve.

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 include ogni conteggio una sola volta. Ad esempio, supponiamo di conteggiare le RPC e di voler monitorare il rapporto tra le RPC non riuscite e tutte le RPC. Per risolvere questo problema, crea un singolo tipo di metrica per conteggiare le RPC e utilizza un'etichetta per registrare lo stato dell'invocazione, incluso lo stato "OK". Quindi, ogni valore di stato, errore o "OK", viene registrato aggiornando un singolo contatore per quel caso.

Avvisi errati dovuti ad anomalie nel calcolo del rapporto

Per evitare falsi avvisi dovuti a errori temporanei o dati mancanti, imposta la durata della query PromQL su almeno il doppio dell'intervallo di valutazione:

  • ConsoleGoogle Cloud : imposta la durata nel campo Durata durante la configurazione della condizione di avviso.
  • API Cloud Monitoring o Terraform: specifica la durata utilizzando il campo AlertPolicy.Condition.PrometheusQueryLanguageCondition.duration.

Passaggi successivi