Affichage des articles dont le libellé est Grafana. Afficher tous les articles
Affichage des articles dont le libellé est Grafana. Afficher tous les articles

lundi 28 septembre 2020

Connaissez-vous la stack, la pile logicielle, Grafana, Prometheus, Loki, Jaeger, Cortex, and Graphite ?

Alors voilà un sujet des plus complexes que l'on va démystifier pour tenter de vous, de nous expliquer ce qu'est cette stack logicielle ; Grafana, Prometheus, Loki, Jaeger, Cortex, and Graphite. Alors si l'on connait Grafana et Prometheus mais que sont les autres ? Oui en même temps vous allez me dire que l'on ne connait pas si bien Prometheus.

Pour être franc, celui que l'on connait c'est Grafana. Alors allons y, c'est quoi Prometheus ? Au premier abord on dirait Grafana ... Ce que l'on sait, c'est que Grafana est un fork de Kibana. Kibana est une extension d'affichage pour les données issues de la Suite Elastic search.


Kibana extension de elastic search

Mais alors quand je vois la stack sur la première page de Prometheus :


Stack Prometheus Includes

Je sais pas vous mais moi, je ne me sens pas très bien, un peu envie de vomir ... D'autant que l'on ne retrouve pas, ni Loki, ni Jaeger, ni Cortex, ni Graphite. 

Ce que je peux vous dire, au niveau fonctionnalités c'est que l'on est dans l'univers des connecteurs de données et de leurs afficheurs de données sous forme de graphes.

Ce qui me surprend tout de même c'est que le slogan de Prometheus est un peu identique à celui de Grafana à savoir : Power your metrics and alerting with a leading open-source monitoring solution.

Leading Open Source Monitoring Solution ... Donc Prometheus est une source de données pour Grafana.

Prometheus source de données pour Grafana

Mais on pourrait dire Grafana extension de visualisation des données pour Prometheus.

Poursuivons notre recherche sur cette stack ... avec Jaeger


Monitor and troubleshoot transactions in complex distributed systems

Jaeger permet d'instrumenter votre application. Quant à Loki on dirait d'après le sigle est absorbé par Grafana.

Grafana Labs - Jaeger data source
Grafana nous explique comment ajouter Jaeger comme "data source" afin de pouvoir requêter dans les traces de votre application.

Cortex est absorbé !

Graphite : Grafana vs Graphite

Grafana vs Graphite

Conclusion

Dans cet univers des connecteurs aux données et des afficheurs graphiques pour afficher de beaux tableaux de bord, Grafana se paye la part du lion et le luxe de faire croire qu'il intègre tout le monde alors qu'il est plutôt en train de les absorber en commençant par les connecteurs dont il multiplie le nombre quasiment à l'infini. Et les afficheurs graphiques qu'il supprime en les absorbant.

dimanche 30 août 2020

Comment s'y retrouver dans le code de Grafana

Sans parler de devenir un développeur de la communauté Open Sources Grafana, non je souhaite simplement faire une plongée dans le code source pour avoir une meilleure vue cette plateforme et de son développement.

Communauté Open Source Grafana sur GitHub


Moi la première chose que j'ai découverte avec stupéfaction c'est que Grafana est écris en langage Go !  Je l'avoue je suis en admiration devant cette communauté. Car je suis un utilisateur de AdSense et de tous ces graphiques parce que je suis un développeur curieux j'ai toujours poursuivis un projet de "dahboard" afficher de superbes graphiques à partir des données.

Matlab est sans doute le premier outil avec lequel j'ai joué pour afficher des graphiques. Mais avec Grafana on atteint un sommet mais alors qu'elle est l'organisation, la structure des codes source de cette application.

Sinon, il y a bien sûr Excel qu'il ne faut pas dénigrer car il est fort efficace pour tout tas de graphiques c'est une première approche un peu simpliste mais fun pour découvrir ce métier que j'appelle data-analyste.

En même temps c'est bine joli l'open source et Grafana en est un exemple parfait les sources sont publiques certes ! Mais alors pour installer une plateforme ... accrochez vous ! Il faut clairement être spécialiste pour installer un container Docker dans Windows 10 oui c'est l'OS que j'affectionne, bref, ils vous propose moyennant finances de vous instancier une plateforme dans leur cloud.

Si vous installez la plateforme de base, certes vous pourrez faire des choses mais les plugins seront payants. Voilà le tour est joué vous êtes ficelé. 

Grafana Create an account

Vous voyez que vous ne pourrez faire un essai gratuit mais que vous êtes obligé d'entrer vos informations de facturation car l'objectif est de vous facturer l'utilisation de cet outil fantastique.

Mais qui a dit que l'opensource c'est gratuit, certainement pas moi. Et quand je vois le travaille produit par la communauté, je me dis qu'ils font bien de procéder ainsi.

Les différents types de codes

Grâce à Github, je vois :

Grafana - TS 57 % - JS 5,4 % - Go 26 % 

La constatation que Grafana est en Go !

En langage Go

C'est le répertoire pkg

Grafana - Langage Go

Il y a du monde et de très bonnes explications dans le fichier README.md. Il s'agit du Backend de Grafana. 

Et bien oui c'est l'avantage de l'opensource on sait comment c'est fait. Il faut que la documentation soit suffisante pour qu'un développeur par lui même puisse étudier le code et venir renforce l'équipe. Donc la documentation est de qualité.

En langage TypeScript

C'est la publique app autrement dit l'application front en Angular.

Grafana - Langage TypeScript applcation Angular

Ce sont les deux principaux langages des fonctionnalités de Grafana. A partir de là il y a tout ce qu'il faut comme documentation d'installation pour installer une machine de développement et rejoindre la communauté. Ils sont déjà plus de 1200 !

Ils font même de la politique, oui il y a un document indiquant comment doit se passer l'intégration d'une nouvelle ressource dans la team et les votes associés dans un document de GOVERNANCE.md (Gouvernance).

Set up your development environment

Avec un répertoire devenv : une aide à l'installation de votre environnement de développement qui commence par l'installation de Docker

Des scripts d'installation.

Grafana en action

Voici les métrics autour de Grafana, Wikimedia metrics :

Grafana Wikimedia Metrics

Voilà, Grafana est un très bon exemple à suivre en matière de communauté open source, ils sont en plein succès alors il faut les observer puisque les publications sont nombreuses et tenter de les suivre mais là aussi ils sont nombreux.

lundi 24 août 2020

C'est quoi Grafana ?

C'est incroyable le nombre d'outils dans le Développement Logiciel et le DevOps ! On parle alors de stack quand les uns s'appuient sur les autres, comme dans un empilement. Ici je découvre la stack Grafana, Jenkins, Kubernets, Cosmos. A quoi sert Grafana et qu'elle est la place de Grafana dans tout ça ?

Grafana Labs - Dashboard anything. Observe everything.

Grafana est une communauté de développeurs énorme, aujourd'hui il y a 1 213 contributeurs.

Grafana on Github
Grafana on Github

J'installe rapidement sur mon Windows l'exécutable serveur et je lance mon browser à l'adresse localhost:3000 ça marche tout seul.

Gafana - Install on Windows

Mais Grafana n'est pas tout seul c'est un éco-système qui intègre par exemple Graphite :

Utilisation de "Graphite" dans Grafana

Voici comme Grafana s'intègre dans l'Azure de Microsoft pour la création de Pipeline :

Microsoft - Pipeline CI/CD pour les charges de travail basées sur les conteneurs

Place de Grafana dans la Stack d'outils DevOps
Place de Grafana dans la Stack d'outils DevOps

Dans le cadre de cette Architecture DevOps, Grafana permet de visualiser les alertes et de mieux comprendre les mesures.

On y voit à l'oeuvre la stack : Visual Studio Code, GitHub, Jenkins, Kubernetes, Azure, Azure Monitor, Grafana. Moi je pourrais dire à peu prêt à quoi servent toutes ses briques mais vous avouerez que ça fait une belle pile !


Je poursuis ma découverte par les fundamentals de Grafana. L'angle de l'architecture devops que j'ai choisi pour la découverte de Grafana n'est pas le plus facile mais on a là la meilleure utilisation de Grafana intégré dans une stack DevOps :

Grafana fundatmentals

Pour les prérequis, il me faut Docker, Docker Compose et Git, rien de moins ...
Pour Docker, il faut Hyper-V.

Install de Hyper-V pour Windows

En cliquant sur "Add features".

The processor does not have required virtualization capabilities

Bref, pour moi ça va s'arrêter là ! Bon je trouve une VM avec Hyper-V capabilities, je lance l'installe de Docker ...


Stack Grafana - C'est pas gagné !

Bon, bas pour moi, malheureusement ça s'arrête là ... Grafana !

Autres outils du même genre ... c'est incroyable de voir l'émergence de tant d'outils. Si je trouve un article sur Grafana on va me parler de :

Prometheus

Kibana

Grafana Open Source

Si c'est OpenSource, alors il doit y avoir des sources sans doute sous github, voici donc :

GitHub - Grafana Labs

Là on est dans l'antre de la communauté Grafana ...

Grafana Create Free Cloud Account

Et on peut aller créer ses propres tableaux de bord en créant un compte au sein de Grafana Cloud :

Création d'un Tableau de Bord avec Grafana
Création d'un Tableau de Bord avec Grafana

C'est magnifique cette application écrite en langage Go et Angular.

Un mot de l'équipe Grafana, toujours sur GitHub :

Grafana - Team Members

Le créateur c'est Torkel Ödegaard qui à démarré Grafana en 2014 en partant de Kibana et en faisant un "fork" (une branche depuis le code source).

Mais bon ça ressemble à notre solution qui est toute fois beaucoup plus simple ... et la notre est en C# .NET avec ASP.NET Core Framework, c'est un peu mieux que du Go !

GitHub - DataMonitoring - Universal Dashboard

CQFD !