blog.bressure.net

Application, Paramétrage

Tableau de bord Grafana pour surveiller la disponibilité

admin

Dans l’article précédent je mettais en place les sondes blackbox pour Prometheus afin de tester la disponibilité de mes applications. Ces sondes placées à des endroits stratégiques doivent permettent également de diagnostiquer l’emplacement du problème eventuel dans l’architecture.

Définition de la disponibilité

J’utilisais jusque-là d’une part sur mon smartphone l’application Nock Nock qui verifie que les services web repondent bien par un code HTTP 200. D’autre part le plugin Jetpack pour wordpress surveille également mes sites, peut-être en allant plus loin que de vérifier le code de retour HTTP. Pour le moment le moment je vais mettre un place un tableau de bord sur code 200.

capture d’écran de l’appli Nock Nock

La mise en œuvre du tableau de bord de disponibilité est directe. Il suffit de prendre la métrique issue du prober http placé dans le blackbox simulant un accès par internet.

probe_success{source="internet"} 

Pour le rendu, je prends la visualisation stat avec comme calcul la dernière valeur. En effet je veux l’information instantanée de disponibilité !

Taux de disponibilité

La valeur instantanée de la disponibilité ne permet pas de dire si en général l’application est disponible sur une certaine durée.

Je définis le taux de disponibilité comme le ratio entre les success de test d’accessibilité et le nombre de tests sur une période donnée. Autrement dit c’est le pourcentage de code HTTP 200. Ainsi pour avoir le taux de disponibilité sur la fenêtre courante de Grafana, il suffit d’utiliser le calcul moyenne (mean).

Le taux de disponibilité horaire se définit par le ratio de requête en code 200 sur la période remontant à 1h jusqu’à maintenant. En faisant ce calcul sur la plage de la fenêtre courante, on a alors l’évolution de la disponibilité horaire. Le calcul de la disponibilité horaire se fait par la formule:

avg_over_time(probe_success{source="internet"}[1h])

Tendance du taux de disponibilité

Le taux de disponibilité ne permet pas de dire si le service est en évolution favorable ou en dégradation ou encore en disponibilité constante. Pour cela il faut avoir la dérivé du taux de disponibilité. On doit utiliser la fonction dériv mais on ne peut pas faire de sous -requêtes c’est-à-dire englober l’expression vue plus haut dans la fonction de dérivée.

Heureusement qu’il y a un moyen de contourner cette limitation en créant une règle d’expression dans prometheus afin de définit ce qu’est un taux de disponibilité horaire.

record: serviceDispoHoraire expr: avg_over_time(probe_success{source="internet"}[1h])

Cette expression sera évaluée et enregistrée dans la base de données temporelles de prométheus comme les autres métriques. Elle sera utilisée telle quelle pour les graphiques de taux de disponibilité horaire et avec la fonction de deriv pour avoir la tendance d’évolution du taux.

Ainsi pour avoir la tendance instantanée, il suffit de prendre la dérivée sur les 5 dernière minutes afin d’avoir un estimation de l’évolution à court terme.

deriv(serviceDispoHoraire{source="internet"}[5m])

La visualisation sera de type calcul avec comme valeur la dernière valeur. Par ailleurs si on veut une tendance sur la période de la fenêtre de grafana, il faudra prendre le type de calcul moyenne.

Tableau de bord Grafana de surveillance des services HTTP
Tags:

Comments

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Back to top