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 : Management Zones vs Segments
Comprenez les différences fondamentales entre les Management Zones et les Segments dans Dynatrace...
Exploiter l'API Dynatrace v2 : Guide Complet de l'Automatisation
Apprenez à utiliser l'API Dynatrace pour automatiser votre observabilité : gestion des scopes, ro...
IaaS, PaaS, SaaS : différences et exemples des modèles de service cloud
IaaS, PaaS, SaaS : quelle différence ? Définitions, exemples concrets (AWS, Azure, Google Cloud, ...
Cloud Public, Privé ou Hybride : Quel déploiement choisir ?
Analysez les différents types de déploiement cloud pour votre infrastructure d'entreprise.
Le modèle de responsabilité partagée en sécurité
Apprenez qui est responsable de quoi en matière de sécurité dans le Cloud.
Les 6 Rs : Stratégies de migration vers le Cloud
Découvrez les différentes approches pour déplacer votre infrastructure on-premise vers le nuage.
Synthetic Monitoring as Code : Industrialisez la gestion des scénarios synthétiques
Découvrez comment intégrer le Synthetic Monitoring dans vos pipelines CI/CD pour des tests de per...
Grafana Provisioning : Automatisez la gestion de vos tableaux de bord et sources de données
Découvrez comment utiliser le provisioning de Grafana pour gérer vos configurations (dashboards, ...
Les Data Sources dans Grafana : Connectez et unifiez vos données
Apprenez à étendre les capacités de Grafana via les Data Sources. Découvrez les plugins essentiel...