Endpoints déclarés en YAML, chacun avec ses conditions
Gatus est un outil de supervision écrit en Go, doublé d'une page de statut. Tout se déclare dans un fichier YAML : chaque endpoint y reçoit une URL, un intervalle (60 secondes par défaut) et une liste de conditions. Une seule condition en échec marque l'endpoint en panne et déclenche, passé un seuil, les alertes qui lui sont rattachées. Le tableau de bord affiche l'état de chaque sonde, ses derniers résultats et les annonces d'incident.
Le comparatif des outils de supervision et des pages de statut auto-hébergés situe Gatus parmi les outils qui se règlent dans une interface web ou installent un agent.
Conditions JSONPath sur le corps de chaque réponse
- Des conditions sur le contenu de la réponse :
[STATUS] == 200,[RESPONSE_TIME] < 300,[BODY].status == UPen JSONPath,has([BODY].errors) == false. Avec la dernière, une API qui répond 200 avec un champerrorspasse en panne. - Une configuration qui se range dans Git : variables d'environnement, ancres YAML, fichiers d'un même dossier fusionnés en un seul. Gatus recharge le fichier dès qu'il change.
- Bien plus que HTTP : ICMP, TCP, UDP, SCTP, DNS, SSH, TLS, STARTTLS, WebSocket et gRPC, plus l'expiration des certificats (
[CERTIFICATE_EXPIRATION] > 48h) et des noms de domaine. - Des endpoints externes : un service hors de portée pousse lui-même son état par l'API, et un heartbeat alerte si les mises à jour cessent.
- Une quarantaine de canaux d'alerte : Slack, PagerDuty, ntfy, Gotify, Matrix et d'autres, plus un fournisseur personnalisé pour toute API HTTP. Un contrôle de connectivité optionnel suspend les sondes quand Gatus perd lui-même le réseau.
- Des sorties vers le reste de l'outillage : métriques Prometheus, badges SVG d'uptime et de temps de réponse, API JSON pour lire statuts et historiques.
Configuration sans interface et résultats en mémoire par défaut
La version libre n'a aucun écran pour ajouter une sonde. La FAQ de gatus.io l'écrit : le projet open source n'a pas d'interface pour créer sa configuration. Tout passe par le YAML, ce qui convient à une équipe qui relit ses changements en merge request. Pour ajouter une sonde depuis un navigateur, Uptime Kuma s'administre par son interface web.
Les résultats sont gardés en mémoire par défaut. Ils ne survivent pas à un redémarrage, et le README prévient que, sans stockage sur fichier, recharger la configuration revient à redémarrer : chaque modification du YAML efface l'historique. storage.type accepte sqlite (un chemin de fichier) ou postgres (une URL de connexion). Même persisté, un endpoint garde par défaut ses 100 derniers résultats et 50 événements, plafonds réglables.
Les sondes lisent des réponses, pas des machines. Aucun placeholder ne mesure le processeur, la mémoire ou le disque d'un serveur. CheckCle couvre ce besoin avec un agent installé sur chaque serveur surveillé.
Le projet se définit contre l'alerte fondée sur les seules métriques. Le README se compare à Alertmanager de Prometheus, CloudWatch et Splunk : si un load balancer tombe, plus rien n'atteint les applications et aucun taux d'erreur ne monte. Gatus envoie ses propres requêtes. Son auteur le présente comme un tableau de bord orienté développeurs.
L'offre hébergée est payante, le code reste sous Apache 2.0. Gatus.io vend des pages de statut hébergées de 10 dollars par mois (une page, 30 endpoints, un intervalle minimal de 2 minutes) à 500 dollars, avec 7 jours d'essai gratuit. Sa FAQ avance deux raisons de payer : la version libre n'a pas d'interface de configuration, et une page auto-hébergée risque de tomber avec l'infrastructure qu'elle surveille. Elle promet aussi que Gatus restera open source.
Les versions s'espacent. La v5.37.0 date du 24 septembre 2026, et des commits arrivaient encore le 5 octobre. Quatorze versions étaient sorties en septembre et octobre 2025, contre quatre sur les neuf premiers mois de 2026. Les suites de requêtes enchaînées sont en alpha. Les releases GitHub ne fournissent aucun binaire : l'installation passe par l'image Docker, go install, le chart Helm ou un module Terraform.
