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
Prometheus : visualiser ses métriques (UI, Grafana et dashboards)
Visualiser les données Prometheus : interface web, graphes PromQL, connexion à Grafana, dashboard...
Prometheus dans le monde Kubernetes (Operator, ServiceMonitor, kube-prometheus-stack)
Superviser Kubernetes avec Prometheus : service discovery, kube-prometheus-stack, Prometheus Oper...
Grafana : maîtriser les requêtes (PromQL, LogQL, SQL et expressions)
Construire des requêtes efficaces dans Grafana : éditeur de requêtes, Query Inspector, PromQL, Lo...
Grafana Cloud : démarrer avec la plateforme managée (Mimir, Loki, Tempo, Alloy)
Découvrir Grafana Cloud : création d'une stack, offre gratuite, envoi de métriques, logs et trace...
OpenTelemetry Collector : les Processors (transformer, filtrer et protéger la télémétrie)
Maîtriser les processors du Collector OpenTelemetry : batch, memory_limiter, attributes, resource...
OpenTelemetry Collector : les Exporters (envoyer la télémétrie vers les backends)
Configurer les exporters du Collector OpenTelemetry : OTLP gRPC/HTTP, Prometheus, prometheusremot...
Tracing distribué : la propagation du contexte (W3C Trace Context et baggage)
Comprendre et mettre en œuvre la propagation de contexte OpenTelemetry : en-tête traceparent, tra...
Beats : aller plus loin (sécurité, performances, Elastic Agent et migration vers Alloy)
Industrialiser Filebeat, Metricbeat et les autres Beats : sorties sécurisées, processors, modules...
Dynatrace : gérer les permissions (IAM, groupes, politiques et périmètres)
Gérer les accès dans Dynatrace : modèle IAM (utilisateurs, groupes, politiques, périmètres/bounda...