Ontwerp een Prometheus Service-Level Objective (SLO) Monitoringsplan
description
Helpt gebruikers bij het ontwerpen van een gerichte monitoringaanpak met Prometheus om SLO-naleving te volgen, waardoor proactief incidentbeheer en verbeterde servicebetrouwbaarheid mogelijk zijn. In tegenstelling tot algemene alerting prompts ligt de focus hier op businessgerichte metrics en foutbudgetten, wat meer strategische waarde biedt.
prompt
Help me een Prometheus-monitoringsplan te maken dat zich richt op het definiëren en volgen van Service-Level Objectives (SLO's) voor mijn service: <Servicenaam>. Geef advies over het selecteren van pa ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een overzichtelijk Prometheus-monitoringsplan voor jouw Betalingsverwerking Service, gericht op het behalen en monitoren van je SLO's:
1. **Definitie van SLO's en Foutbudgetten**
- **Uptime (Availability):** 99,95%
- **Foutpercentage (Error Rate):** max 0,05%
- **Latency p90:** onder 200ms
**Foutbudget:**
- Voor uptime:
- 0,05% downtime per maand (~43 minuten per maand)
- Voor foutpercentage:
- Max 0,05% fouten, dus foutbudget is 99,95% goede transacties
- Voor latency:
- 90% van de verzoeken moeten onder 200ms blijven
2. **Belangrijke Metrics om te monitoren**
- **Uptime / Availability:**
- `up` metric of een aangepaste metric die aangeeft of de service beschikbaar is
- **Error Rate:**
- Aantal foutieve transacties (`http_errors_total` of vergelijkbare metric)
- Totaal aantal verzoeken (`http_requests_total`)
- **Latency (p90):**
- Verdeel de latency over requests met bijvoorbeeld `histogram` of `summary`, zoals `http_request_duration_seconds`
3. **Prometheus Configuratie en Alerting**
- **Uptime:**
- Monitor of de service `up` is (value 1)
- Alert bij `up == 0` gedurende een bepaalde tijd (bijvoorbeeld 5 minuten)
- **Foutpercentage:**
```promql
sum(rate(http_errors_total[5m])) / sum(rate(http_requests_total[5m])) > 0.0005
```
- Alert wanneer dit boven 0,05% komt
- **Latency p90:**
```promql
histogram_quantile(0.90, rate(http_request_duration_seconds_bucket[5m])) > 0.2
```
- Alert wanneer p90 latency boven 200ms komt
4. **Alertdrempels en acties**
- **Uptime:**
- Alert bij meer dan 5 minuten downtime
- **Foutpercentage:**
- Alert bij foutpercentage > 0,05% over een periode van 5 minuten
- **Latency:**
- Alert bij p90 latency die > 200ms is over 5 minuten
5. **Rapportage en dashboarding**
- Zet dashboards op (bijvoorbeeld met Grafana) die de SLO's visueel weergeven:
- Uptime percentage over tijd
- Foutpercentage en foutbudgetgebruik
- Latency p90 trends
6. **Aanpassingen en verbetering**
- Houd het foutbudget bij en pas je operationele acties aan als je dicht bij de limieten komt
- Voer regelmatige reviews uit om de metrics en alerting te optimaliseren
**Kort samengevat:**
Gebruik `up` voor uptime, `http_errors_total` en `http_requests_total` voor error rate, en `http_request_duration_seconds` voor latency. Stel alertregels in die aangeven wanneer je SLO's niet gehaald worden, en houd de foutbudgetten in de gaten om je service proactief te verbeteren.
Wil je dat ik voorbeeldconfiguraties of specifieke alertregels voor je opstel?
provider: deepseek
model: deepseek-chat
Hier is een uitgebreid monitoringsplan voor je Betalingsverwerking Service met focus op SLO's:
## 1. SLI Metrics en Monitoring
### Beschikbaarheid (Uptime)
```promql
# Uptime SLI
sum(rate(http_requests_total{service="betalingsverwerking", status!~"5.."}[5m]))
/
sum(rate(http_requests_total{service="betalingsverwerking"}[5m]))
```
### Foutpercentage
```promql
# Foutpercentage SLI
sum(rate(http_requests_total{service="betalingsverwerking", status=~"5.."}[5m]))
/
sum(rate(http_requests_total{service="betalingsverwerking"}[5m]))
```
### Latency (P90)
```promql
# P90 Latency SLI
histogram_quantile(0.90,
sum(rate(http_request_duration_seconds_bucket{service="betalingsverwerking"}[5m]))
by (le)
)
```
## 2. Foutbudget Management
### Foutbudget Berekenen
- **Uptime foutbudget**: 0,05% = 21,6 minuten/maand
- **Foutpercentage budget**: 0,05% van alle requests
- **Latency budget**: 10% van requests mag boven 200ms zijn
### Foutbudget Tracking
```promql
# Resterend foutbudget (voorbeeld voor uptime)
1 - (
sum(rate(http_requests_total{service="betalingsverwerking", status!~"5.."}[30d]))
/
sum(rate(http_requests_total{service="betalingsverwerking"}[30d]))
) - 0.9995
```
## 3. Alerting Strategie
### Kritieke Alerts (Pagina)
```yaml
# SLO Burn Rate Alert
- alert: SLOErrorBudgetBurnRateHigh
expr: |
(
(1 - (sum(rate(http_requests_total{service="betalingsverwerking", status!~"5.."}[1h])) / sum(rate(http_requests_total{service="betalingsverwerking"}[1h]))) - 0.9995)
/ (1 - 0.9995)
) > 0.1
for: 5m
labels:
severity: critical
annotations:
description: "Foutbudget verbruikt met >10% in afgelopen uur"
```
### Waarschuwingsalerts
```yaml
- alert: SLOLatencyApproachingLimit
expr: |
histogram_quantile(0.90,
sum(rate(http_request_duration_seconds_bucket{service="betalingsverwerking"}[10m]))
by (le)
) > 150
for: 10m
labels:
severity: warning
annotations:
description: "P90 latency nadert SLO limiet van 200ms"
```
## 4. Aanvullende Metrics voor Betalingsservice
### Business Metrics
```promql
# Transactie volume
rate(betalings_transacties_total{service="betalingsverwerking"}[5m])
# Gemiddelde transactie waarde
avg(betalings_transactie_bedrag{service="betalingsverwerking"})
# Success rate per betaalmethode
sum by (payment_method) (
rate(betalings_success_total{service="betalingsverwerking"}[5m])
) /
sum by (payment_method) (
rate(betalings_transacties_total{service="betalingsverwerking"}[5m])
)
```
### Dependency Monitoring
```promql
# Database performance
rate(database_query_duration_seconds{service="betalingsverwerking"}[5m])
# Externe API dependencies
rate(external_api_call_duration_seconds{service="betalingsverwerking"}[5m])
```
## 5. Dashboard Recommendations
Creëer een SLO dashboard met:
- **SLO Status**: Huidige compliance percentage
- **Foutbudget Burn Rate**: Verbruik over tijd
- **Trend Analysis**: 30-dagen trend per SLI
- **Error Budget Remaining**: Resterend budget visualisatie
- **Top Error Sources**: Meest voorkomende fouttypes
## 6. Foutbudget Policy
### Verbruiksstrategie
- **< 2% verbruikt**: Normale operaties
- **2-10% verbruikt**: Extra monitoring, beperkte feature releases
- **>10% verbruikt**: Feature freeze, focus op stabiliteit
- **>50% verbruikt**: Alleen kritieke fixes, incident response
## 7. Review en Optimalisatie
Plan regelmatige reviews:
- **Wekelijks**: SLO compliance check
- **Maandelijks**: Foutbudget analyse
- **Kwartaal**: SLO doelstellingen herziening
Dit plan biedt een solide basis voor het monitoren en handhaven van je SLO's voor de Betalingsverwerking Service. Pas de thresholds aan op basis van je werkelijke traffic patterns en bedrijfsbehoeften.