RousselTMLEARNING

Article · Elasticsearch : de la découverte à l'expertise

Traces OpenTelemetry et Kibana APM

1. Instrumenter #

SDK OTel ou EDOT.

Instrumentation automatique #

Trois services instrumentés, Collector EDOT, Elasticsearch, Kibana APM.
# Java : agent EDOT (ou agent OpenTelemetry Java)
export OTEL_SERVICE_NAME=checkout
export OTEL_EXPORTER_OTLP_ENDPOINT=http://collector:4318
export OTEL_RESOURCE_ATTRIBUTES=deployment.environment=prod,service.version=1.4.2
java -javaagent:elastic-otel-javaagent.jar -jar checkout.jar
À savoir : Les SDK EDOT sont des distributions des SDK OpenTelemetry avec des réglages par défaut adaptés à Elastic ; les SDK OpenTelemetry standard fonctionnent aussi.

2. Dans Kibana #

Services, transactions, carte.

Vues APM #

Avec le Collector EDOT (connecteur et processeur APM d'Elastic), Kibana affiche pour chaque service la latence, le débit, le taux d'erreur, les dépendances et la carte des services. Une trace s'ouvre en cascade (waterfall) avec ses spans.

FROM traces-*.otel-*
| WHERE resource.attributes.service.name == "checkout" AND status.code == "Error"
| KEEP @timestamp, trace_id, name, duration
| SORT @timestamp DESC | LIMIT 20

3. Échantillonner et corréler #

Garder ce qui compte.

L'échantillonnage par la queue #

processors:
  tail_sampling:
    decision_wait: 10s
    policies:
      - { name: erreurs, type: status_code, status_code: { status_codes: [ERROR] } }
      - { name: lentes, type: latency, latency: { threshold_ms: 800 } }
      - { name: echantillon, type: probabilistic, probabilistic: { sampling_percentage: 10 } }
Erreur courante : Échantillonner dans les SDK ET dans le Collector sans le savoir : on garde 10 % de 10 %, et les métriques APM calculées sur les spans restants deviennent fausses. Calculez les métriques APM avant l'échantillonnage.

Relier logs et traces #

Quand le SDK injecte trace_id et span_id dans les logs (appenders OTel de log4j, logback, Python logging), Kibana passe d'une trace à ses logs et inversement.

📄 Traces OpenTelemetry dans Elasticsearch et Kibana APM →

Mon suivi

  • ⏱ Durée estimée : ≈ 4 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

💬 Discussions récentes de la formation

Poser une question sur cette leçon →Voir toutes les discussions de la formation

Glossaire de la formation

Observabilité

La capacité à connaître l'état interne d'un système à partir des données qu'il émet.Ces données sont classées en 3 piliers : logsmétriquestracesprofil...

Elastic Common Schema (ECS)

Une spécification open source qui permet de structurer vos données de manière homogène dans l'écosystème Elastic.

RBAC (Role-Based Access Control)

Contrôle d'accès basé sur les rôles. Les permissions sont attribuées à des rôles spécifiques (ex: admin, lecteur) plutôt qu'directement aux utilisateu...

Authentification

Processus permettant de vérifier et valider l'identité d'un utilisateur ou d'un système (ex: login/mot de passe, jeton, biométrie).

Autorisation

Processus intervenant après l'authentification pour déterminer si l'entité a les droits et privilèges nécessaires pour accéder à une ressource.

API Key

Clé d'API. Code alphanumérique unique utilisé pour identifier, authentifier et autoriser l'accès à une interface de programmation (API).

Architecture

Conception globale et structurelle d'un système informatique, définissant ses différents composants, leurs relations et les principes guidant son évol...

Repository

Dépôt de stockage centralisé. Peut désigner un dépôt de code source (ex: Git) ou un dépôt d'artefacts et binaires (ex: Harbor, Nexus, Artifactory).

Articles recommandés

OpenTelemetry et Elasticsearch : compatibilité et architecture

Envoyer de l'OpenTelemetry vers Elasticsearch : Collector et exportateur elasticsearch, endpoint ...

Ingérer des logs OpenTelemetry dans Elasticsearch

Collecter et structurer des logs avec le Collector OpenTelemetry (receiver filelog, opérateurs, p...

Métriques OpenTelemetry dans Elasticsearch

Collecter des métriques d'hôte, de Kubernetes et d'applications avec OpenTelemetry, comprendre te...

Elastic Observability : logs, infrastructure, APM et synthétiques

Les fonctions d'Elastic Observability : exploration des logs, inventaire d'infrastructure avec El...

APM Datadog et OpenTelemetry : traces, services et corrélation avec les logs

Instrumenter ses applications pour l'APM Datadog (dd-trace, instrumentation en une étape, OpenTel...

Elastic Agent autonome, sorties Logstash et Kafka, et OpenTelemetry (EDOT)

Écrire une configuration autonome, envoyer vers Logstash ou Kafka, et utiliser Elastic Agent comm...

Envoyer des traces vers Tempo : instrumentation OpenTelemetry et Alloy

Produire et acheminer des traces vers Tempo : auto-instrumentation Python/Java/Node, SDK manuel, ...

OpenTelemetry et Dynatrace : OTLP, collecteur et instrumentation

Intégrer OpenTelemetry à Dynatrace : endpoint OTLP et jetons, Dynatrace OTel Collector, traces, m...

Bonnes pratiques Kibana et Elastic Observability

Check-list pour exploiter Kibana en production : versions, sécurité, espaces et rôles, dashboards...

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !