Ce que vous allez apprendre dans ce TP
- Créer des spans avec le SDK
- Signaler erreurs, événements et liens
- Interroger avec TraceQL et échantillonner
Introduction #
Ce que vous allez apprendre dans cette section
- Créer des spans avec le SDK
- Signaler erreurs, événements et liens
- Interroger avec TraceQL et échantillonner
Contexte. Le service de commandes n'a aucune bibliothèque auto-instrumentée pour sa logique métier. Vous l'instrumentez à la main pour voir les étapes d'une commande, ses erreurs de paiement et ses traitements par lots.
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. Initialiser le SDK
Pourquoi ? Le TracerProvider porte la ressource et l'exportateur ; le BatchSpanProcessor envoie par lots.
Installez le SDK et l'exportateur OTLP/HTTP, puis écrivezotel_setup.pyqui configure la ressource (service.name,service.version,deployment.environment.name) et l'export.3. Créer une trace métier
Pourquoi ? Des spans nommés par étape, avec SpanKind et attributs conformes aux conventions, rendent la trace lisible par tous les outils.
Écrivezcommande.py: un span racinetraiter commandeet trois enfants (stock en CLIENT avec attributs de base de données, calcul, paiement), un événement, et une erreur de paiement une fois sur trois avecrecord_exceptionet statut ERROR.4. Explorer et interroger avec TraceQL
Pourquoi ? TraceQL filtre sur la structure et les attributs des spans : on trouve en une requête les traces qui comptent.
Dans Grafana, ouvrez Explore > Tempo. Exécutez les requêtes ci-dessous, ouvrez une trace en erreur et retrouvez l'événement et l'exception du spanpayer.5. Relier un traitement par lots avec des liens
Pourquoi ? Un lot qui traite des éléments venant de plusieurs traces ne peut pas avoir plusieurs parents : on utilise des liens.
Écrivezlot.py: trois traces « réception » indépendantes, puis un spanfacturer lotlié aux trois. Retrouvez les liens dans le détail du span.6. Échantillonner
Pourquoi ? L'échantillonnage par ratio réduit le volume ; parentbased garantit qu'une trace est gardée ou jetée en entier.
Relancezcommande.pyavec un échantillonnage à 20 % et comparez le nombre de traces reçues ; vérifiez qu'aucune trace n'est partielle. Expliquez pourquoi le tail sampling du Collector serait préférable pour garder toutes les erreurs.
Niveau de difficulté : ●●●○○ (3/5)
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
Articles recommandés
Davis AI avancé : détection d'anomalies, IA causale, prédictive et générative
Comprendre Davis AI : seuils statiques, baselines auto-adaptatives et saisonnières, analyse causa...
Workflows et AutomationEngine : automatiser notifications et remédiation
Automatiser avec Dynatrace Workflows (AutomationEngine) : déclencheurs par événement, planificati...
Segments et nouvelle plateforme : remplacer les management zones
Comprendre les segments de la nouvelle plateforme Dynatrace : différences avec les management zon...
Licensing et FinOps Dynatrace : rate cards, suivi de la consommation et budgets
Appliquer une démarche FinOps à Dynatrace : comprendre la rate card DPS, suivre la consommation p...
AppEngine et applications personnalisées Dynatrace
Créer des applications sur la plateforme Dynatrace avec AppEngine : Dynatrace App Toolkit, interf...
Grail et DQL avancés : jointures, lookup, séries temporelles et optimisation
Aller plus loin avec DQL : join et lookup, makeTimeseries et timeseries, parse avec DPL, entités ...
Cloud et infrastructure avec Dynatrace : AWS, Azure, GCP, Kubernetes et extensions 2.0
Superviser cloud et infrastructure avec Dynatrace : intégrations AWS, Azure et GCP, logs cloud, K...
Alerting avancé Dynatrace : événements de métrique, profils d'alerting et notifications
Construire un alerting Dynatrace utile : événements de métrique et détecteurs d'anomalies, événem...
Business observability avec Dynatrace : événements métier, KPI et Business Flow
Relier technique et métier dans Dynatrace : événements métier (bizevents) captés par OneAgent, AP...