Aller au contenu principal

Métriques

Objectifs

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

Rendu

  • Rapport individuel en Markdown à rendre avant le prochain cours
    • GitHub Classroom : https://classroom.github.com/a/uuvyWOwh
    • 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 DOP-Python (ajouter le lien dans le rapport)
  • Délai: 1 semaine

Tâches

Estimer son travail

  • Estimer le temps nécessaire pour réaliser ce travail.
    • Découper le travail en tâches pour faciliter l'estimation.
  • Une fois terminé, comparer le temps estimé avec le temps réellement passé.
TâcheTemps estiméTemps passéCommentaire
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 :

Observer les endpoints /metrics de :

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

Rafraîchir la page des métriques.

Question rapport

Expliquer 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

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

Instrumenter Nginx

Chercher comment collecter les métriques du frontend (Nginx) avec Prometheus.

Question rapport

Qu'est-ce qui serait 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