Habilitación de Telemetría en Servicios Java (Spring Boot)
Descripción
Para capturar telemetría en nuestros servicios desplegados en Kubernetes (logs, métricas y trazas), es necesario agregar annotations en los deployments de las aplicaciones. Estas annotations permiten al collector de Grafana Alloy detectar automáticamente los servicios y recolectar la información necesaria para alimentar trazas, logs y métricas en Grafana Cloud.
Setup
- Modificación del Deployment del Servicio
Para los servicios Java (Spring Boot), edita el archivo: deploy/gke/deployment.yaml.erb
Agrega las siguientes annotations dentro del bloque spec.template.annotations:
spec:
template:
annotations:
instrumentation.opentelemetry.io/container-names: "app"
instrumentation.opentelemetry.io/inject-java: alloy/auto-instrumentation
Estas annotations permiten la inyección automática del agente OpenTelemetry en el contenedor app, habilitando la exportación de señales de telemetría hacia Grafana Alloy.
- Actualización del contenedor ESP
En el mismo archivo deployment.yaml.erb, ubica la definición del contenedor ESP y realiza los siguientes ajustes:
- En todas las versiones mayores o iguales a 2 (2.x.x) del contenedor ESP, es obligatorio agregar el argumento --disable_tracing dentro del bloque args, para evitar conflictos con la instrumentación automática de OpenTelemetry.
Agrega el parámetro --disable_tracing dentro del bloque args
- name: esp
image: gcr.io/endpoints-release/endpoints-runtime:2.53.0
args: [..., "--disable_tracing"]
Esto asegura que el tracing sea gestionado exclusivamente por OpenTelemetry, evitando conflictos entre el ESP y el agente Alloy.