Utilizzo delle metriche Prometheus

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

Nozioni di base su Prometheus

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

Prometheus supporta i dati dimensionali con identificatori chiave-valore per le metriche, fornisce 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 solo in modo monotonico o reimpostato su 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 emette 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 le metriche di riepilogo o l'istogramma di Prometheus.

Per raccogliere le metriche Prometheus con Google Cloud Managed Service per Prometheus, consulta la documentazione per la configurazione della raccolta delle metriche gestite 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'SLI.

Le metriche di 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 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 struttura RequestBasedSli.

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

  1. Una metrica che conteggia gli eventi totali. Utilizzala nel valore totalServiceFilter del rapporto.

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

  2. Una metrica che conteggia gli eventi "non validi". Utilizzala nel valorebadServiceFilter del rapporto.

    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

L'esempio JSON seguente utilizza la metrica prometheus.googleapis.com/apiserver_request_duration_seconds del piano di controllo GKE per 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