RousselTMLEARNING

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

TP : OpenTelemetry Operator et auto-instrumentation sur Kubernetes

Ce que vous allez apprendre dans ce TP
  • Installer l'Operator
  • Déclarer Collector et Instrumentation
  • Instrumenter par annotation

Introduction #

Ce que vous allez apprendre dans cette section
  • Installer l'Operator
  • Déclarer Collector et Instrumentation
  • Instrumenter par annotation

Contexte. L'équipe plateforme veut que toutes les applications du cluster produisent des traces sans que chaque équipe modifie ses images. Vous validez l'approche par l'Operator.

Prérequis : Docker, kubectl et kind  ·  Durée estimée : 50 min

Une application instrumentée sans modification d'image, dont les spans arrivent dans un Collector géré par l'Operator.

Mise en place #

Étapes guidées, avec leur correction.

  1. 1. Préparer le cluster

    Pourquoi ? L'Operator utilise des webhooks d'admission dont les certificats sont gérés par cert-manager.

    Créez un cluster kind, installez cert-manager puis l'Operator, et attendez qu'ils soient disponibles.
  2. 2. Déclarer un Collector

    Pourquoi ? Le Collector est décrit comme une ressource Kubernetes : l'Operator crée Deployment, Service et ConfigMap.

    Créez un namespace demo et une ressource OpenTelemetryCollector en mode deployment avec un receiver OTLP, k8sattributes et l'exportateur debug.
  3. 3. Déclarer l'instrumentation

    Pourquoi ? La ressource Instrumentation centralise exportateur, propagateurs et échantillonnage pour tout un namespace.

    Créez une ressource Instrumentation qui envoie en OTLP/HTTP vers le Collector, avec les propagateurs tracecontext et baggage et un échantillonnage à 100 %.
  4. 4. Instrumenter une application par annotation

    Pourquoi ? L'annotation suffit : l'Operator injecte l'agent Python au démarrage du pod, sans modifier l'image.

    Déployez une petite application Flask dans une image Python standard avec l'annotation instrumentation.opentelemetry.io/inject-python, puis observez l'init container et les variables OTEL_* injectés.
  5. 5. Vérifier les spans

    Pourquoi ? L'exportateur debug affiche les spans reçus avec les attributs Kubernetes ajoutés par k8sattributes.

    Générez quelques requêtes avec un port-forward, puis cherchez dans les logs du Collector le span GET /, service.name et k8s.pod.name.
  6. 6. Faire évoluer et nettoyer

    Pourquoi ? Modifier la ressource Instrumentation n'affecte que les pods recréés : il faut redémarrer les déploiements.

    Passez l'échantillonnage à 10 %, redémarrez le déploiement, vérifiez la nouvelle valeur de OTEL_TRACES_SAMPLER_ARG, puis supprimez le cluster.

Niveau de difficulté : ●●●○○ (3/5)

Mon suivi

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

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

✉️ Poser une question

Articles recommandés

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

Projet fil rouge : les quatre signaux de l'OpenTelemetry Demo dans la stack Grafana

Un projet fil rouge qui traverse les formations d'observabilité : déployer l'OpenTelemetry Demo, ...

Les logs avec OpenTelemetry : modèle de données, appenders, corrélation et collecte

Maîtriser le signal log : modèle de données LogRecord, Logs Bridge API et appenders (Logback, Log...

Grafana Alloy vs OpenTelemetry Collector : Lequel choisir ?

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

Déployer Thanos sur Kubernetes (kube-prometheus-stack, Helm et Operator)

Installer Thanos sur Kubernetes : sidecar via kube-prometheus-stack, secret objstore, Bitnami/kub...

OpenTelemetry et Dynatrace : OTLP, collecteur et instrumentation

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

Collector OpenTelemetry : connecteurs, extensions et observabilité du Collector

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

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

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 !