Ces trois acronymes se mélangent tout le temps. Pourtant, l’idée derrière est très simple, et elle s’applique à un homelab aussi bien qu’à un service qui a des millions d’utilisateurs.
Les trois sigles en clair
- SLI (Service Level Indicator) : ce que tu mesures. Par exemple : « est-ce que mon blog répond correctement ? »
- SLO (Service Level Objective) : l’objectif que tu te donnes. Par exemple : « il doit répondre 99,5 % du temps. »
- SLA (Service Level Agreement) : la promesse faite à quelqu’un d’autre, souvent avec des conséquences si elle n’est pas tenue (remboursement, pénalités).
Dans un homelab, tu n’as pas de SLA. Personne ne te rembourse quand le Pi-hole plante. Les deux qui t’intéressent sont donc le SLI et le SLO.
Choisir un SLI : la bonne question
Un bon SLI se pose du point de vue de celui qui utilise le service, pas du point de vue de la machine. Que le CPU soit à 5 % ne dit rien sur le fait que ton Nextcloud synchronise bien.
Pour un service web, le SLI le plus simple est : « la page répond avec un code 200, en moins de quelques secondes. »
Avec Prometheus et un exporteur de sondes (le blackbox exporter), ça donne la métrique probe_success, qui vaut 1 quand la sonde réussit et 0 sinon. Le taux de disponibilité sur 30 jours s’obtient avec :
avg_over_time(probe_success{job="blackbox", instance="https://blog.exemple.net"}[30d]) * 100
Le résultat est un pourcentage, par exemple 99,71.
Pour d’autres services, adapte le SLI à ce qui compte vraiment :
| Service | SLI possible |
|---|---|
| Blog / site web | La page d’accueil répond en 200 |
| Pi-hole | Une requête DNS test obtient une réponse |
| Nextcloud | La page de connexion répond, et le disque a de la place |
| Sauvegardes | La dernière sauvegarde a moins de 26 heures |
Fixer un SLO : pas trop haut
C’est là que la tentation est grande de viser 99,99 %. Résiste. Voici ce que chaque niveau représente comme temps d’indisponibilité autorisé :
| Objectif | Sur 30 jours | Sur un an |
|---|---|---|
| 99 % | 7 h 12 min | 3 j 15 h |
| 99,5 % | 3 h 36 min | 1 j 20 h |
| 99,9 % | 43 min | 8 h 46 min |
| 99,99 % | 4 min 19 s | 52 min |
Pour un homelab, avec une seule machine, une seule connexion Internet et des mises à jour qui demandent des redémarrages, 99 % à 99,5 % est un objectif honnête. Viser 99,99 % reviendrait à dire : « je n’ai le droit à aucun redémarrage, aucune coupure de courant, aucune mise à jour du noyau. » Autant dire que tu rateras ton objectif dès le premier mois.
Un SLO utile est un objectif exigeant mais atteignable, qui te dit quand tu dois t’inquiéter.
Un SLO différent par service
Tous tes services n’ont pas la même importance :
- Ce qui est critique pour la maison (DNS, accès aux photos) : 99,5 %.
- Ce qui est confortable (un wiki, un tableau de bord) : 99 %.
- Ce qui est expérimental (le conteneur que tu viens de monter) : pas d’objectif, et c’est normal.
Écrire ça noir sur blanc a un effet inattendu : tu arrêtes de t’énerver pour une panne de 20 minutes du tableau de bord, et tu te concentres sur ce qui compte.
Mesurer où tu en es
Une fois l’objectif fixé, la requête qui compte est celle-ci : est-ce que je le tiens ce mois-ci ?
avg_over_time(probe_success{instance="https://blog.exemple.net"}[30d]) >= 0.995
Elle renvoie 1 si l’objectif est tenu, 0 sinon. Un panneau Grafana « vert / rouge » avec cette requête suffit largement.
Si tu veux aller plus loin sans écrire tes règles à la main, j’ai raconté dans J’ai arrêté d’écrire mes SLOs Prometheus à la main comment j’ai construit un petit générateur pour ça.
L’erreur de débutant : mesurer sans décider
Un SLO n’a d’intérêt que s’il change ce que tu fais. Pose-toi la question dès le départ : « si je n’atteins pas l’objectif, qu’est-ce que je change ? »
La réponse sera, par exemple : « je repousse la mise à jour du noyau », ou « je regarde pourquoi ce service redémarre tout le temps ». C’est exactement le sujet de l’article suivant : le budget d’erreur.
En résumé
- Choisis un service qui compte.
- Définis un SLI simple (répond / ne répond pas).
- Fixe un SLO réaliste (99 % ou 99,5 %).
- Affiche où tu en es sur un panneau.
- Décide à l’avance ce que tu fais si tu es en dessous.
Pas besoin de plus pour commencer. Ça tient dans une soirée, et ça change complètement la façon de regarder ses pannes.