Aller au contenu

Moteur engine-heartbeat (Go, Core)

Le moteur engine-heartbeat permet de créer des alarmes, si des événements suivant un motif donné n'ont pas été rencontrés depuis un intervalle donné.

Les heartbeats sont définis dans la collection MongoDB heartbeat, et peuvent être ajoutés et modifiés avec l'API Heartbeat.

Utilisation

Options du moteur

La commande engine-heartbeat -help liste toutes les options acceptées par le moteur.

Fonctionnement

Un heartbeat est une règle qui définit un modèle d'événement entrant et un intervalle de temps.

Passé cet intervalle de temps, si le moteur n'a pas traité d'événements correspondant au modèle donné, il lèvera automatiquement une alarme.

L'alarme levée reste en cours jusqu'à l'arrivée d'un nouvel événement correspondant au modèle donné.

Modèles d'évènements (patterns)

Les modèles d'évènements acceptés (ou patterns) sont une version simplifiée de ceux utilisés pour l'event-filter.

Les valeurs acceptées sont uniquement de type string et la seule condition acceptée est de type equal (pas d'expression régulière, de not equal, etc.).

Intervalles

Les intervalles de temps peuvent être définis en minutes (m) ou en heures (h).

Alarmes

L'événement généré pour créer une alarme prend la forme suivante :

{
    "resource": "connector:heartbeat_test_1.connector_name:heartbeat_test_1_name",
    "event_type": "check",
    "component": "heartbeats",
    "connector": "heartbeat",
    "source_type": "resource",
    "state": 3,
    "connector_name": "heartbeat"
}

Seul le champ resource peut varier. Il est la concaténation des patterns de règles appliqués.

Ici : "connector" : "heartbeat_test_1" et "connector_name" : "heartbeat_test_1_name".

Collection MongoDB associée

Les heartbeats sont stockés dans la collection MongoDB heartbeat (voir API Heartbeat pour la création des heartbeats).

Un exemple de heartbeat pour générer une alarme si aucun événement avec le connecteur heartbeat_test_1 et le nom de connecteur heartbeat_test_1_name n'ont été traités depuis plus d'une minute.

{
    "_id" : "a9807256ef7e2a138a1caa204accc792",
    "pattern" : {
        "connector" : "heartbeat_test_1",
        "connector_name" : "heartbeat_test_1_name"
    },
    "expected_interval" : "1m"
}

Dernière mise à jour: 2020-09-30