j’ai achetĂ© un PC...
Grafana Stack 📈 4. DĂ©ploiement d’un Grafana

Grafana Stack 📈 4. DĂ©ploiement d’un Grafana

⏱ 3 mn

Dans l’article prĂ©cĂ©dent , nous avons collectĂ© les journaux de l’application Spring. Reste maintenant Ă  restituer les mĂ©triques et les journaux de cette application. Pour cela, Grafana est l’application tout indiquĂ©e. Ce n’est pas pour rien que l’on a utilisĂ© tous les outils de la stack.

Les autres articles de la série :

  1. Observabilité avec Spring Boot 3
  2. Collecte des métriques avec OpenTelemetry
  3. Collecte des logs avec OpenTelemetry
  4. DĂ©ploiement d’un Grafana

Prérequis au déploiement

DĂ©ployer un Grafana
Dan Kaufman - Nerdist graffiti

Docker Compose

Tout comme dans les articles précédents, il faut compléter le fichier docker-compose.yml avec un nouveau service : Grafana .

Service Grafana

Grafana est l’interface de restitution des mĂ©triques et des logs que l’on a collectĂ©s jusque-lĂ . On peut aussi afficher les traces, mais c’est pour de futurs articles. Commençons par dĂ©ployer le serveur Grafana sur le mĂȘme modĂšle de docker compose que les autres services.

Voilà la déclaration du service Grafana dans le compose.

services:
  grafana:
    image: grafana/grafana:10.0.3
    user: '472'
    restart: unless-stopped
    environment:
      GF_SECURITY_ADMIN_USER: admin
      GF_SECURITY_ADMIN_PASSWORD: password
      GF_USERS_ALLOW_SIGN_UP: false
    logging:
      driver: local
      options:
        max-size: 10m
    volumes:
      - grafana_data:/var/lib/grafana
      - /opt/bw/grafana/provisioning/:/etc/grafana/provisioning/
    networks:
      metrics: {}
      grafana: {}

networks:
  metrics: {}

Il n’y a pas de configuration particuliĂšre si ce n’est le compte administrateur de dĂ©part Ă  configurer comme variable d’environnement. Le volume va permettre de conserver les rĂ©glages de dashboard et les comptes additionnels.

Le rĂ©pertoire provisionning va permettre de prĂ©charger des dashboards et de la configuration. C’est pratique, car cela va Ă©viter les actions manuelles pour l’ajout de dashboard par exemple. Mais les dashboard ajoutĂ©s via le provisionning ne sont pas modifiable. TrĂšs vite cela devient compliquĂ© Ă  gĂ©rer et Ă  tenir Ă  jour, car dĂšs que les mĂ©triques Ă©voluent, il faut mettre Ă  jour le dashboard dans le provisionning. Au final importer le dashboard normalement par l’interface s’est avĂ©rĂ© dans mon cas plus simple Ă  gĂ©rer.

472 est l’ID de l’utilisateur avec lequel grafana est lancĂ©e dans le container.

Dans les fichiers du gist associĂ©, vous trouverez aussi une configuration nginx pour placer un proxy devant le serveur grafana. C’est plus propre de ne pas brancher grafana directement sur le port 443 de la machine hĂŽte. Et cela permettra de simplifier les changements de configuration puisque c’est docker qui s’occupera de mapper les ports correctement.

Configuration des Dashboards

Pour afficher toutes les donnĂ©es que l’on a collectĂ©es avec Open Telemetry, on va dĂ©ployer trois dashboard Grafana. Un premier pour Spring, le second pour l’application, le dernier pour les mĂ©triques de l’hĂŽte collectĂ© par le plugin host de Open Telemetry.

Le dashboard Spring est facile Ă  trouvĂ© sur internet. Par contre, je n’ai pas trouvĂ© de dashboard pour le plugin host de otel donc j’en ai fait un depuis zĂ©ro.

Le dashboard pour l’application est strictement custom puisque les mĂ©triques le sont aussi. Mais il donne une bonne idĂ©e de comment intĂ©grer dans le mĂȘme Ă©cran, des mĂ©triques et des logs.

Dashboard Grafana MyApp
Dashboard Grafana pour MyApp

Dashboard Grafana host metrics
Dashboard Grafana pour les mĂ©triques de l’hĂŽte

L’ensemble des fichiers de configuration modifiĂ©s sont disponibles sur github .

Conclusion

La plus grande partie de la stack est dĂ©ployĂ©e. Il est maintenant possible de suivre l’activitĂ© de l’application et du serveur en temps rĂ©el. Il restera Ă  dĂ©ployer Tempo pour les traces de l’application. Mais pour l’instant, je n’ai pas creusĂ© et je trouve la mise en place un peu compliquĂ©e et trĂšs intrusive. Surement, pour un prochain article, quand j’aurais trouvĂ© une façon de le faire plus simple.

La mise en place d’alerte sera aussi une chose Ă  faire rapidement si vous ne voulez pas avoir a restĂ© collĂ© Ă  l’écran H24.


Grafana Stack 📈 4. DĂ©ploiement d’un Grafana est paru le