[TP] Déployer un pipeline d'observabilité complet avec Agent et Gateway


Mise en place d'une architecture d'observabilité résiliente avec un agent OTel pour la collecte locale et une gateway pour le traitement centralisé, le tout dans un environnement Docker.

Ce que vous allez apprendre dans ce TP :
  • Déployer un backend de visualisation complet (Grafana, Mimir, Loki, Tempo)
  • Configurer et lancer un collecteur OTel en mode Gateway
  • Configurer et lancer un collecteur OTel en mode Agent
  • Instrumenter une application pour envoyer sa télémétrie à l'Agent
  • Visualiser les traces, métriques et logs dans Grafana
  • Cloner le dépôt de configuration
  • Démarrer l'infrastructure via Docker Compose
  • Valider l'accès aux outils de visualisation
  • Créer le fichier de configuration pour la gateway
  • Lancer le conteneur de la gateway
  • Créer la configuration pour l'agent
  • Lancer l'agent et l'application de démo
  • Explorer les logs applicatifs
  • Visualiser les métriques de performance
  • Analyser une trace distribuée

Architecture Cible


Ce que vous allez apprendre dans cette section :
  • Déployer un backend de visualisation complet (Grafana, Mimir, Loki, Tempo)
  • Configurer et lancer un collecteur OTel en mode Gateway
  • Configurer et lancer un collecteur OTel en mode Agent
  • Instrumenter une application pour envoyer sa télémétrie à l'Agent
  • Visualiser les traces, métriques et logs dans Grafana

L'objectif est de construire un pipeline où une application instrumentée envoie ses données à un **agent OTel local**. Cet agent transmet ensuite les données à une **gateway OTel centralisée**, qui se charge de les traiter et de les exporter vers notre backend de stockage et de visualisation (stack LGTM : Loki, Grafana, Tempo, Mimir).



Pourquoi cette architecture Agent + Gateway ?
  • Résilience : L'agent peut mettre en cache les données si la gateway est indisponible.
  • Performance : L'agent, étant local, a une latence très faible pour l'application. Le traitement lourd (filtrage, enrichissement) est déporté sur la gateway.
  • Scalabilité : On peut scaler la gateway indépendamment des applications pour gérer la charge de milliers d'agents.
  • Sécurité : Seule la gateway a besoin des credentials pour se connecter aux backends finaux.

Étape 1 : Déploiement du Backend (Stack LGTM)


Ce que vous allez apprendre dans cette section :
  • Cloner le dépôt de configuration
  • Démarrer l'infrastructure via Docker Compose
  • Valider l'accès aux outils de visualisation

Nous allons commencer par déployer notre backend qui centralisera et visualisera toutes les données de télémétrie.
  1. Récupérer les fichiers de configuration
    Récupérez les fichiers de configuration nécessaires pour le déploiement du backend.
  2. Déployer le backend via Docker Compose
    Lancez le déploiement des services de la stack LGTM (Mimir pour les métriques, Loki pour les logs, Tempo pour les traces et Grafana pour la visualisation).
  3. Vérifier l'accès et le bon fonctionnement de Grafana
    Assurez-vous que l'interface est accessible et que les sources de données sont prêtes.

Étape 2 : Configuration de la Gateway OTel


Ce que vous allez apprendre dans cette section :
  • Créer le fichier de configuration pour la gateway
  • Lancer le conteneur de la gateway

La gateway est le point de collecte central. Elle reçoit les données de tous les agents, les traite et les exporte vers le backend.
  1. Créer la configuration de la Gateway
    Créez un fichier `otel-gateway-config.yaml` qui définit les récepteurs, processeurs et exportateurs. La gateway écoutera sur le port 4317 et exportera vers Loki, Tempo et Mimir.
  2. Lancer la Gateway
    Ajoutez le service `otel-gateway` à votre fichier `docker-compose.yaml` et démarrez-le.

Étape 3 : Configuration de l'Agent OTel et de l'Application


Ce que vous allez apprendre dans cette section :
  • Créer la configuration pour l'agent
  • Lancer l'agent et l'application de démo

L'agent s'exécute au plus près de l'application. Son rôle est simple : collecter les données et les transférer à la gateway. Nous déploierons également une application de démo qui génère des traces, logs et métriques.
  1. Créer la configuration de l'Agent
    Créez un fichier `otel-agent-config.yaml`. La configuration de l'agent est minimale : il reçoit les données de l'application (sur le port 5317 pour ne pas entrer en conflit avec la gateway) et les exporte vers la gateway.
  2. Lancer l'Agent et l'Application de Démo
    Ajoutez les services `otel-agent` et `app-demo` à votre `docker-compose.yaml` et démarrez-les. L'application est configurée pour envoyer sa télémétrie à l'agent.

Étape 4 : Analyse et Visualisation dans Grafana


Ce que vous allez apprendre dans cette section :
  • Explorer les logs applicatifs
  • Visualiser les métriques de performance
  • Analyser une trace distribuée

Maintenant que le pipeline est complet, explorons les signaux collectés dans Grafana.
  1. Explorer les Logs
    Visualisez les logs envoyés par `app-demo` dans Loki.
  2. Consulter les Métriques
    Consultez les métriques de performance (ex: latence des requêtes) collectées dans Mimir.
  3. Analyser les Traces
    Suivez le cheminement des requêtes distribuées dans Tempo.

Niveau de difficulté: (2/5)

Articles recommandés

Comprendre la notion de score

Le concept de score va permettre à Elasticsearch de classer vos documents par...

Différences entre Technologies et Services dans Dynatrace

Dans Dynatrace, les concepts de 'Technologie' et de 'Services' aident à organ...

Dynatrace : Différences entre SQL Modifications, SQL Queries or Procedures, et SQL Transactions

Cet article détaille les différences entre trois concepts essentiels dans l'e...

Types de consommation de licence

Comprendre l'évolution de la facturation dans Dynatrace : la différence entre...

Les Types de Services Dynatrace : Comprendre et Optimiser Votre Surveillance Applicative

Découvrez les différents types de services que Dynatrace peut surveiller, leu...

Les SLO Dynatrace : Comprendre et Gérer les Objectifs de Niveau de Service

Découvrez comment utiliser les SLO (Service Level Objectives) dans Dynatrace ...

Apdex vs Core Web Vitals

Découvrez les différences entre Apdex et Core Web Vitals, deux indicateurs de...

Comprendre Elastic Common Schema(ECS)

Comme toujours dans nos missions de conseil, nous recommandons aux entreprise...

Pourquoi collecter des métriques

Découvrez les raisons clés pour collecter des métriques avec des exemples con...

Les types de métriques dans Prometheus

Découvrez en détail les quatre types de métriques supportés par Prometheus (C...

Grail : Dynatrace Data Lakehouse

Désormais vous disposez dans Dynatrace (SaaS) d'un Data Lakehouse nommé Grail...

Introduction à PromQL

Apprenez à maîtriser PromQL, le langage de requête utilisé dans Prometheus, a...

Dynatrace OneAgent : tags, props, vars CLI

Pense‑bête des commandes CLI/API pour gérer tags, propriétés, variables d'env...

Grafana Alloy : Collecte et Transformation de Télémétrie

Apprenez à utiliser Grafana Alloy pour collecter, transformer et acheminer lo...

Grafana Alloy : Collecter les métriques système et les logs locaux

Découvrez comment configurer Grafana Alloy pour superviser le serveur sur leq...

Grafana Alloy : L'importance de l'auto-supervision (Self-Monitoring)

Découvrez pourquoi et comment configurer Grafana Alloy pour qu'il se supervis...

Grafana Alloy : Comprendre et exploiter l'Interface Utilisateur (UI)

Découvrez comment activer, sécuriser et utiliser l'interface web intégrée de ...

OTLP expliqué : comprendre le protocole OpenTelemetry

Découvrez le protocole OTLP expliqué simplement. Comprendre les différences e...

Grafana Alloy : Guide complet pour collecter métriques, logs et traces

Tutoriel complet sur Grafana Alloy. Découvrez comment installer, configurer e...

Grafana Alloy : Syntaxe et Configuration (Alloy Language : River)

Dans le cadre d'une formation Grafana ou formation observabilité, maîtrisez l...

Grafana Alloy : Collecte de Métriques (Prometheus & Ecosystem)

Apprenez à configurer Grafana Alloy pour collecter, transformer et envoyer de...

C'est quoi l'observabilité

La capacité à connaître l'état interne d'un système à partir des données que ...

Grafana Alloy : Gestion des Logs avec Loki

Découvrez comment configurer Grafana Alloy pour lire des fichiers de logs, jo...

Grafana Alloy : Gestion des Traces avec Tempo

Plongez dans le traitement des traces distribuées. Apprenez à ingérer des tra...

Grafana Alloy : Profilage Continu avec Pyroscope

Découvrez comment configurer le profilage continu (Continuous Profiling) dans...

Grafana Alloy : Déploiement Avancé et Clustering

Apprenez à gérer les déploiements à grande échelle de Grafana Alloy. Configur...

Grafana Assistant : L'IA au service de l'observabilité

Découvrez Grafana Assistant, l'intelligence artificielle intégrée à Grafana C...

Grafana Alloy vs OpenTelemetry Collector : Lequel choisir ?

Comparaison détaillée entre Grafana Alloy et l'OpenTelemetry Collector. Décou...

Grafana Alloy vs Dynatrace ActiveGate : Lequel choisir ?

Comparaison entre Grafana Alloy et Dynatrace ActiveGate. Comprenez les différ...

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

Référence des Composants Grafana Alloy

Un guide de référence complet sur tous les composants disponibles dans Grafan...

Dynatrace : Maîtriser les Entity Selectors pour une observabilité à grande échelle

Découvrez l'importance stratégique des Entity Selectors, maîtrisez leur synta...

Dynatrace : Gestion du RGPD et protection de la vie privée (Data Privacy)

Apprenez à configurer Dynatrace pour respecter le RGPD, masquer les données s...

Dynatrace Synthetic Monitoring : Guide complet et bonnes pratiques

Découvrez comment utiliser le Synthetic Monitoring de Dynatrace pour surveill...

Dynatrace Credential Vault : Sécuriser et gérer vos secrets

Découvrez comment l'application Credential Vault de Dynatrace permet de gérer...

Les variantes du DevOps : Comprendre l'évolution de la culture de l'ingénierie

Découvrez les différentes déclinaisons du DevOps : DevSecOps, AIOps, NoOps, G...

Dynatrace vs Datadog : Le duel des leaders de l'APM

Comparatif complet entre les deux géants de l'observabilité. Automatisation p...

Grafana vs Kibana : Quel outil de visualisation choisir ?

Découvrez les différences fondamentales entre Grafana, le roi des métriques m...

Grafana Loki vs Elasticsearch : La bataille du stockage de logs

Comparatif entre Loki, le système de logs inspiré par Prometheus, et Elastics...

Prometheus vs VictoriaMetrics : Scalabilité des métriques

Pourquoi choisir VictoriaMetrics comme alternative à Prometheus pour le stock...

OpenTelemetry vs Dynatrace OneAgent : Standard ouvert ou magie propriétaire ?

Comprenez la différence entre l'instrumentation manuelle standardisée d'OpenT...

XLA : Pourquoi l'Expérience Utilisateur est le nouveau standard de l'Observabilité

Découvrez le concept de XLA (Experience Level Agreements), la différence avec...

Dynatrace : Management Zones vs Segments

Comprenez les différences fondamentales entre les Management Zones et les Seg...

Exploiter l'API Dynatrace v2 : Guide Complet de l'Automatisation

Apprenez à utiliser l'API Dynatrace pour automatiser votre observabilité : ge...

Qu'est-ce que le Cloud Computing ? La définition du NIST

Comprenez les fondamentaux du Cloud Computing à travers les 5 caractéristique...

IaaS, PaaS, SaaS : Comprendre les modèles de service

Découvrez les différences entre l'infrastructure, la plateforme et le logicie...

Le modèle de responsabilité partagée en sécurité

Apprenez qui est responsable de quoi en matière de sécurité dans le Cloud.

Élasticité vs Scalabilité : Les clés de la performance

Comprenez comment le cloud s'adapte automatiquement à la charge de vos utilis...

Introduction au FinOps : Maîtriser sa facture Cloud

Comment passer du CapEx à l'OpEx tout en gardant le contrôle financier.

Le Serverless : L'informatique sans serveurs à gérer

Focus sur le Function as a Service (FaaS) et l'abstraction de l'infrastructure.

Edge Computing : Amener le Cloud au plus près des données

Découvrez pourquoi le traitement à la périphérie du réseau est essentiel pour...

Qu'est-ce qu'une application Cloud Native ?

Comprendre les principes des microservices, des conteneurs et des APIs.

Les 6 Rs : Stratégies de migration vers le Cloud

Découvrez les différentes approches pour déplacer votre infrastructure on-pre...

Synthetic Monitoring as Code : Industrialisez la gestion des scénarios synthétiques

Découvrez comment intégrer le Synthetic Monitoring dans vos pipelines CI/CD p...

Grafana Provisioning : Automatisez la gestion de vos tableaux de bord et sources de données

Découvrez comment utiliser le provisioning de Grafana pour gérer vos configur...

Les Data Sources dans Grafana : Connectez et unifiez vos données

Apprenez à étendre les capacités de Grafana via les Data Sources. Découvrez l...

Maîtriser les Transformations dans Grafana : Manipulez vos données avec agilité

Apprenez à utiliser les transformations Grafana pour reformater, calculer et ...

Maîtriser les Variables dans Grafana : Dynamisez vos Tableaux de Bord

Apprenez à utiliser les variables pour créer des tableaux de bord interactifs...

Guide des Bonnes Pratiques Dynatrace : Vers une Observabilité Mature

Optimisez votre plateforme Dynatrace grâce à nos recommandations d'experts : ...

Les types de transactions dans les base de données

Cet article détaille les différences entre trois concepts essentiels dans l'e...

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

Maîtrisez OpenTelemetry grâce à nos conseils d'experts : implémentation du Co...

Protection des Applications

Découvrez comment sécuriser vos backends contre les abus et les attaques cour...

Haute Disponibilité

Assurez la continuité de service de vos applications avec les stratégies de h...

Bonnes Pratiques Grafana Alloy : Optimiser sa Collecte de Télémétrie

Découvrez les règles d'or pour configurer Grafana Alloy de manière robuste : ...

Architecture OpenTelemetry : Comprendre les 3 niveaux

Plongée au cœur de l'architecture OpenTelemetry. Apprenez comment les données...