Lo que vas a aprender en este TP
- Auto-instrumentar todas las señales
- Garantizar un recurso común
- Navegar entre las señales
Introducción #
Lo que vas a aprender en esta sección
- Auto-instrumentar todas las señales
- Garantizar un recurso común
- Navegar entre las señales
Contexto. Una tienda de dos servicios devuelve errores de forma intermitente. Instrumentas sin tocar el código e investigas navegando de una señal a otra.
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: 50 min
Puesta en práctica #
Pasos guiados, con su corrección.
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.
Lanzagrafana/otel-lgtm, crea un entorno Python y apunta los exportadores al puerto OTLP/HTTP 4318.2. Escribir los dos servicios
¿Por qué? El código no contiene ninguna línea de OpenTelemetry: todo vendrá de la auto-instrumentación.
Creafront.py(puerto 8001) que llame astock.py(puerto 8002); el servicio de stock falla en el 15 % de las peticiones con un log de error.3. Arrancar con un recurso común
¿Por qué? Las mismas variables para las tres señales garantizan el mismo recurso: es la clave de la correlación.
Lanza cada servicio conopentelemetry-instrument, los tres exportadores OTLP, la captura de logs y atributos de recurso comunes, y genera tráfico.4. Partir de la métrica
¿Por qué? La investigación empieza como una alerta: una métrica de errores procedente de las convenciones HTTP, idéntica para todos los servicios.
En Prometheus, calcula la tasa de errores 5xx por servicio a partir del histogramahttp.server.request.duration(o su equivalente según la versión de instrumentación). Activa los exemplars y abre una traza desde un punto.5. De la traza a los logs
¿Por qué? La traza muestra qué servicio ha fallado; sus logs dicen por qué.
En Tempo, busca las trazas con error, abre una, comprueba que el span servidor destockestá en 503 y usa Logs for this span para encontrar el mensaje «pool de conexiones agotado». Haz el camino inverso desde Loki.6. Mapa de servicios y métricas de spans
¿Por qué? Las métricas calculadas a partir de los spans dan ritmo, errores y duración por servicio y un mapa de dependencias.
Abre la pestaña Service Graph de Tempo en Explore: comprueba la arista defronthaciastocky su tasa de error. Anota la línea de configuración (conectorservicegrapho generador de métricas de Tempo) que lo hace posible.7. Romper y reparar la correlación
¿Por qué? Un recurso diferente basta para romper todos los enlaces: se comprueba para recordarlo.
ReiniciastockconOTEL_LOGS_EXPORTER=none, genera tráfico de nuevo y comprueba que Logs for this span ya no devuelve nada. Restablece la configuración y detén todo.
Nivel de dificultad : ●●●○○ (3/5)
Mi seguimiento
Inicia sesión para seguir tu progreso y tomar notas. Iniciar sesión
Artículos recomendados
Corréler traces, métriques, logs et profils avec OpenTelemetry
Relier les quatre signaux pour diagnostiquer vite : ressource commune, trace_id dans les logs, ex...
Les métriques OpenTelemetry : instruments, temporalité, histogrammes et exemplars
Maîtriser le signal métrique : MeterProvider, instruments synchrones et asynchrones (Counter, UpD...
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 ...