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.