RousselTMLEARNING

Article · SRE en pratique : SLI, SLO et budgets d'erreur

Générer ses SLO avec Sloth

1. Le principe #

Décrire, générer, charger.

Pourquoi Sloth #

Fonctionnement de Sloth
Une vingtaine de lignes de spécification produisent des dizaines de règles cohérentes.

Sloth est un générateur open source : à partir d'une spécification de SLO, il produit les règles d'enregistrement des SLI pour toutes les fenêtres, les métadonnées (objectif, budget restant) et les alertes multi-fenêtres multi-taux de la méthode Google.

2. Écrire une spécification #

Le format prometheus/v1.

Exemple #

version: "prometheus/v1"
service: "checkout"
labels:
  owner: "equipe-paiement"
slos:
  - name: "requests-availability"
    objective: 99.9
    description: "Requêtes de l'API checkout sans erreur 5xx."
    sli:
      events:
        error_query: sum(rate(http_requests_total{service="checkout",code=~"5.."}[{{.window}}]))
        total_query: sum(rate(http_requests_total{service="checkout"}[{{.window}}]))
    alerting:
      name: CheckoutHighErrorRate
      labels:
        category: availability
      annotations:
        summary: "Budget d'erreur de checkout consommé trop vite"
        runbook_url: https://wiki.example.org/runbooks/checkout
      page_alert:
        labels: { severity: critical }
      ticket_alert:
        labels: { severity: warning }

Le gabarit {{.window}} est remplacé par chaque fenêtre (5m, 30m, 1h, 2h, 6h, 1d, 3d, 30d).

sloth validate -i slos/
sloth generate -i slos/checkout.yml -o rules/checkout-slo.yml
# ou avec Docker
docker run --rm -v $PWD:/w ghcr.io/slok/sloth generate -i /w/slos/checkout.yml -o /w/rules/checkout-slo.yml

Ce qui est généré #

MétriqueSignification
slo:sli_error:ratio_rate5m ... ratio_rate30dTaux d'erreur par fenêtre
slo:objective:ratioObjectif (0,999)
slo:error_budget:ratioBudget (0,001)
slo:current_burn_rate:ratioBurn rate actuel
slo:period_error_budget_remaining:ratioBudget restant sur la période

Toutes portent les labels sloth_service, sloth_slo et sloth_id.

3. Sur Kubernetes et dans Grafana #

Opérateur et dashboards.

Opérateur #

En mode Kubernetes, Sloth surveille des ressources PrometheusServiceLevel et crée les PrometheusRule correspondantes pour le Prometheus Operator :

apiVersion: sloth.slok.dev/v1
kind: PrometheusServiceLevel
metadata:
  name: checkout
  namespace: paiement
spec:
  service: checkout
  slos:
    - name: requests-availability
      objective: 99.9
      sli:
        events:
          errorQuery: sum(rate(http_requests_total{service="checkout",code=~"5.."}[{{.window}}]))
          totalQuery: sum(rate(http_requests_total{service="checkout"}[{{.window}}]))
      alerting:
        name: CheckoutHighErrorRate
        pageAlert: { labels: { severity: critical } }
        ticketAlert: { labels: { severity: warning } }
Bonne Pratique : Sloth publie deux dashboards Grafana (identifiants 14348 pour le détail d'un SLO et 14643 pour la vue d'ensemble) qui exploitent directement les métriques générées.

📄 Générer ses SLO Prometheus avec Sloth →

Mon suivi

  • ⏱ Durée estimée : ≈ 8 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

💬 Discussions récentes de la formation

Poser une question sur cette leçon →Voir toutes les discussions de la formation

Articles recommandés

Piloter ses SLO avec Pyrra

Pyrra : définir des SLO de disponibilité et de latence en CRD Kubernetes ou en fichiers, générer ...

Alertes sur le taux de consommation du budget (burn rate multi-fenêtres)

Pourquoi alerter sur le burn rate plutôt que sur un seuil, et comment construire les alertes mult...

Le budget d'erreur : décider avec les SLO

Calculer et suivre un budget d'erreur, rédiger une politique de budget d'erreur et l'utiliser pou...

Grafana SLO dans Grafana Cloud

Définir des SLO, suivre le budget d'erreur et générer les alertes de burn rate.

Chaos engineering : principes, outils et mise en pratique avec les SLO

Guide complet du chaos engineering : principes, régime permanent et hypothèse, rayon d'impact, li...

Les SLO dans Dynatrace : objectifs, budget d’erreur et burn rate

SLI, SLO et SLA, budget d'erreur et taux de consommation : définir un SLO de disponibilité ou de ...

Bonnes pratiques SRE : SLO utiles et budgets respectés

Check-list pour mettre en place des SLO qui servent : choix des parcours utilisateurs, objectifs ...

SRE : SLI, SLO et SLA expliqués simplement

Les fondamentaux de l'ingénierie de la fiabilité (SRE) : différence entre SLI, SLO et SLA, choix ...

Mesurer des SLI avec Prometheus

Implémenter des SLI de disponibilité et de latence avec Prometheus : métriques nécessaires, requê...

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !