Suivre le CI de plusieurs projects Gitlab dans un seul dashboard
J’étais prêt à écrire du code pour répondre à ce besoin qui est de pouvoir suivre les pipelines de nombreux projets sur un seul dashboard sans à devoir acquérir une licence PREMIUM gitlab.
Et je suis tombé dans la documentation de gitlab sur ce projet qui est opérationnel et ne demande à renseigner qu’une ou deux variables de configuration pour être testé.
Ce produit utilise simplement des requêtes sur l’API de gitlab pour remonter les métriques dans un serveur Prometheus et ensuite présenté dans des dashboards grafana:
- un premier présentant l’état des pipelines avec leur état (running, failed, canceled, manual, …)
- un second présentant la liste des jobs avec leur état (running, failed, canceled, manual, …)
- un dernier sur l’état des environnement de chaque projet.
Tous ces dashboards présentent les ID avec des liens directs vers votre serveur gitlab.
Mise en oeuvre du test
Si vous souhaitez tester rapidement ce projet sur votre serveur gitlab. Il suffit:
- de cloner le projet et de se rendre dans le dossier
examples/quickstart
- d’éditer le fichiers docker-compose.yml pour y renseigner l’url de votre serveur gitlab et les noms des projets
- d’éditer les fichiers grafana et remplacer
gitlab.com
par le FQDN de votre serveur. - de créer un PAT sur votre compte gitlab avec juste les droits read_api.
git clone https://github.com/mvisonneau/gitlab-ci-pipelines-exporter.git
cd examples/quickstart
vi gitlab-ci-pipelines-exporter.yml
Modifier les lignes suivantes :
gitlab:
url: https://gitlab.domain.local
token: votre PAT
project:
- name
Modifions avec un sed le FQDN qui sera utilisé dans le dashboard :
sed -i 's/gitlab\.com/gitlab\.domain\.local/g' grafana/dashboards/*.json
```bash
Une fois faites toutes ces modifications il suffit de lancer la stack docker-compose
```bash
docker-compose up -d
Vraiment simple à tester non ?
Pour l’installer tout est documenté dans le repository.