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. 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. 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 namespacedemoet une ressourceOpenTelemetryCollectoren mode deployment avec un receiver OTLP,k8sattributeset l'exportateurdebug.3. Déclarer l'instrumentation
Pourquoi ? La ressource Instrumentation centralise exportateur, propagateurs et échantillonnage pour tout un namespace.
Créez une ressourceInstrumentationqui envoie en OTLP/HTTP vers le Collector, avec les propagateurs tracecontext et baggage et un échantillonnage à 100 %.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'annotationinstrumentation.opentelemetry.io/inject-python, puis observez l'init container et les variablesOTEL_*injectés.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 spanGET /,service.nameetk8s.pod.name.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 deOTEL_TRACES_SAMPLER_ARG, puis supprimez le cluster.
Niveau de difficulté : ●●●○○ (3/5)
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
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...