Grafana - Outer Heaven

Grafana

Nous utilisons Grafana outil de visualisation et d’analyse de données qui permet de créer et personnaliser des tableaux de bord en temps réel.

Déploiement

Notre solution est déployée dans un container docker via compose.

Section services :

  graphana:
    image: grafana/grafana
    ports:
      - 3000:3000
    volumes:
      - ./grafana:/var/lib/grafana

L’entièreté des données du logicielle est persistée dans un volume, afin de ne pas perdre les sources de données et les dashboards en cas de redémarrage du container.

Data sources

L’ajout et la configuration de sources de données se trouve dans Configuration > data sources.

Il faut ensuite sélectionner le type de source en question, dans notre cas Prometheus. La seule information que nous avons à remplir dans notre cas est l’URL de la source, ici:

http://prometheus.monitor:9090

L’utilisation du nom de domaine et non de l’ip tiens du fait que les containers de Prometheus et Grafana se trouvent dans le même réseau docker, et ont donc besoin de leur hostname (défini pour chaque service dans le docker compose) pour communiquer facilement.

Dashboards

Le plus simple à la création d’un dashboard est d’en importer un préconçu par la communauté pour afficher les métrics de l’exporteur visé.

Les dashboards officiels se trouvent sur le site de Grafana.

Dans notre application, il suffit de se rendre dans l’onglet Dashboards, puis New > Import.

Il ne reste qu’à copier l’ID du dashboard récupéré sur le site officiel.

Toute la configuration d’un dashboard étant éditable en JSON, il est à noter qu’il est également possible de coller le json d’un autre projet, par exemple mis à disposition sur github.

Flowcharting

Flowcharting est un plugin Grafana permettant de créer tous types de schémas à partir de draw.io, et de paramétrer les styles des items (couleurs/animations) pour réagir dynamiquement en fonction de la valeur des métriques.

Ces schémas animés permettent de designer un rendu global très présentable.

Voir la documentation