Il y a encore 3 ans, j’étais fan de prometheus, thanos et la bande des exporters. Pour les exporters cela reste toujours le cas mais pour la partie stockage, j’ai trouvé le BON remplaçant d’une stack qui pourtant fait et a bien fait ses preuves : VictoriaMetrics
Partons du contexte actuel
L’informatique est un domaine qui explose à vitesse fulgurante. Le web vient juste de prendre +25% de traffic par rapport à l’année précédente selon Cloudflare. Doit-on s’en réjouir ? pas trop pour l’avenir de l’humanité mais c’est ainsi parfois il faut accepté la fatalité pour tenter de la compenser.
D’un point de vue impact, +25% sur le traffic ne pose pas de problème direct (réseau…) et de la part direct de la consommation d’énergie. Non, c’est ce que cela déclenche en cascade derrière… les logs, les métriques… maintenant les traces…
Donc non, ce n’est pas sans impact contrairement à ce que l’on peut se dire en première lecture. Ajoutons à cela que ce traffic représente qu’une activité support à l’industrie de la sur-consommation, bien le signale devrait être presque alarmant.
Bref peu importe, on a fait nos choix de société comme dirait l’autre.
Maintenant zoomons
La tendance actuelle est à l’observabilité. Personnellement j’adore cela mais là encore il faut quand même se poser 2 secondes.
Il faut du monitoring c’est clair, des logs aussi… et à nuancer en fonction du besoin.
Des traces, ah là déjà, à l’échelle globale des entreprises (petites, moyennes et grandes) cela est déjà à nuancer beaucoup plus. Pour certaines oui, pour d’autres c’est complètement overkill et c’est cela pour beaucoup beaucoup d’entreprises malgré tout.
Finalement, c’est le rôle premier de l’Ingénieur de savoir mettre ce qu’il faut là où il faut (pas plus pas moins).
On pourrait même se dire que pousser à al production en masse de ces métriques, logs et traces ne sert-il pas les producteurs de SaaS. Car les gros volumes posent plus de difficultés à manager.
Donc dans ce contexte, il faut une technologie qui soit disruptive comme on dit… c’est à dire qui révolutionne sont domaine d’une manière ou d’une autre.
Et c’est un peu le cas de Victoria Metrics !!!
VictoriaMetrics, l’ovni dans l’écosystème des métriques
Alors en guise d’exemple, je pourrais vous citer plein de chiffres que j’ai pu découvrir à droite et à gauche (7 fois moins de ram que prometheus, 10 fois moins de stockage que influxdb…). Mais il suffit de regarder les profils des entreprises utilisatrices pour bien comprendre que la performance n’est pas un problème et même totalement sont point fort.
A titre perso, il suffit simplement de me dire que victoriametrics s’est inspiré de l’architecture de clickhouse pour se spécialiser encore plus dans la métrique et je suis convaincu direct. J’ai pratiqué clickhouse mais regardez ce tableau et vous comprendrez que l’on est là aussi sur un ovni.
Alors la perf c’est bien mais souvent ça fini en truc pas facile à manager et maintenir pour de petites entreprises ou des boites moins tech, ne disposant pas des compétences (en nombre, en finance, en connaissances…).
Ben c’est là où c’est finalement encore plus magique.
VictoriaMetrics dispose de 2 modes :
- le single binaire avec un all in one qui permet à la fois de lire, écrire et stocker sans réfléchir et avec des performances déjà assez folles pour de très très nombreuses entreprises (l’idée est de vous dissuader de passer au mode extrème pour rien).
- le mode cluster… en microservices. Un binaire pour chaque fonction : lecture, écriture, stockage etc… Ce mode permet en plus de la haute disponibilité avec des performances de dingos.
Attention edit : à nuancer il ne permet pas une haute dispo complète. VictoriaMetrics ne permet pas la perte d’un serveur ou des disks. Il faut avoir accès à du stockage distribué pour le moment ou mettre en place les backups pour accepter une restauration (une perte de données sera certainement possible).
… à côté ils ont aussi un mode SaaS managé si vous le souhaitez.
Et permettre ces choix est fondamental je trouve.
Donc vous l’avez compris, pour moi, VictoriaMetrics permet de mitiger les problèmes cités en début d’article.
Et VictoriaMetrics relève des défis jamais creusés
Premier défi c’est l’interropérabilité comme certaines personnes. A savoir, la possibilité de prendre différents formats en entrée comme :
- openmetrics
- influxdb
- graphite
- http
- csv
- …
Second défi, les grandes cardinalités, vous savez le multiplicateur qui fait que l’on peut éclater un prometheus sans forcer. A savoir les différentes combinaisons des labels et nom des métriques qui augmentent considérablement le nombre de données à brasser pour obtenir des résultats et les stocker facilement :
<métrique> x <label1> x <label2> x <label3> x … x <labeln>
A ce jeu c’est de loin le plus fort encore une fois.
Conclusion
Voici donc pour la présentation. Vous pouvez le retrouver sur la chaine Xavki ou sur cette page en mode tutoriels. Et la bonne news finale c’est aussi que victoriametrics travaille sur VictoriaLogs boom !!!