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​

:::tip Astuce

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

:::

:::tip Exemples

https://github.com/blueur/prometheus
https://gitlab.com/blueur/heig-vd-devops/-/tree/feature/instrumentation

:::

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​