RousselTMLEARNING

TP · OpenTelemetry: del descubrimiento a la experiencia

Práctica: OpenTelemetry Operator y auto-instrumentación en Kubernetes

Lo que vas a aprender en este TP
  • Instalar el Operator
  • Declarar Collector e Instrumentation
  • Instrumentar mediante anotación

Introducción #

Lo que vas a aprender en esta sección
  • Instalar el Operator
  • Declarar Collector e Instrumentation
  • Instrumentar mediante anotación

Contexto. El equipo de plataforma quiere que todas las aplicaciones del clúster produzcan trazas sin que cada equipo modifique sus imágenes. Validas el enfoque con el Operator.

Requisitos previos: Docker, kubectl y kind  ·  Duración estimada: 50 min

Una aplicación instrumentada sin modificar la imagen, cuyos spans llegan a un Collector gestionado por el Operator.

Puesta en práctica #

Pasos guiados, con su corrección.

  1. 1. Preparar el clúster

    ¿Por qué? El Operator usa webhooks de admisión cuyos certificados gestiona cert-manager.

    Crea un clúster kind, instala cert-manager y después el Operator, y espera a que estén disponibles.
  2. 2. Declarar un Collector

    ¿Por qué? El Collector se describe como un recurso de Kubernetes: el Operator crea el Deployment, el Service y el ConfigMap.

    Crea un namespace demo y un recurso OpenTelemetryCollector en modo deployment con un receiver OTLP, k8sattributes y el exportador debug.
  3. 3. Declarar la instrumentación

    ¿Por qué? El recurso Instrumentation centraliza exportador, propagadores y muestreo para todo un namespace.

    Crea un recurso Instrumentation que envíe en OTLP/HTTP al Collector, con los propagadores tracecontext y baggage y un muestreo del 100 %.
  4. 4. Instrumentar una aplicación mediante anotación

    ¿Por qué? La anotación basta: el Operator inyecta el agente Python al arrancar el pod, sin modificar la imagen.

    Despliega una pequeña aplicación Flask en una imagen Python estándar con la anotación instrumentation.opentelemetry.io/inject-python y observa el init container y las variables OTEL_* inyectados.
  5. 5. Comprobar los spans

    ¿Por qué? El exportador debug muestra los spans recibidos con los atributos de Kubernetes añadidos por k8sattributes.

    Genera algunas peticiones con un port-forward y busca en los logs del Collector el span GET /, service.name y k8s.pod.name.
  6. 6. Evolucionar y limpiar

    ¿Por qué? Modificar el recurso Instrumentation solo afecta a los pods recreados: hay que reiniciar los despliegues.

    Pasa el muestreo al 10 %, reinicia el despliegue, comprueba el nuevo valor de OTEL_TRACES_SAMPLER_ARG y elimina el clúster.

Nivel de dificultad : ●●●○○ (3/5)

Mi seguimiento

  • ⏱ Duración estimada : ≈ 50 min

Inicia sesión para seguir tu progreso y tomar notas. Iniciar sesión

✉️ Hacer una pregunta

Artículos recomendados

OpenTelemetry sur Kubernetes : Operator, auto-instrumentation et Collector

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

Grafana Alloy: Perfilado Continuo con Pyroscope

Descubra cómo configurar el perfilado continuo (Continuous Profiling) en sus entornos utilizando ...