Ce que vous allez apprendre dans ce TP
- Choisir le bon instrument
- Configurer une vue
- Utiliser les exemplars
Introduction #
Ce que vous allez apprendre dans cette section
- Choisir le bon instrument
- Configurer une vue
- Utiliser les exemplars
Contexte. La direction veut suivre les commandes, les paniers en cours, le stock et la latence de l'API. Vous produisez ces métriques avec OpenTelemetry et vérifiez qu'elles sont exploitables dans Prometheus.
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. Produire des métriques avec les quatre familles d'instruments
Pourquoi ? Le type d'instrument détermine l'agrégation et donc la justesse des graphiques.
Écrivezboutique.pyqui, en boucle, incrémente un Counter de commandes, fait varier un UpDownCounter de paniers, enregistre la durée des requêtes dans un Histogram et expose le stock via un ObservableGauge. Export toutes les 5 secondes.3. Retrouver les métriques dans Prometheus
Pourquoi ? La conversion OTLP vers Prometheus renomme les métriques : il faut savoir les retrouver.
Dans Explore > Prometheus, retrouvez chaque métrique sous son nom Prometheus et écrivez les requêtes : débit de commandes par moyen de paiement, paniers ouverts, stock par entrepôt, latence p95.4. Corriger les bornes avec une vue
Pourquoi ? Les bornes par défaut (0, 5, 10, 25… 10000) sont pensées pour des millisecondes : en secondes, presque tout tombe dans le premier intervalle et le p95 est faux.
Observez les buckets actuels, arrêtez le script, ajoutez une vue avec des bornes en secondes, relancez et comparez le p95.5. Mesurer l'effet de la cardinalité
Pourquoi ? Chaque valeur d'attribut distincte crée une série : un identifiant sur une métrique fait exploser le stockage.
Comptez les séries deshop_orders_total, ajoutez temporairement un attributuser.idaléatoire, recomptez, puis retirez-le.6. Relier une latence à sa trace
Pourquoi ? Les mesures faites dans un span échantillonné portent un exemplar avec le trace_id : on passe du graphique à la requête exacte.
Affichez le p95 dans un panneau Grafana avec l'option Exemplars activée, cliquez sur un point élevé et ouvrez la trace correspondante dans Tempo. Si aucun exemplar n'apparaît, vérifiez la version du SDK etOTEL_METRICS_EXEMPLAR_FILTER.
Niveau de difficulté : ●●●○○ (3/5)
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
Articles recommandés
Grafana Tempo : le backend de traces distribuées à grande échelle
Comprendre le tracing distribué et Grafana Tempo : traces, spans, TraceID, architecture (distribu...
Installer Grafana Tempo (Docker Compose, binaire et Helm)
Installer Grafana Tempo : configuration tempo.yaml, Docker Compose avec Grafana et Prometheus, po...
Envoyer des traces vers Tempo : instrumentation OpenTelemetry et Alloy
Produire et acheminer des traces vers Tempo : auto-instrumentation Python/Java/Node, SDK manuel, ...
TraceQL : le langage de requête des traces
Maîtriser TraceQL : sélecteurs de spans, attributs de ressource et de span, opérateurs, comparais...
Tempo : générer des métriques à partir des traces (service graph, span metrics, exemplars)
Activer le metrics-generator de Tempo : service graphs, span metrics RED, remote write vers Prome...
Corréler traces, logs, métriques et profils dans Grafana
Relier Tempo aux logs (Loki), aux métriques (Prometheus) et aux profils (Pyroscope) : tracesToLog...
Tempo : stockage objet, blocs, compactor et déploiement distribué
Configurer le stockage de Tempo : S3/GCS/Azure, format Parquet vParquet4, WAL, compactor et réten...
Tempo en production : échantillonnage, limites et supervision
Exploiter Tempo en production : tail sampling avec Alloy, limites par tenant (overrides), erreurs...
Grafana Loki : le système de logs inspiré de Prometheus
Découvrir Grafana Loki : philosophie d'indexation par labels, architecture (distributor, ingester...