Skip to content

Watcher

Les watchers nouvelle génération sont une fonctionnalité du moteur axe permettant de surveiller et de répercuter les états d'alarmes ouvertes sur des entités surveillées.

Les watchers sont définis dans la collection MongoDB default_entities, et peuvent être ajoutés et modifiés avec l'API watcherng.

Des exemples pratiques d'utilisation des watchers sont disponibles dans la partie Exemples.

Concept d'un watcher

Un watcher, ancienne comme nouvelle génération, représente un groupe de surveillance.
C'est à dire que l'état d'une entité de type watcher dépendra de l'état des entités surveillées, et des alarmes ouvertes sur ces entités.

Le but d'un watcher est de donner une visibilité accrue et claire sur l'état d'un groupe d'entités, afin de détecter un changement d'état positif ou négatif sur les alarmes liées aux entités du groupe surveillé.

Définition d'un watcher

Un watcher est un document JSON contenant les paramètres suivants :

  • _id (optionnel): l'identifiant du watcher (généré automatiquement ou choisi par l'utilisateur).
  • name (requis) : Le nom du watcher, qui sera utilisé dans la météo de services.
  • entities (requis) : La liste des patterns permettant de filtrer les entités surveillées. Le format des patterns est le même que pour l'event-filter.
  • state (requis) : Un document contenant :
    • method (requis) : Le nom de la méthode de calcul de l'état du watcher en fonction des alarmes ouvertes sur les entités. Actuellement, seule la méthode worst est implémentée.
    • Les différents paramètres des méthodes ci-dessus.
  • output_template (requis) : Le template utilisé par le watcher pour déterminer la sortie de l'alarme.

Le schéma en base est proche, puisqu'il s'agit de ces paramètres, ajoutés à ceux déjà présents pour une entitié.

Méthodes

Actuellement, seule la méthode worst est implémentée. - worst : L'état du watcher est l'état de la pire alarme ouverte sur les entités surveillées.

Templates

L'output_template est une chaîne de caractère contenant, entre autres, un accès à un compte des alarmes selon leur état. Les comptes sont accessibles dans la variable {{.State}}, et les différents comptes d'états sont .Info, .Minor, .Major, et .Critical.
Un exemple de sortie avec un compte des alarmes dans l'état Minor serait donc : Alarmes mineures : {{.State.Minor}}.

Exemples

{
    "_id": "h4z25rzg6rt-64rge354-5re4g",
    "name": "Client Capensis",
    "entities": [{
        "infos": {
            "customer": {
                "value": "capensis"
            }
        }
    }, {
        "_id": {"regex_match": ".+/comp"}
    }],
    "state": {
        "method": "worst",
    },
    "output_template": "Alarmes critiques : {{.State.Critical}}"
}