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
Instrumenter sans code avec Grafana Beyla (OpenTelemetry eBPF Instrumentation)
Obtenir métriques RED et traces HTTP/gRPC de n'importe quelle application sans la modifier : Graf...
Observer le réseau Kubernetes avec Cilium Hubble
Rendre visibles les flux réseau d'un cluster Kubernetes avec Cilium Hubble : architecture, CLI hu...
Profiling continu avec eBPF : Parca, Pyroscope et le profiler OpenTelemetry
Profiler en continu tous les processus d'un hôte grâce à eBPF : principe, Parca et parca-agent, P...
eBPF en production : sécurité, prérequis et limites
Ce qu'il faut savoir avant de déployer des agents eBPF : privilèges et capacités, versions de noy...
Bonnes pratiques eBPF pour l'observabilité
Check-list pour adopter eBPF en observabilité : choix des outils, déploiement progressif, sécurit...
Real User Monitoring (RUM) et Core Web Vitals : mesurer ce que vivent les utilisateurs
Pourquoi observer le front-end, ce que mesure le RUM, les Core Web Vitals (LCP, INP, CLS) et leur...
Grafana Faro : architecture et installation
Installer Grafana Faro : le SDK web (npm ou CDN), le récepteur faro.receiver d'Alloy, l'envoi ver...
Faro : erreurs JavaScript, logs, événements métier et sessions
Exploiter l'API Faro : capture automatique des erreurs, envoi manuel d'erreurs, logs, événements ...
Du clic à la base de données : traces front-end vers back-end avec Faro
Relier les requêtes du navigateur aux traces du back-end : TracingInstrumentation, propagation de...