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.