RRDtool et ses graphiques sont dans un bateau...

RRDtool et ses graphiques sont dans un bateau...

RRDtool fait partie de cette catégorie de logiciels que je qualifie d'éléments du décor : il est vieux, moche, bourré de contraintes et pourtant, on le trouve partout! Encore une de ces contradictions qui nous rappelle que c'est dans les vieux pots qu'on fait les meilleures soupes ?

Pas tout à fait...

État des lieux

Il est vrai que les graphiques générés par RRDtool sont quelque peu dépassés :

  • Design poussiéreux ;
  • Utilisation d'images ;
  • Pas d’interaction possible.
/media/uploads/avgtraffic_global_AVERAGE_year.png

Au chapitre des contraintes, certaines sont plutôt gênantes :

  • L'impossibilité d'enregistrer des points dans le passé (dont la date est inférieure à la dernière renseignée) ;
  • La difficulté de modifier un fichier après sa création (par exemple pour y ajouter une nouvelle source de données).

Cependant, il est un terrain sur lequel RRDtool reste très bon (voire le meilleur ?) : le stockage. Le format de fichier utilisé présente quelques avantages non négligeables :

  • Lecture rapide ;
  • Taille fixe et connue dès la création ;
  • Indépendant.

Les écritures restent coûteuses mais l'utilisation de rrdcached permet un gain de performance significatif. Les optimisations possibles côté système sont de plus suffisamment nombreuses pour gommer ce point négatif.

Les créations de fichier quant à elles sont et resteront un gouffre. Heureusement pour nous, elles sont rares comparées aux autres opérations et il est toujours possible d'utiliser la technique du modèle (créer un fichier et le copier par la suite) pour sortir un peu la tête de l'eau.

Pourquoi est-il encore utilisé ?

De mon point de vue, il y a deux raisons principales à cela.

La première est historique. RRDtool est utilisé depuis plus de 10 ans et son niveau de déploiement est en conséquence gigantesque. Quand on connaît le coût et les difficultés inhérentes à une migration, on ne comprend que mieux sa longévité.

La deuxième, plus pertinente, est qu'il fait tout simplement le boulot qu'on lui demande et qu'il le fait bien! Mettons de côté ses contraintes d'utilisation, utiliser RRDtool pour consolider des statistiques dans n'importe quel projet est aussi rapide qu'un claquement de doigts. Sa mise en place et rapide et beaucoup de langages de programmation disposent d'une librairie de manipulation.

Autant dire qu'il va faire partie des meubles pendant quelques années encore.

Tout ça pour en arriver là ?!

Si vous êtes toujours sur cette page (merci au passage), vous devez normalement vous demander pourquoi je parle de tout cela. A mes heures perdues, je développe une solution d'hébergement de messagerie qui fournit quelques statistiques graphiques. Comme vous l'aurez sans doute deviné, j'utilise RRDtool.

Nous sommes en 2014, le client léger a beaucoup évolué et des outils comme d3.js ont vu le jour dans le but de faciliter la représentation dynamique des données.

Soucieux du rendu visuel et de l'ergonomie de mon modeste projet, je suis convaincu qu'il est possible de trouver un juste milieu entre se traîner un boulet au pied jusqu'à la fin des temps et un changement complet de technologie (rrdcapuecmochecvieuxetcpasdujava, kikoolol).

Il y a certes des alternatives sérieuses qui existent déjà (je pense notamment à Graphite) mais je les écarte volontairement car je n'ai ni le temps ni l'envie d'étudier cette voie.

Dans un prochain article, je présenterai le résultat des expérimentations que je mène actuellement pour répondre à cette problématique. J'espère vous y retrouver ;)

0 commentaires

Aucun commentaire!

Postez votre commentaire