Skip to content

Moteur watcher

Il faudrait déplacer le traitement des watchers (actuellement effectué dans axe) dans un nouveau moteur engine-watcher. Ce moteur devra être placé en entre axe et action.

axe

La valeur par défaut du flag -publishQueue d'axe doit être remplacée par Engine_watcher (au lieu d'Engine_action).

Les appels au service watcher (et son initialisation) doivent être supprimés et déplacés dans axe.

watcher

Le moteur doit accepter ces options (à définir dans cmd/engine-watcher/main.go et cmd/engine-watcher/dependencies.go, en s'inspirant de cmd/engine-axe) :

  -d	debug
  -printEventOnError
    	Print event on processing error
  -publishQueue string
    	Publish event to this queue. (default "Engine_action")
  -version
    	version infos

A priori l'interface du service watcher n'a pas besoin d'être modifiée. Lors de la réception d'un événement, il y a deux cas à gérer :

  • event.Entity, event.Alarm et event.AlarmChange sont définis : il faut appeler Process(event, event.AlarmChange)
  • event.BulkAlarmsWithEntity est défini et event.BulkType vaut types.AlarmChangeTypeResolve : il faut appeler ProcessResolvedAlarms(event.BulkAlarmsWithEntity).

Les autres événements sont ignorés.

Le beat doit reprendre les appels au service watcher qui étaient effectués dans axe.