Grafana

Présentation du projet

Le projet Grafana est le projet sur lequel j’ai travaillé durant ma période de stage qui a duré six mois. Ce projet consistait à tester Grafana pour savoir si l’entreprise SLB pouvait remplacer son application web par Grafana. Grafana est un Framework permettant une visualisation moderne et efficace des données.

Les objectifs du projet

Les objectifs de ce projet étaient dans un premier temps de faire un comparatif entre les fonctionnalités présentes sur l’application web de Helios pour ensuite déterminer si Grafana pouvait intégrer les fonctionnalités principales de cette application. Ensuite je devais implémenter les fonctionnalités sur le Framework Grafana pour valider si ces fonctionnalités sont réalisables.

Le contexte du projet

Ce projet a vu le jour parce que l’application web actuelle du projet Helios devenait obsolète, avec des dépendances utilisées très anciennes mais aussi par un manque de compétences de l’équipe pour pouvoir réellement mettre à jour cette application. Grafana offrait alors une bonne opportunité car étant une application externe à SLB, la maintenance est beaucoup plus simple.

Les enjeux du projet

L’enjeu principal de ce projet était de remplacer une application ancienne au sein d'Helios. Mais il y avait également d’autres enjeux comme offrir une maintenance simple pour les développeurs de Helios afin de rajouter des fonctionnalités ou de résoudre des problèmes. Pour finir, un autre enjeu était d’offrir une interface visuelle pour les utilisateurs plus moderne et plus ergonomique.

Les risques du projet

Le risque principal de ce projet était lié au coût de la licence de Grafana. Un autre risque était lié aux possibilités offertes par Grafana : il était essentiel de vérifier si les fonctionnalités d'Helios pouvaient être implémentées dans Grafana. Il y avait aussi la complexité de développer des nouveaux plugins et de modifier des plugins déjà existants pour avoir seulement les plugins utiles pour nos utilisateurs.

La réalisation du projet

Pour réaliser le projet, dans un premier temps, j’ai comparé les fonctionnalités disponibles dans Grafana et celles que Helios nécessite en réalisant une étude comparative des deux applications. Pour donner suite à cela j’ai conclu que Grafana pouvait remplacer l’application web de Helios étant donné que les fonctionnalités déinies comme importantes dans Helios étaient présente dans Grafana. Il y avait des fonctionnalités non présentes dans Grafana mais elles ont été jugées non nécessaires dans une première version de Grafana.

J’ai ensuite commencé le développement des fonctionnalités pour permettre la communication entre la base de données de Helios vers Grafana. Pour cela côté Helios, j'ai apporté des modifications à notre API web présente, pour cela j'ai accordé le droit à Grafana de demander l'accès à Helios. Pour cela j'ai mis à jour les CORS(mécanisme de contrôle des domaines dans les API) de l'application en autorisant l'adresse de Grafana à demander des informations.

J’ai également réalisé des modifications sur les plugins existants comme l'affichage de données sous formes de graphique en barre qui n'était présent que pour une donnée. J'ai donc modifié ce plugin lui permettant d'afficher maintenant autant de données que souhaité par les futurs clients. Suite à cela, j'ai créé des nouveaux plugins pour être en accord avec la liste de fonctionnalités présentes sur l’application web de Helios comme le plugin permettant d'afficher des informations précise sur les données comme l'endoit d'ou elles proviennent.

Pour finir, j’ai travaillé sur le déploiement de Grafana, pour cela j’ai utilisé un conteneur docker pour déployer mon travail sur le terrain. Pour cette tâche j'ai effectué énormement de recherches n'étant pas familier avec ce système de déploiment. J'ai donc réalisé le fichier .yaml permettant de déployer les informations concernant les plugins modifiés et les nouveaux plugins ainsi que le logo de SLB à la place de celui de Grafana. Ensuite j'ai intégré l'installation de docker à Helios et j'ai également intégré une application logicielle permettant de lancer le serveur de Grafana plus simplement pour les utilisateurs. Ci-dessous une image de mes messages sur le forum de Grafana concernant mes différentes recherches et demandes au cours de ce projet.

Les acteurs du projet

J’ai majoritairement travaillé seul sur ce projet en autonomie tout en faisant partie de l’équipe Helios. J’avais donc une réunion tous les jours pour partager mon avancement sur le projet et également demander de l'aide si j’avais des problèmes. Ces réunions m’ont permis d'obtenir de l’aide de mes collègues sur différentes parties du développement de ce projet.

Le résultat du projet et son lendemain

Concernant le résultat pour le projet, personnellement j'ai fini le projet lors de ma fin de stage et j'ai effectué d'autre modification lors du début de mon alternance. Ce projet m'a permis de valider mon stage du sixième semestre au sein de l'ESIEA. Pour l'entreprise, cela leur a permis de se rendre compte de l'utilité de Grafana et des possibilités qu'offre ce framework dans une potentielle utilisation au sein de l'application Helios.

Pour le lendemain du projet, malheureusement il n'y en aura pas. Le projet a été annulé suite à une modification de la licence de Grafana qui est devenue payante. Suite à cela le projet a été mis de côté mais on peut imaginer que si le budget pour cela augmente ou si Grafana change de license dans le futur, on pourra partir sur cette base pour developper une application utilisant Grafana.

Mon regard sur le projet

Concernant mon apport sur ce projet, j'ai travaillé seul sur ce projet, donc j'ai eu un grand apport dans le développement de celui-ci, j'ai évidemment reçu de l'aide de mes collègues concernant les modifications à apporter sur Helios. Je pense avoir eu une valeur ajoutée importante car j'ai effectué énormement de recherches sur ce sujet et j'ai persévéré pour mettre en place ce projet.

Je retire de ce projet une grande expérience technique sur un nouveau sujet pour moi, c'était également ma première expérience en entreprise, et j'ai découvert comment fonctionnent les équipes en entreprise. D'un point de vue plus critique je pense que j'aurais dû demander de l'aide plus osuvent à mes collègues concernant certaines de mes tâches comme le deploiment docker, ils auraient pu me rediriger vers des personnes de l'entreprise ayant des connaissances sur ce sujet. Pour conclure, j'ai eu une très bonne équipe qui m'a aidé dès que j'ai demandé et qui m'a appris énormément en prenant du temps pour me permettre de progresser techniquement.