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​

  • GitHub Classroom : https://classroom.github.com/a/-lxidR0U
    • Rapport individuel en Markdown à rendre avant le prochain cours
    • Nom du fichier : report.md à la racine du répertoire
    • Code directement sur GitHub Classroom
  • Délai: 2 semaines
    • Rendu intermédiaire après 1 semaine pour avoir un retour sur le travail effectué

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

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

Bonus :

  • 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​

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

Evaluation​

Critères de base (-0.5/critère)Critères complémentaires (+0.2/critère)
Rendu
  • Le rendu est complet et dans les temps
Docker
  • Le Docker Compose est fonctionnel
  • 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
  • Autre
Traces
  • Visualisation des traces de l'application dans Jaeger
  • Ajout des traces de tous les services
  • Visualisation des traces dans Zipkin
  • Comparaison avec Zipkin
Documentation (README.md)
  • Documentation des configurations manuelles
  • Bonne documentation de l'application
  • Bonne documentation des APM
Rapport
  • Bonne explication de la démarche
  • Bonne explication des choix techniques
Bonus
  • Autre bonus

Tous les critères de base doivent être validés pour avoir la note de 4.

Les critères complémentaires permettent d'atteindre la note de 6.