Aller au contenu principal

Métriques

Objectifs​

  • Estimer son travail
  • Déployer Prometheus et Grafana sur Docker Compose
  • Instrumenter une application Python (FastAPI)

Rendu​

  • GitHub Classroom : https://classroom.github.com/a/Wy7jIiJU
    • Rapport individuel en Markdown à rendre avant le prochain cours
    • Nom du fichier : report.md à la racine du répertoire
    • Première partie : Code directement sur GitHub Classroom
    • Deuxième partie : MR sur votre projet HEIG-VD DevOps
  • Délai: 1 semaine

Tâches​

Estimer son travail​

  • Estimez le temps nécessaire pour réaliser ce laboratoire
    • Découpez le travail en tâches pour faciliter l'estimation
  • Lorsque vous aurez terminé le laboratoire, comparez le temps estimé avec le temps réellement passé
TâcheTemps estiméTemps réelCommentaire
Estimation10m15m...
............
Total2h1h30...

Prometheus et Grafana sur Docker Compose​

Créer un Docker Compose avec Prometheus et Grafana qui collecte les métriques de notre machine :

Les endpoints devraient être accessibles sur les ports suivants :

Observez les endpoints /metrics de :

(Changez de navigateur ou essayez en ligne de commande avec curl/wget en cas d'erreur )

Rafraîchissez la page des métriques. Expliquez le fonctionnement de Prometheus :

  • Comment Prometheus collecte les métriques ?
  • Où sont stockées les métriques ?
  • Comment sont définies les métriques ?
  • Qui définit la fréquence de collecte des métriques ?
  • Qu'est-ce qui diffère par rapport à un système de logs ?

Instrumenter une application Python​

Astuce

Vous pouvez utiliser les profiles pour activer/désactiver les services liés à l'observabilité : https://docs.docker.com/compose/profiles/

Instrumenter Nginx​

Cherchez comment collecter les métriques du frontend (Nginx) avec Prometheus. Qu'est-ce qui est nécessaire pour que cela fonctionne ?

En bonus, ajoutez les métriques de Nginx à votre Docker Compose.

Bonus : Prometheus sur Docker​

Pour collecter les métriques de Docker avec Prometheus : https://docs.docker.com/config/daemon/prometheus/

Références​