Aller au contenu principal

Dashboard de pipelines Gitlab CI/CD

· 2 minutes de lecture
Stéphane ROBERT
Consultant DevOps

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 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 opérationnel.

Ce produit utilise simplement des requêtes sur l'API de gitlab pour remonter les métriques dans un serveur Prometheus. Ces données sont ensuite présentées 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 environnements de chaque projet.

Ces trois dashboards présentent les ID avec des liens directs vers le serveur gitlab.

Mise en oeuvre

Si vous souhaitez utiliser rapidement ce projet sur votre serveur gitlab.

Il suffit :

  • De cloner le projet et de se rendre dans le dossier examples/quickstart
  • De créer un PAT sur votre compte gitlab avec juste les droits read_api.
  • D'éditer le fichier gitlab-ci-pipelines-exporter.yml et d'y mettre l'url de votre serveur gitlab, le token et les projets que vous voulez monitorer
git clone https://github.com/mvisonneau/gitlab-ci-pipelines-exporter.git
cd examples/quickstart
vi gitlab-ci-pipelines-exporter.yml

Modifier les lignes suivantes :

---
log:
  level: debug

gitlab:
  url: https://gitlab.com
  token: <votre PAT>

# Pull jobs related metrics on all projects
project_defaults:
  pull:
    pipeline:
      jobs:
        enabled: true
projects:
  - name: projet1
  - name: projet2

Une fois faites toutes ces modifications, il suffit de lancer la stack docker-compose :

docker-compose up -d

Vraiment simple à tester non!

Pour l'installer définitivement, tout est documenté dans le repository.

Source