Skip to content

📡 Intégration Uptime Kuma ​

Ouvrez automatiquement un Incident de service dans Microscope dès que Uptime Kuma détecte qu'un service surveillé est hors ligne, grâce à une notification Webhook authentifiée par une clé d'API Microscope.

Principe de fonctionnement ​

Lorsqu'une sonde tombe en panne, Uptime Kuma envoie une requête HTTP POST à l'endpoint d'incidents de Microscope avec un corps JSON personnalisé. Microscope authentifie l'appel à l'aide d'une clé d'API (transmise dans un en-tête), en déduit le tenant de l'appelant, puis crée un nouvel incident de service rattaché au workload référencé.

Uptime Kuma  ──POST /api/v1/tech/incidents (X-API-KEY)──▶  API Microscope  ──▶  Incident de service

Prérequis ​

  • Une clĂ© d'API Microscope provisionnĂ©e pour votre tenant (demandez Ă  votre administrateur). La clĂ© porte le tenant et le rĂ´le utilisĂ©s pour autoriser l'appel.
  • L'identifiant du Workload auquel rattacher l'incident (copiez-le depuis la page du workload).
  • L'URL de base de l'API Microscope, par ex. https://votre-hote-microscope.

1. Créer la notification Webhook dans Uptime Kuma ​

Dans Uptime Kuma, allez dans Paramètres → Notifications → Configurer une notification et choisissez Webhook.

ChampValeur
Type de notificationWebhook
Post URLhttps://votre-hote-microscope/api/v1/tech/incidents
Corps de la requĂŞteCustom Body

Corps personnalisé (Custom Body) ​

Collez le JSON suivant comme corps personnalisé. Il utilise le moteur de templates Liquid, qu'Uptime Kuma interprète avant l'envoi :

json
{
  "workloadId": "ef112e43-bc11-45c5-8c20-2515571fec39",
  "label": "{{ name }} availability incident",
  "incidentSeverity": 1
}
  • workloadId — le workload Microscope auquel l'incident est rattachĂ©. Remplacez par votre propre identifiant.
  • label — {{ name }} est la variable Liquid correspondant au nom de la sonde ; une sonde nommĂ©e Web application produit donc le libellĂ© Web application availability incident.
  • incidentSeverity — la sĂ©vĂ©ritĂ© de l'incident (voir le tableau ci-dessous).

💡 Le champ startDate est optionnel. Si vous l'omettez (comme ci-dessus), Microscope le renseigne avec l'heure de réception du webhook. Pour utiliser l'heure de détection exacte d'Uptime Kuma, ajoutez : "startDate": "{{ heartbeatJSON.time | replace: ' ', 'T' | append: 'Z' }}". Notez que heartbeatJSON n'est disponible que sur les vrais événements UP/DOWN, pas via le bouton Test.

Valeurs de sévérité ​

ValeurSévérité
0Faible
1Moyenne
2Élevée
3Critique

En-têtes additionnels (Additional Headers) ​

Uptime Kuma ne dispose pas de champ dédié à la clé d'API : la clé — ainsi que le type de contenu — sont donc transmis via les Additional Headers :

json
{
  "X-API-KEY": "dev-sample-key-002",
  "Content-Type": "application/json"
}
  • X-API-KEY — votre clĂ© d'API Microscope. Microscope la lit dans cet en-tĂŞte, identifie le tenant et autorise la requĂŞte.
  • Content-Type: application/json — obligatoire. L'endpoint n'accepte que du JSON ; sans cet en-tĂŞte, la requĂŞte est rejetĂ©e avec une erreur HTTP 415 (Unsupported Media Type).

2. Associer la notification à vos sondes ​

Créer la notification ne suffit pas. Ouvrez chaque sonde à surveiller et, dans la section Notifications, activez la notification Webhook.

⚠️ Le bouton Test fonctionne sans cette étape, mais les vrais événements « hors ligne » ne déclenchent le webhook que pour les sondes où la notification est activée.

Dépannage ​

SymptĂ´meCause / Solution
HTTP 415L'en-tĂŞte Content-Type: application/json est absent des Additional Headers.
HTTP 401La clé X-API-KEY est absente ou invalide.
HTTP 403Le rôle de la clé n'est pas autorisé à créer des incidents.
Le Test crée un incident dont le libellé est Monitor Name not available …Comportement normal — lors d'un Test il n'y a pas de sonde, donc {{ name }} renvoie une valeur par défaut. Les vrais événements utilisent le nom réel de la sonde.
La sonde est hors ligne mais aucun incident n'est crééLa notification n'est pas activée sur la sonde, ou son compteur de tentatives (Retries) n'est pas encore épuisé. Vérifiez les réglages Notifications et Retries de la sonde.

ℹ️ Chaque événement « hors ligne » crée un nouvel incident ; Uptime Kuma ne déduplique pas. Si un service reste hors ligne sur plusieurs battements, vous pouvez recevoir plusieurs incidents.

Made from Lyon - France with ❤️