La Lanterne Rouge

Warning: Geek Inside

Redis-awk-monitor : monitoring léger en temps-réel de Redis

- Posted in Sans catégorie by

Redis-awk-monitor : monitoring léger en temps-réel de Redis

Pour résoudre des problèmes de liés au cache sur une certaine plateforme e-commerce de ma connaissance, j'ai voulu avoir un affichage en temps réel des opérations traitées par Redis, sous une forme plus digeste que celle fournie en standard par la commande

$ redis-cli [-h host] [-p port] monitor

qui recrache purement et simplement sur STDOUT les commandes traitées par le serveur au fur et à mesure qu'elles arrivent.

Je me suis d'abord dit que ça serait intéressant d'utiliser le flux de cette commande comme source et de générer pour commencer un compteur des opérations : pour chaque commande envoyée à Redis, on incrémente le compteur associé puis on affiche le statut des compteurs.

Ayant déjà touché un peut à awk il y a quelques temps, je me suis dit que ça serait le candidat idéal pour réaliser ce petit script. Et effectivement, il m'a fallu une petite heure pour avoir un résultat satisfaisant.

Puis ensuite une fois cette partie implémentée et fonctionnelle, je me suis dit que cela serait pas mal aussi d'avoir des compteurs aussi par tuple opération/clé, car pour mes analyses cela représente aussi des informations intéressantes.

Rien de plus simple, et toujours avec awk.

Une fois tout ça terminé, j'ai paufiné deux-trois détails pour rendre le tout utilisable et relativement propre : je limite notamment la hauteur des lignes affichées en fonction de la hauteur du terminal disponible.

Le résultat est disponible sur mon Github avec les instructions d'utilisation, librement utilisable et forkable. Ci-dessous un aperçu de l'éxécution dans un terminal.

Une remarque tout de même : la commande redis-cli monitor n'est pas sans incidence sur les performances du serveur de cache, donc à garder à l'esprit lors de son utilisation.

Redis-awk-monitor : monitoring léger en temps-réel de Redis