Utilizzo delle metriche Prometheus

Questa pagina illustra le nozioni di base sull'utilizzo delle metriche Prometheus per gli SLI di disponibilità e latenza in Cloud Monitoring e sull'utilizzo di queste metriche per creare un SLO.

Nozioni di base su Prometheus

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

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

Per iniziare a utilizzare Prometheus con Monitoring, 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 in modo monotono o reimpostato su 0 al riavvio.
  • Indicatore: un singolo valore numerico che può essere impostato arbitrariamente.
  • Istogramma: un gruppo di bucket configurabili per campionare le osservazioni e registrare i valori in intervalli; fornisce anche una somma di tutti i valori osservati
  • Riepilogo: come un istogramma, ma calcola anche quantili configurabili in una finestra temporale mobile.

Per saperne di più, consulta Tipi di metriche.

Creazione di metriche per gli SLI

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

  • Per gli SLI di disponibilità relativi ai conteggi di richieste ed errori, puoi iniziare con le metriche del contatore Prometheus.
  • Per gli SLI di latenza, puoi utilizzare le metriche di istogramma o riepilogo di Prometheus.

Per raccogliere le metriche Prometheus con Google Cloud Managed Service per Prometheus, consulta la documentazione per la configurazione della raccolta delle metriche gestita o con deployment automatico.

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'indicatore SLI.

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

Metriche per GKE

La raccolta gestita delle metriche da parte di Google Cloud Managed Service per Prometheus è abilitata per impostazione predefinita per GKE. Se esegui in un ambiente GKE che non abilita la raccolta gestita per impostazione predefinita, puoi abilitare la raccolta gestita manualmente. Quando la raccolta gestita è abilitata, i componenti in-cluster sono in esecuzione, ma le metriche non vengono generate finché non viene eseguito il deployment di una risorsa PodMonitoring che esegue lo scraping di un endpoint delle metriche valido o finché non viene abilitato uno dei pacchetti di metriche gestite.

Il pacchetto metriche del control plane include metriche che sono indicatori utili dell'integrità del sistema. Abilita la raccolta delle metriche del control plane per utilizzarle per disponibilità, latenza e altri SLI.

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

Metriche per gli SLI di disponibilità

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

La tua 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 gli eventi totali; utilizza questa metrica nel rapporto totalServiceFilter.

    Puoi utilizzare un contatore Prometheus incrementato per ogni evento.

  2. Una metrica che conteggia gli eventi "negativi". Utilizza questa metrica nel rapporto badServiceFilter.

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

  3. Una metrica che conteggia gli eventi "buoni". Utilizza questa metrica nel rapporto goodServiceFilter.

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

Metriche per gli SLI di latenza

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

La tua applicazione deve emettere una metrica Prometheus che possa essere utilizzata per costruire il valore di distribuzione. A questo scopo, puoi utilizzare un istogramma o un riepilogo di Prometheus. Per determinare come definire i bucket per misurare con precisione se le risposte rientrano nel tuo SLO, consulta Tipi di metriche nella documentazione di Prometheus.

Esempio

L'esempio JSON seguente utilizza la metrica del control plane GKE prometheus.googleapis.com/apiserver_request_duration_seconds per creare un SLO di latenza per un servizio. Lo SLO richiede che la latenza del 98% delle risposte 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