Enchainement des moteurs

Python

L'enchainement des moteurs Python de Canopsis se configure dans le fichier /opt/canopsis/etc/amqp2engines.conf.

De façon générique sur une stack Python, on aura :

[engine:nom_du_moteur]
event_processing = canopsis.[nom_du_moteur].process.event_processing
beat_processing = canopsis.[nom_du_moteur].process.beat_processing
next = [moteur_suivant],[moteur_suivant2]

Dans le fichier amqp2engines.conf il y a event.processing et beat.processing : le premier permet de lire les évènements, le second permet de configurer leur traitement périodique.

Go

L'enchainement des moteurs Go de Canopsis se configure à leur lancement via l'option -publishQueue.

Dans le cadre d'un déploiement d'une stack Go, il faut modifier l'option du engine-che qui, par défaut, publie dans Engine_event_filter.

À la place, il faut le faire publier dans la file du moteur Axe.

Paquets

Pour une installation Paquets, exécuter les commandes suivantes :

Créer du fichier de configuration de l'Engine Che

mkdir -p /etc/systemd/system/canopsis-engine-go@engine-che.service.d/
echo "[Service]" > /etc/systemd/system/canopsis-engine-go@engine-che.service.d/override.conf
echo "ExecStart=" >> /etc/systemd/system/canopsis-engine-go@engine-che.service.d/override.conf
echo "ExecStart=/usr/bin/env /opt/canopsis/bin/%i -publishQueue Engine_axe" >> /etc/systemd/system/canopsis-engine-go@engine-che.service.d/override.conf

Recharger systemd pour prendre en compte la modification.

systemctl daemon-reload

Terminer en redémarrant le moteur.

systemctl restart canopsis-engine-go@engine-che

Et vérifier son nouveau statut :

systemctl status canopsis-engine-go@engine-che

Docker

Pour une installation Docker, modifier le service che du docker-compose :

  che:
    image: canopsis/engine-che:${CANOPSIS_IMAGE_TAG}
    env_file:
      - compose.env
    restart: unless-stopped
    command: /engine-che -d

Ajouter la commande -publishQueue Engine_axe :

  che:
    image: canopsis/engine-che:${CANOPSIS_IMAGE_TAG}
    env_file:
      - compose.env
    restart: unless-stopped
    command: /engine-che -d -publishQueue Engine_axe

Redémarrer le moteur Che pour lui faire prendre en compte la modification.

docker-compose up -d che

Interactions avec les bases de données

Tous les moteurs peuvent communiquer avec MongoDB.

Seul stat communique avec InfluxDB.

Seuls action, axe et heartbeat communiquent communiquent avec Redis.

Représentation

Lorsqu'un évènement entre dans le processus de traitement, il passe par la première vague de moteurs qui vont traiter et renvoyer l'information vers une seconde série de moteurs et ainsi de suite.

Le schéma suivant représente un exemple de configuration d'enchaînement de moteurs dans Canopsis.

schema_moteurs

Le détail du rôle des différents moteurs est dans la liste des moteurs.