RousselTMLEARNING

TP · Jaeger : tracing distribué de la découverte à l'expertise

TP : Instrumenter une application Python vers Jaeger

Ce que vous allez apprendre dans ce TP
  • Auto-instrumenter une application
  • Ajouter des spans et attributs
  • Rechercher par tag

Introduction #

Ce que vous allez apprendre dans cette section
  • Auto-instrumenter une application
  • Ajouter des spans et attributs
  • Rechercher par tag

Contexte. Votre équipe développe une API Python sans aucune trace. Vous l'instrumentez sans réécrire le code, puis ajoutez le contexte métier.

Prérequis : TP précédent terminé, Python 3  ·  Durée estimée : 45 min

Une API Python tracée de bout en bout.

Mise en place #

Étapes guidées, avec leur correction.

  1. 1. Écrire l'API

    Pourquoi ? Une API qui appelle un service externe produit une trace à plusieurs spans.

    Créez app.py avec une route qui appelle httpbin.
  2. 2. Auto-instrumenter

    Pourquoi ? opentelemetry-instrument ajoute les instrumentations Flask et requests sans toucher au code.

    Installez la distribution OpenTelemetry et lancez l'application instrumentée.
  3. 3. Générer et observer

    Pourquoi ? Chaque appel crée une trace serveur (Flask) avec un span client (requests).

    Appelez la route une vingtaine de fois et ouvrez une trace du service stock.
  4. 4. Ajouter un span métier

    Pourquoi ? Les spans automatiques ne disent rien du métier : un span et des attributs le complètent.

    Ajoutez un span verifier_stock avec l'attribut produit.id autour de l'appel externe.
  5. 5. Rechercher par tag

    Pourquoi ? Retrouver la trace d'un produit précis, comme le ferait le support.

    Relancez l'application, refaites des appels et cherchez dans Jaeger les traces avec le tag produit.id=7 et une durée minimale de 1 s.

Niveau de difficulté : ●●●○○ (3/5)

Mon suivi

  • ⏱ Durée estimée : ≈ 45 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

✉️ Poser une question

Articles recommandés

Instrumenter ses applications pour Jaeger avec OpenTelemetry

Envoyer des traces à Jaeger avec OpenTelemetry : auto-instrumentation (Java, Python, Node.js), SD...

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

Dynatrace : Différences entre SQL Modifications, SQL Queries or Procedures, et SQL Transactions

Cet article détaille les différences entre trois concepts essentiels dans l'exécution des instruc...

Licences Dynatrace : modèle par unités et consumption-based licensing (DPS)

Comprendre la facturation Dynatrace : l'ancien modèle de licences segmentées par unités (Host Uni...