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
Les Types de Services Dynatrace : Comprendre et Optimiser Votre Surveillance Applicative
Découvrez les différents types de services que Dynatrace peut surveiller, leur rôle, et comment l...
Les SLO Dynatrace : Comprendre et Gérer les Objectifs de Niveau de Service
Découvrez comment utiliser les SLO (Service Level Objectives) dans Dynatrace pour définir et surv...
Apdex vs Core Web Vitals
Découvrez les différences entre Apdex et Core Web Vitals, deux indicateurs de performance essenti...
Pourquoi collecter des métriques
Découvrez les raisons clés pour collecter des métriques avec des exemples concrets pour chaque cas.
Les types de métriques dans Prometheus
Découvrez en détail les quatre types de métriques supportés par Prometheus (Counter, Gauge, Histo...
PromQL : introduction au langage de requête de Prometheus
Apprendre PromQL, le langage de requête de Prometheus : sélecteurs, rate, sum by, histogrammes et...
Dynatrace OneAgent : tags, props, vars CLI
Pense‑bête des commandes CLI/API pour gérer tags, propriétés, variables d'environnement, versions...
Grafana Alloy : Collecte et Transformation de Télémétrie
Apprenez à utiliser Grafana Alloy pour collecter, transformer et acheminer logs, métriques et tra...
Grafana Alloy : Collecter les métriques système et les logs locaux
Découvrez comment configurer Grafana Alloy pour superviser le serveur sur lequel il s'exécute, av...