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 leader di monitoraggio open source per le metriche e gli avvisi.
Prometheus supporta dati dimensionali con identificatori di valori-chiave per le metriche, fornisce il linguaggio di query PromQL e supporta molte integrazioni fornendo esportatori 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 o reimpostato monotonicamente a 0 solo al riavvio.
- Misura: un singolo valore numerico impostabile in modo arbitrario.
- Istogramma: un gruppo di bucket configurabili per campionare le osservazioni e registrare i valori negli intervalli; fornisce inoltre la somma di tutti i valori osservati
- Riepilogo: è un istogramma, ma calcola anche quantli configurabili in un intervallo di tempo scorrevole.
Per ulteriori informazioni, consulta Tipi di metriche.
Creazione di metriche per gli SLI
Se l'applicazione emette metriche di Prometheus, puoi utilizzarle per gli SLI.
- Per gli SLI di disponibilità su richieste e conteggi di errori, puoi iniziare con le metriche del contatore di Prometheus.
- Per gli SLI di latenza, puoi utilizzare l'istogramma o le metriche di riepilogo di Prometheus.
Per raccogliere le metriche Prometheus con Google Cloud Managed Service per Prometheus, consulta la documentazione per la configurazione della raccolta di metriche gestite o con deployment self-service.
Quando crei uno SLO nella console Google Cloud, i tipi di SLO predefiniti per disponibilità e latenza non includono le metriche Prometheus. Per utilizzare una metrica di Prometheus, crea uno SLO personalizzato, quindi scegli una metrica di Prometheus per lo 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 è abilitata per impostazione predefinita per GKE. Se esegui in un ambiente GKE che non abilita la raccolta gestita per impostazione predefinita, puoi abilitare manualmente la raccolta gestita. Quando la raccolta gestita è abilitata, i componenti nel 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 non abiliti uno dei pacchetti di metriche gestite.
Il pacchetto di metriche del piano di controllo include metriche che sono utili indicatori dell'integrità del sistema. Abilita la raccolta delle metriche del piano di controllo per utilizzare queste metriche per disponibilità, latenza e altri SLI.
- Utilizza le metriche del server API per tenere traccia del carico del server API, della frazione delle richieste del server API che restituiscono errori e della 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 sono disponibili risorse sufficienti per i pod in attesa.
Metriche per gli SLI di disponibilità
Uno SLI di disponibilità basato sulle richieste deve essere espresso nell'API Cloud Monitoring utilizzando la struttura TimeSeriesRatio
per configurare un rapporto tra richieste "buone" o "non buone" e richieste totali. Questo rapporto viene utilizzato nel campo goodTotalRatio
di una struttura RequestBasedSli
.
L'applicazione deve emettere metriche di Prometheus che possono essere utilizzate per costruire questo rapporto. L'applicazione deve emettere almeno due dei seguenti elementi:
Una metrica che conteggia gli eventi totali. Utilizza questa metrica nell'elemento
totalServiceFilter
del rapporto.Puoi utilizzare un contatore Prometheus che viene incrementato per ogni evento.
Una metrica che conteggia gli eventi "non validi", utilizza questa metrica nell'elemento
badServiceFilter
del rapporto.Puoi utilizzare un contatore Prometheus che viene incrementato per ogni errore o altro evento "non valido".
Una metrica che conteggia gli eventi "buoni", utilizza questa metrica nell'elemento
goodServiceFilter
del rapporto.Puoi utilizzare un contatore Prometheus 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 di Prometheus che possa essere utilizzata per creare il valore di taglio di distribuzione. A questo scopo, puoi usare un istogramma o un riepilogo di Prometheus. Per determinare come definire i bucket per misurare con precisione se le risposte rientrano all'interno dello SLO, consulta Tipi di metriche nella documentazione di Prometheus.
Esempio
Il seguente esempio JSON 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% di 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
- Crea uno SLO
- Scopri di più su Google Cloud Managed Service per Prometheus.
- Scopri di più sulle metriche del piano di controllo.