Aller au contenu principal

Observabilité

Objectifs​

  • Estimer son travail
  • Dockeriser une application Spring Boot
  • Instrumenter une application Spring Boot pour la visualisation des logs, métriques et traces
  • Configurer un dashboard dans Kibana
  • Configurer un dashboard dans Grafana

Rendu​

  • Rapport individuel en Markdown à rendre avant le prochain cours
  • Délai: 2 semaines
    • Rendu intermédiaire après 1 semaine pour avoir un retour sur le travail effectué

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...

Mise en place​

Ce projet reprend demotory qui est le point de départ sur GitHub Classroom.

mvn spring-boot:run

http://localhost:8080

Docker Compose​

  • Dockeriser l'application
  • Créer un Docker Compose pour lancer l'application
    • docker compose up
  • Utiliser les profiles pour activer/désactiver les outils APM

Instrumentation​

Instrumenter l'application en justifiant vos choix d'outils

  • Le Docker Compose doit exposer les services suivants:
  • Documenter les configurations manuelles à faire après avoir lancé docker compose up dans le README.md
    • Exemple: ajouter des dashboards dans Kibana et Grafana
    • Vous pouvez ajouter des screenshots dans la documentation

Logs avec Kibana​

Visualiser les logs de tous les containers (application + outils APM) dans Kibana.

Bonus :

  • Gérer les stacktraces qui sont sur plusieurs lignes (regrouper la stacktrace en un seul record)

Métriques avec Grafana​

Visualiser les métriques de tous les containers (application + outils APM) dans Grafana.

Bonus :

  • Ajouter des métriques personnalisées de l'application
    • Nombre d'entrées dans la map sous forme de Gauge
    • Nombre de changements de la map sous forme de Sums

Traces avec Jaeger​

Visualiser les traces de l'application dans Jaeger.

Bonus :

  • Déployer aussi Zipkin et visualiser les traces dans Zipkin
  • Comparer les deux outils

Rapport​

  • Indiquer dans votre rapport votre démarche ainsi que les difficultés rencontrées
  • Expliquer tous les choix techniques que vous avez fait (sauf ceux indiqués)

Evaluation​

L'évaluation se porte sur les critères suivants :

  • Organisation
    • Le rendu est correct et dans les temps.
    • Documentation (README.md) des configurations manuelles, de l'application et des APMs.
    • Le rapport (report.md) est complet (explication de la démarche et des choix techniques) et synthétique.
  • Docker
    • Bonne dockerisation & Utilisation des profiles
  • Logs
    • Visualisation des logs de l'application dans Kibana.
    • Ajout des logs de tous les services & Stacktraces regroupées & Dashboard
  • Métriques
    • Visualisation des métriques de l'application dans Grafana.
    • Ajout des métriques de tous les services & Gauge, Sums, …
  • Traces
    • Visualisation des traces de l'application dans Jaeger.
    • Ajout des traces de tous les services & Visualisation des traces dans Zipkin & Comparaison avec Zipkin
  • Bonus
    • Autre bonus
Note 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 
Nombre de critères validés012345678910
  • En gras : critères principaux.
  • En italique : critères secondaires.