Utilizzo delle metriche Prometheus

Questa pagina illustra le nozioni di base sull'utilizzo Metriche di Prometheus per gli SLI di disponibilità e latenza in Cloud Monitoring e il loro utilizzo per creare uno SLO.

Nozioni di base su Prometheus

Prometheus è una soluzione di monitoraggio open source leader per le metriche e avvisi.

Prometheus supporta dati dimensionali con identificatori chiave-valore per le metriche, il linguaggio di query PromQL e supporta molte integrazioni fornendo esportatori per altri prodotti.

Per iniziare a utilizzare Prometheus con il monitoraggio, ti consigliamo di utilizzare Google Cloud Managed Service per Prometheus.

Metriche

Prometheus supporta i seguenti tipi di metriche:

  • Contatore: un singolo valore che può essere aumentato o reimpostato solo monotonicamente a 0 al riavvio.
  • Indicatore: un singolo valore numerico che può essere impostato in modo arbitrario.
  • Istogramma: un gruppo di bucket configurabili per il campionamento delle osservazioni e la registrazione dei valori negli intervalli. Fornisce anche la somma di tutti i valori osservati
  • Riepilogo: come un istogramma, ma calcola anche quantili configurabili in una finestra temporale scorrevole.

Per ulteriori informazioni, consulta Tipi di metriche.

Creazione di metriche per gli SLI

Se la tua applicazione invia metriche Prometheus, puoi utilizzarle per gli SLI.

  • Per gli SLI di disponibilità relativi a richieste e conteggi di errori, puoi iniziare con le metriche dei contatori Prometheus.
  • Per gli SLI di latenza, puoi utilizzare l'istogramma di Prometheus o le metriche di riepilogo.

Per raccogliere le metriche di Prometheus con Google Cloud Managed Service per Prometheus, consulta le documentazione per la configurazione di risorse gestite raccolta di metriche con deployment autonomo.

Quando crei uno SLO nella console Google Cloud, i tipi di SLO di disponibilità e latenza predefiniti non includono le metriche Prometheus. Per utilizzare una metrica Prometheus, crea un SLO personalizzato e poi scegli una metrica Prometheus per l'SLI.

Le metriche di Prometheus iniziano con prometheus.googleapis.com/.

Metriche per GKE

La raccolta gestita di metriche da Google Cloud Managed Service per Prometheus è abilitato per impostazione predefinita per GKE. Se stai utilizzando un ambiente GKE che non attiva la raccolta gestita per impostazione predefinita, puoi attivarla manualmente. Quando la raccolta gestita è attiva, i componenti all'interno del cluster sono in esecuzione, ma le metriche non vengono generate finché non esegui il deployment di una risorsa PodMonitoring che esegue lo scraping di un endpoint delle metriche valido o abiliti uno dei pacchetti di metriche gestite.

Il pacchetto delle metriche del piano di controllo include metriche che sono indicatori utili dell'integrità del sistema. Attiva la raccolta delle metriche del piano di controllo per utilizzarle per la disponibilità, la latenza e altri SLI.

  • Utilizza le metriche del server API per monitorare il carico del server API, la percentuale di richieste del server API che restituiscono errori e la latenza di risposta per le richieste ricevute dal server API.
  • Utilizza le metriche di pianificazione per rispondere in modo proattivo ai problemi di pianificazione quando non sono disponibili risorse sufficienti per i pod in attesa.

Metriche per gli SLI di disponibilità

Puoi esprimere un SLI di disponibilità basato sulle richieste nell'API Cloud Monitoring utilizzando la struttura TimeSeriesRatio per impostare un rapporto tra richieste "buone" o "cattive" e richieste totali. Questo rapporto viene utilizzato nel campo goodTotalRatio di una RequestBasedSli alla struttura del centro di costo.

L'applicazione deve emettere metriche Prometheus che possono essere utilizzate per costruire questo rapporto. L'applicazione deve emettere almeno due dei seguenti elementi:

  1. Una metrica che conteggia il totale degli eventi. utilizza questa metrica nel parametro totalServiceFilter.

    Puoi utilizzare un contatore Prometheus che viene incrementato per ogni evento.

  2. Una metrica che conta le parole "non corrette" utilizza questa metrica nel parametro badServiceFilter.

    Puoi utilizzare un contatore Prometheus che viene incrementato per ogni errore o altro evento "non valido".

  3. Una metrica che conteggia gli eventi "buoni". Utilizzala nel rapportogoodServiceFilter.

    Puoi utilizzare un contatore Prometheus che viene incrementato per ogni evento riuscito o "buono".

Metriche per gli SLI di latenza

Puoi esprimere uno SLI di latenza basato su richiesta nell'API Cloud Monitoring creando una struttura DistributionCut. Questa struttura viene utilizzata nel campo distributionCut di una struttura RequestBasedSli.

L'applicazione deve emettere una metrica Prometheus che può essere utilizzata per creare il valore di taglio della distribuzione. Per questo scopo, puoi utilizzare un istogramma o un riepilogo Prometheus. Per determinare come definire i bucket per misurare con precisione se le risposte rientrano negli SLO, consulta Tipi di metriche nella documentazione di Prometheus.

Esempio

Il seguente esempio JSON utilizza la metrica del piano di controllo GKE prometheus.googleapis.com/apiserver_request_duration_seconds metrica per e creare uno SLO di latenza per un servizio. Lo SLO richiede che il 98% della latenza di risposta sia inferiore a 50 secondi in un mese di calendario.

{
 "displayName": "98% Calendar month - Request Duration Under 50s",
 "goal": 0.98,
 "calendarPeriod": "MONTH",
 "serviceLevelIndicator": {
   "requestBased": {
     "distributionCut": {
       "distributionFilter": "metric.type=\"prometheus.googleapis.com/apiserver_request_duration_seconds/histogram\" resource.type=\"prometheus_target\"",
       "range": {
         "min": "-Infinity",
         "max": 50
       }
     }
   }
 }
}

Passaggi successivi