Ce que vous allez apprendre dans ce TP
- Auto-instrumenter tous les signaux
- Garantir une ressource commune
- Naviguer entre les signaux
Introduction #
Ce que vous allez apprendre dans cette section
- Auto-instrumenter tous les signaux
- Garantir une ressource commune
- Naviguer entre les signaux
Contexte. Une boutique de deux services renvoie des erreurs par intermittence. Vous instrumentez sans toucher au code et menez l'enquête en naviguant d'un signal à l'autre.
Prérequis : Docker et Python 3.10 ou plus ; la pile grafana/otel-lgtm (Collector, Tempo, Loki, Prometheus, Pyroscope et Grafana dans un seul conteneur) · Durée estimée : 50 min
Mise en place #
Étapes guidées, avec leur correction.
1. Démarrer la pile d'observabilité
Pourquoi ? Une seule image fournit un Collector OTLP et tous les backends : on se concentre sur le signal.
Lancezgrafana/otel-lgtm, créez un environnement Python et pointez les exportateurs vers le port OTLP/HTTP 4318.2. Écrire les deux services
Pourquoi ? Le code ne contient aucune ligne OpenTelemetry : tout viendra de l'auto-instrumentation.
Créezfront.py(port 8001) qui appellestock.py(port 8002) ; le service stock échoue sur 15 % des requêtes avec un log d'erreur.3. Démarrer avec une ressource commune
Pourquoi ? Les mêmes variables pour les trois signaux garantissent la même ressource : c'est la clé de la corrélation.
Lancez chaque service avecopentelemetry-instrument, les trois exportateurs OTLP, la capture des logs et des attributs de ressource communs, puis générez du trafic.4. Partir de la métrique
Pourquoi ? L'enquête commence comme une alerte : une métrique d'erreurs issue des conventions HTTP, identique pour tous les services.
Dans Prometheus, calculez le taux d'erreurs 5xx par service à partir de l'histogrammehttp.server.request.duration(ou de son équivalent selon la version d'instrumentation). Activez les exemplars et ouvrez une trace depuis un point.5. De la trace aux logs
Pourquoi ? La trace montre quel service a échoué ; ses logs disent pourquoi.
Dans Tempo, cherchez les traces en erreur, ouvrez-en une, constatez que le span serveur destockest en 503 et utilisez Logs for this span pour trouver le message « pool de connexions épuisé ». Faites le chemin inverse depuis Loki.6. Carte des services et métriques de spans
Pourquoi ? Les métriques calculées depuis les spans donnent débit, erreurs et durée par service et une carte des dépendances.
Ouvrez l'onglet Service Graph de Tempo dans Explore : vérifiez l'arêtefrontversstocket son taux d'erreur. Notez la ligne de configuration (connecteurservicegraphou générateur de métriques de Tempo) qui la rend possible.7. Casser puis réparer la corrélation
Pourquoi ? Une ressource différente suffit à couper tous les liens : on le vérifie pour s'en souvenir.
RedémarrezstockavecOTEL_LOGS_EXPORTER=none, regénérez du trafic et constatez que Logs for this span ne renvoie plus rien. Remettez la configuration et arrêtez tout.
Niveau de difficulté : ●●●○○ (3/5)
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
Articles recommandés
Corréler traces, métriques, logs et profils avec OpenTelemetry
Relier les quatre signaux pour diagnostiquer vite : ressource commune, trace_id dans les logs, ex...
Les métriques OpenTelemetry : instruments, temporalité, histogrammes et exemplars
Maîtriser le signal métrique : MeterProvider, instruments synchrones et asynchrones (Counter, UpD...
Les logs avec OpenTelemetry : modèle de données, appenders, corrélation et collecte
Maîtriser le signal log : modèle de données LogRecord, Logs Bridge API et appenders (Logback, Log...
Comprendre la notion de score
Le concept de score va permettre à Elasticsearch de classer vos documents par pertinence lors d u...
Elastic Common Schema (ECS) : le format standard des données Elastic et son rôle dans Elastic SIEM
Comprendre l'Elastic Common Schema (ECS) : format standard des champs dans Elasticsearch, convent...
Grail : Dynatrace Data Lakehouse
Désormais vous disposez dans Dynatrace (SaaS) d'un Data Lakehouse nommé Grail dont vous pouvez co...
C'est quoi l'observabilité
La capacité à connaître l'état interne d'un système à partir des données que cette dernière émet...
Les types de transactions dans les base de données
Cet article détaille les différences entre trois concepts essentiels dans l'exécution des instruc...
Différences entre Technologies et Services dans Dynatrace
Dans Dynatrace, les concepts de 'Technologie' et de 'Services' aident à organiser et surveiller l...