RousselTMLEARNING

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

Les 3 niveaux d'architecture OpenTelemetry

Introduction #

OpenTelemetry (OTel) n'est pas un outil unique, mais un framework complet conçu pour standardiser la manière dont nous collectons les données de télémétrie. Son architecture repose sur une séparation claire des responsabilités entre la génération de la donnée, son transport et son stockage.

1. Le niveau Applicatif : Instrumentation et SDKs #

C'est ici que les signaux (Traces, Métriques, Logs, Profiles) sont créés.

Génération de la donnée #

Les applications utilisent des SDKs OpenTelemetry pour capturer des informations sur leur exécution. Cette étape peut se faire de deux façons :

  • L'instrumentation automatique : Elle repose sur l'utilisation d'un agent (Java, Python, .NET, ...) ou d'un wrapper qui s'injecte au démarrage de l'application. Elle permet de collecter des signaux standards (comme les requêtes HTTP ou les appels en base de données) sans aucune modification du code source.
  • L'instrumentation manuelle : Elle nécessite l'utilisation explicite de l'API OTel au sein du code source. Cette méthode permet aux développeurs de définir précisément ce qu'ils souhaitent observer, en ajoutant par exemple des attributs métier personnalisés ou des spans spécifiques à leur logique applicative.

Une fois capturées, les données sont transformées en objets internes puis exportées vers le niveau suivant, généralement en utilisant le protocole OTLP (OpenTelemetry Protocol).

2. Le niveau Collecteur : Le cerveau du pipeline #

Le composant central qui reçoit, transforme et route les données.

Les composants internes du Collecteur #

Le collecteur est constitué de quatre éléments clés qui forment ses pipelines :

  • Receivers : Ils définissent comment les données entrent (en mode Push ou Pull).
    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: 0.0.0.0:4317
  • Processors : Ils manipulent les données (batching, filtrage, anonymisation) avant l'exportation.
    processors:
      batch:
        send_batch_size: 1000
        timeout: 10s
  • Exporters : Ils définissent où envoyer les données transformées vers les backends de stockage.
    exporters:
      otlp:
        endpoint: "my-backend:4317"
        tls:
          insecure: true
  • Extensions : Contrairement aux autres, elles n'interviennent pas sur les données de télémétrie mais sur le fonctionnement du collecteur (ex: santé, authentification).
    extensions:
      health_check:
        endpoint: 0.0.0.0:13133

Le concept de Pipelines #

Un pipeline est un graphe orienté reliant des Receivers à des Exporters en passant par des Processors. OTel permet de définir des pipelines distincts pour chaque type de signal (traces, metrics, logs), tout en partageant les mêmes receivers.

3. Le niveau Backend : Stockage et Analyse #

L'étape finale où les données deviennent exploitables.

Neutralité vis-à-vis des fournisseurs #

Grâce à l'architecture en couches d'OpenTelemetry, le choix du backend est totalement agnostique. Vous pouvez router vos données vers des solutions Open Source (Prometheus, Tempo, Loki, Jaeger) ou des solutions commerciales (Dynatrace, New Relic, Datadog) sans jamais modifier le code de votre application.

Le Protocole OTLP : Le langage commun #

La colle qui lie les trois niveaux.

Standardisation du transport #

L'OTLP (OpenTelemetry Protocol) est un protocole de transport universel basé sur gRPC ou HTTP. Il garantit que les métadonnées et le contexte (comme la propagation de traces) restent intacts tout au long de la chaîne. Pour approfondir les différences de transport, consultez notre article sur OTLP gRPC vs HTTP.

Conclusion #

Adopter cette architecture en trois niveaux permet une flexibilité maximale : vous pouvez faire évoluer vos backends ou vos règles de transformation dans le collecteur sans impacter vos développeurs ou vos applications en production.

Schéma d'architecture globale #

Schéma d

📄 Architecture OpenTelemetry : Comprendre les 3 niveaux →

Mon suivi

  • ⏱ Durée estimée : ≈ 8 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

Articles recommandés

OpenTelemetry Collector : les Exporters (envoyer la télémétrie vers les backends)

Configurer les exporters du Collector OpenTelemetry : OTLP gRPC/HTTP, Prometheus, prometheusremot...

OTLP expliqué : comprendre le protocole OpenTelemetry

Découvrez le protocole OTLP expliqué simplement. Comprendre les différences entre gRPC et HTTP po...

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...

Grafana Alloy vs OpenTelemetry Collector : Lequel choisir ?

Comparaison détaillée entre Grafana Alloy et l'OpenTelemetry Collector. Découvrez les avantages, ...

Les concepts fondamentaux d'OpenTelemetry : signaux, ressources, contexte et maturité

Le vocabulaire indispensable d'OpenTelemetry : les quatre signaux, API et SDK, ressource et instr...

Collector OpenTelemetry : connecteurs, extensions et observabilité du Collector

Aller plus loin avec le Collector : connecteurs (spanmetrics, servicegraph, count, routing, failo...

Bonnes Pratiques OpenTelemetry (OTel) : Le Guide de l'Observabilité Moderne

Maîtrisez OpenTelemetry grâce à nos conseils d'experts : implémentation du Collector, respect des...

OpenTelemetry Collector, Grafana Alloy et Bindplane : comparer trois approches des pipelines de télémétrie

Comparatif détaillé de trois façons de gérer des pipelines de télémétrie : l'OpenTelemetry Collec...

OpenTelemetry sur Kubernetes : Operator, auto-instrumentation et Collector

Déployer OpenTelemetry sur Kubernetes : modes de déploiement du Collector (DaemonSet, Deployment,...

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 !