Ce que vous allez apprendre dans ce TP
- Envoyer des profils continus
- Lire un flame graph
- Relier spans et profils
Introduction #
Ce que vous allez apprendre dans cette section
- Envoyer des profils continus
- Lire un flame graph
- Relier spans et profils
Contexte. Un service de calcul de remises est lent et coûteux en CPU, mais ses traces montrent seulement un span long. Vous ajoutez le quatrième signal pour trouver la ligne responsable.
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 : 45 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. Un service lent
Pourquoi ? Le code contient un défaut classique : une expression régulière recompilée et une concaténation coûteuse à chaque appel.
Installez le SDK Pyroscope et son intégration OpenTelemetry, puis écrivezremises.py: traces vers Tempo, profils vers Pyroscope avec le même nom de service, et lePyroscopeSpanProcessor.3. Lire le flame graph
Pourquoi ? Le flame graph montre où le CPU est réellement consommé, sans ajouter un seul span.
Dans Explore > Pyroscope (ou Drilldown > Profiles), sélectionnez l'applicationremiseset le type CPU. Identifiez les plateaux les plus larges et la part decode_valideet dere.compile.4. Du span au profil
Pourquoi ? Le span processor étiquette les échantillons avec le span_id : on obtient le profil d'une requête précise.
Dans Tempo, ouvrez une tracecalculer remiselongue et utilisez Profiles for this span. Si le lien n'apparaît pas, configurez Trace to profiles dans la source de données Tempo (source Pyroscope, type CPU).5. Corriger et comparer
Pourquoi ? Le profil prouve l'effet d'une optimisation, au lieu de le supposer.
Compilez l'expression une seule fois au niveau du module et remplacez la concaténation par';'.join(). Relancez, puis comparez les deux périodes avec la vue Diff de Pyroscope et la durée des spans dans Tempo.6. Situer les profils OpenTelemetry
Pourquoi ? Le SDK Pyroscope est une solution éprouvée ; le signal OTLP Profiles vise à unifier la collecte, mais n'est pas encore stable.
Consultez la page de statut du signal profiles sur opentelemetry.io et la documentation du profileur eBPF OpenTelemetry. Rédigez en trois lignes ce qu'il faudrait pour remplacer le SDK par le profileur eBPF et un Collector, puis arrêtez la pile.
Niveau de difficulté : ●●●○○ (3/5)
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
Articles recommandés
Grafana Alloy : Déploiement Avancé et Clustering
Maîtrisez le déploiement avancé de Grafana Alloy en mode clustering. Comprenez ses avantages pour...
Grafana Assistant : L'IA au service de l'observabilité
Découvrez Grafana Assistant, l'intelligence artificielle intégrée à Grafana Cloud. Apprenez comme...
Grafana Alloy vs OpenTelemetry Collector : Lequel choisir ?
Comparaison détaillée entre Grafana Alloy et l'OpenTelemetry Collector. Découvrez les avantages, ...
Grafana Alloy vs Dynatrace ActiveGate : Lequel choisir ?
Comparaison entre Grafana Alloy et Dynatrace ActiveGate. Comprenez les différences fondamentales ...
Grafana Alloy vs Grafana Agent vs Promtail : Lequel choisir ?
Découvrez l'évolution des collecteurs de télémétrie de l'écosystème Grafana. Comparatif détaillé ...
Référence des Composants Grafana Alloy
Un guide de référence complet sur tous les composants disponibles dans Grafana Alloy, organisé pa...
Dynatrace : Maîtriser les Entity Selectors pour une observabilité à grande échelle
Découvrez l'importance stratégique des Entity Selectors, maîtrisez leur syntaxe avancée, et adopt...
Dynatrace : Gestion du RGPD et protection de la vie privée (Data Privacy)
Apprenez à configurer Dynatrace pour respecter le RGPD, masquer les données sensibles et activer ...
Dynatrace Synthetic Monitoring : Guide complet et bonnes pratiques
Découvrez comment utiliser le Synthetic Monitoring de Dynatrace pour surveiller proactivement vos...