RousselTMLEARNING

TP · OpenTelemetry: del descubrimiento a la experiencia

Práctica: Logs de OpenTelemetry correlacionados con las trazas y recogida de archivos

Lo que vas a aprender en este TP
  • Conectar un logger existente a OpenTelemetry
  • Correlacionar logs y trazas
  • Recoger archivos con filelog

Introducción #

Lo que vas a aprender en esta sección
  • Conectar un logger existente a OpenTelemetry
  • Correlacionar logs y trazas
  • Recoger archivos con filelog

Contexto. Los logs de facturación son archivos de texto que nadie vincula con las trazas. Conectas el servicio moderno a OpenTelemetry y recoges los logs de la aplicación heredada sin modificarla.

Requisitos previos: Docker y Python 3.10 o superior; la pila grafana/otel-lgtm (Collector, Tempo, Loki, Prometheus, Pyroscope y Grafana en un solo contenedor)  ·  Duración estimada: 45 min

Logs estructurados, correlacionados con las trazas, procedentes de las dos vías de recogida.

Puesta en práctica #

Pasos guiados, con su corrección.

  1. 1. Arrancar la pila de observabilidad

    ¿Por qué? Una sola imagen proporciona un Collector OTLP y todos los backends: nos centramos en la señal.

    Lanza grafana/otel-lgtm, crea un entorno Python y apunta los exportadores al puerto OTLP/HTTP 4318.
  2. 2. Conectar el módulo logging

    ¿Por qué? El LoggingHandler convierte cada llamada a logging en un LogRecord de OpenTelemetry, con el contexto de traza activo.

    Escribe facturation.py: un LoggerProvider con exportador OTLP, un handler añadido al logger raíz, un TracerProvider y logs INFO y ERROR emitidos dentro de spans.
  3. 3. Consultar y correlacionar en Grafana

    ¿Por qué? El trace_id que lleva cada log permite pasar del log a la traza y viceversa.

    En Explore > Loki, muestra los errores del servicio, despliega una línea y localiza trace_id, span_id, la severidad y tus atributos. Abre la traza vinculada y, desde un span de Tempo, muestra sus logs.
  4. 4. Recoger los logs de una aplicación heredada

    ¿Por qué? Sin tocar el código, el receiver filelog lee los archivos y analiza el JSON, la severidad y el contexto de traza.

    Genera un archivo de logs JSON y lanza un Collector contrib en la misma red que la pila, con filelog, json_parser, trace_parser y un procesador resource que fije service.name.
  5. 5. Reducir y enmascarar

    ¿Por qué? El Collector elimina el ruido y los datos personales antes del almacenamiento.

    Añade un procesador filter que elimine los logs INFO y un transform que enmascare las direcciones de correo en el cuerpo y compruébalo en Loki.

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

Mi seguimiento

  • ⏱ Duración estimada : ≈ 45 min

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

✉️ Hacer una pregunta

Artículos recomendados

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: Perfilado Continuo con Pyroscope

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