Ce document vous permet de prendre en main l'automatisation et la mise en oeuvre des outils de mesure de votre application au sein d'environnements multiples.
flowchart LR
N(nginx)
G(grafana)
P(prometheus)
Np(nginx-prom-exporter)
G -- scrape --> P
P -- scrape --> Np
Np -- scrape --> N
Dans ce TP il faudra réaliser une réécriture du script ansible, l'occasion d'intégrer ansible-lint que l'on avait oublié dans le stage build ;)
Modifier votre image nginx afin d'activer l'exposition des metrics Nginx Cette exposisiton devra être adaptée pour être consommée par Nginx-prometheus-exporter attention aux prérequis !
:check_mark_button: L'exposition des metrics doit être opérationnelle en local au sein du container
A l'aide de docker compose, enrichissez votre servie nginx du service nginx-prometheus-exporter qui présentera les metrics au format prometheus
Pour cela, il sera nécessaire de créer une structure multi environnements sur votre machine cible, par exemple :
\-- nginxapp-review
\-- feat-myfeat
+-- compose.yaml
\-- nginxapp-integration
+-- compose.yaml
\-- nginxapp-preproduction
+-- compose.yaml
\-- nginxapp-production
+-- compose.yaml
Utiliser le module template ainsi que le templating jinja2 à cet effet.
:check_mark_button: L'exposition des metrics au format prometheus doit être opérationnelle en local au sein du container
Créer une nouvelle image prometheus qui sera configurée pour collecter les metrics exposées par votre service Nginx-prometheus-exporter
Intégrer ce nouveau service au sein de votre compose.
:check_mark_button: L'interface prometheus doit être opérationnelle et permettre de grapher les metrics nginx.
Intégrer le nouveau service grafana
:check_mark_button: L'interface grafana doit être opérationnelle
Intégrer le dashboard grafana pour nginx
:check_mark_button: Le dashboard vous afficher l'ensemble des metrics Nginx
Arrêter votre instance Nginx, le dashboard doit vous indiquer en quelques secondes le status down.
Créer un shell script permettant de réaliser un stress test. Observer l'évolution des metrics.