RousselTMLEARNING

Observabilité

Piloter ses SLO avec Pyrra

Pyrra : définir des SLO de disponibilité et de latence en CRD Kubernetes ou en fichiers, générer les règles Prometheus et suivre budgets et burn rates dans son interface web.

1. Pyrra en bref #

Un générateur avec une interface.

Composants #

Pyrra fait le même travail que Sloth (règles multi-fenêtres et alertes burn rate) et y ajoute une interface web qui liste tous les SLO, leur budget restant et leurs graphes, sans dashboard à importer.

ComposantRôle
pyrra apiInterface web et API (port 9099), interroge Prometheus
pyrra kubernetesOpérateur : lit les CRD ServiceLevelObjective et crée des PrometheusRule
pyrra filesystemHors Kubernetes : lit des fichiers YAML et écrit des fichiers de règles pour Prometheus

2. Définir des SLO #

Disponibilité et latence.

Disponibilité #

apiVersion: pyrra.dev/v1alpha1
kind: ServiceLevelObjective
metadata:
  name: checkout-errors
  namespace: monitoring
  labels: { prometheus: k8s, role: alert-rules }
spec:
  target: "99.9"
  window: 4w
  description: Requêtes de checkout sans erreur 5xx.
  indicator:
    ratio:
      errors:
        metric: http_requests_total{service="checkout", code=~"5.."}
      total:
        metric: http_requests_total{service="checkout"}

Latence #

spec:
  target: "99"
  window: 4w
  indicator:
    latency:
      success:
        metric: http_request_duration_seconds_bucket{service="checkout", le="0.3"}
      total:
        metric: http_request_duration_seconds_count{service="checkout"}
À savoir : Avec grouping: [route], Pyrra calcule un SLO par valeur du label (une ligne par route dans l'interface), à partir d'une seule définition.

3. Sloth ou Pyrra ? #

Deux bons choix.

Comparatif #

CritèreSlothPyrra
Interface webNon (dashboards Grafana)Oui
KubernetesOpérateur + CLIOpérateur
Hors KubernetesCLI qui génère des fichiersMode filesystem
SLI de latence natifRequêtes libresOui (histogrammes)
Plugins de SLIOui (bibliothèque de SLI)Non

Les versions commerciales de Grafana (Grafana Cloud SLO), Datadog, Dynatrace ou Nobl9 proposent des fonctions équivalentes intégrées. Les concepts (SLI ratio, fenêtres, burn rate) restent identiques.

Articles liés

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 des indicate…

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 pour arbitrer e…

Mesurer des SLI avec Prometheus

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

Pour aller plus loin