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
Dynatrace SaaS vs Managed : choisir, organiser cluster et environnements
Choisir entre Dynatrace SaaS et Managed, organiser cluster et environnements, prendre en main l'i...
OneAgent : méthodes de collecte, installation, Kubernetes et santé
Les méthodes de collecte de Dynatrace (OneAgent, OpenTelemetry, Prometheus, API), l'installation ...
Configuration as Code avec Monaco : tokens, OAuth, projets et CI/CD
Gérer la configuration Dynatrace comme du code avec Monaco : jetons d'API et clients OAuth, manif...
Release monitoring dans Dynatrace : versions, événements de déploiement et suivi des incidents
Suivre les versions déployées dans Dynatrace : variables DT_RELEASE, labels Kubernetes, événement...
Real User Monitoring Dynatrace : injection, applications web et vérification
Mettre en place la surveillance des utilisateurs réels dans Dynatrace : injection automatique par...
Analyser l'expérience utilisateur dans Dynatrace : sessions, traces, analyses et USQL
Exploiter les données d'expérience utilisateur (DEM) : Apdex et Core Web Vitals, sessions utilisa...
Métriques Dynatrace : Data Explorer, sélecteurs de métriques, API et tableaux de bord
Exploiter les métriques dans Dynatrace : métriques intégrées et personnalisées, Data Explorer, sy...
Gestion des problèmes dans Dynatrace : Davis, page problème, notifications et auto-remédiation
Comprendre les problèmes détectés par Davis, lire une page problème (cause racine, impact, chrono...
Paramètres essentiels de Dynatrace : propriétaires, maintenances, nommage, requêtes clés et tags
Configurer les paramètres transverses de Dynatrace : propriétaires des entités (ownership), fenêt...