API healthcheck¶
L'API healthcheck permet d'obtenir l'état de fonctionnement de Canopsis ; par exemple elle permet de savoir si les services nécessaires sont disponibles.
Récupérer l'état global¶
GET /api/v2/healthcheck/
Renvoie un résumé de l'état.
{ "amqp": "", "cache": "", "database": "", "engines": "", "time_series": "", "timestamp": 1542795713, "overall": true }
Le bon fonctionnement général est annoncé par la clef overall qui doit être à true.
Récupérer l'état des services¶
GET /api/v2/healthcheck/?criticals=amqp,cache,database,engines,time_series
Renvoie un résumé de l'état.
{ "amqp": "", "cache": "", "database": "", "engines": "", "time_series": "", "timestamp": 1541774674, "overall": true }
Description du résumé¶
La réponse contient les champs suivants : amqp, cache, database, engines, timeseries : un message d'erreur associé à chacque service ; rien s'il n'y a pas d'erreur détectée ; timestamp : le moment de création du résultat ; * overall : un booléen pour savoir si l'état global est bon ou mauvais.
Concernant overall
, par défaut, tous les services sont pris en compte pour calculer l'état global. Il est toutefois possible de sélectionner les services à considérer comme indispensable en utilisant le paramètre criticals
dans l'url GET.
criticals
est une liste de services séparés par des virgules.
Ce qui est vérifié¶
- amqp : la connection est ouverte, le channel aussi, et il est possible de publier un message. On vérifie aussi qu'une liste de queues existe bien, qu'il y a au moins un Consumer dessus, et que la queue est active et non saturée (> 100 000 messages en attente) ;
- cache: la connection est fonctionnelle et il est possible de faire un ECHO ;
- database: la connection fonctionne et il est possible de lire dans une liste de collections ;
- engines : hors docker, vérifie par systemctl que les engines de bases (python) sont "running" ;
- time series : vérifie que la database existe et que l'on peut lire des measurements.