ELK Stack para QA

ELK significa Elasticsearch, Logstash y Kibana — tres herramientas open-source que juntas forman una plataforma poderosa de gestión de logs.

Componentes

  • Elasticsearch: Motor de búsqueda que almacena e indexa datos de logs
  • Logstash: Pipeline de procesamiento que ingesta logs de varias fuentes
  • Kibana: Capa de visualización con interfaz web para buscar logs y crear dashboards
  • Filebeat: Enviador ligero de logs instalado en servidores de aplicación

Kibana para Investigación de Logs

Buscando Logs

# Errores en el servicio de pagos en la última hora
service: "payment-service" AND level: "ERROR"

# Errores de timeout
message: "timeout" OR message: "timed out"

# Errores para un usuario específico
userId: "usr_12345" AND level: "ERROR"

Flujo de Correlación

Cuando un test falla:

  1. Anota el tiempo exacto del fallo
  2. Busca errores en esa ventana de tiempo (+-5 minutos)
  3. Filtra por servicio para acotar la fuente
  4. Expande la entrada para ver detalles completos (stack trace, request ID)
  5. Busca por request ID para rastrear entre servicios

Grafana para Dashboards de Métricas

Grafana sobresale en visualizar métricas time-series de Prometheus, InfluxDB, Elasticsearch y más.

Construyendo un Dashboard QA

  • Panel 1: Tendencia de ejecución de tests (pass/fail en el tiempo)
  • Panel 2: Tasa de tests inestables
  • Panel 3: Duración del pipeline por etapa
  • Panel 4: Tasa de éxito de despliegues
  • Panel 5: Error rate de la aplicación post-despliegue

Anotaciones

Marca despliegues en gráficos para correlacionar cambios de métricas con releases.

Patrones Prácticos de Análisis

Patrón: Validación Post-Despliegue

Después de cada despliegue, busca automáticamente: nuevos tipos de error, cambios en error rate, warnings de queries lentas.

Patrón: Causa Raíz de Fallo de Test

Cuando un test E2E falla con un error genérico, la causa real frecuentemente está en el backend.

Ejercicio: Investiga un Incidente en Producción

Escenario: Después de un despliegue a las 14:00, usuarios reportan que el checkout está lento. Error rate subió de 0.5% a 3%.

Solución

Paso 1: Buscar errores post-despliegue en Kibana Resultado: 247 errores, mayormente de “order-service”

Paso 2: Filtrar errores de order-service Resultado: “Connection timeout to inventory-service” (180 ocurrencias)

Paso 3: Revisar logs de inventory-service Resultado: “Database connection pool exhausted”

Paso 4: Revisar métricas de BD en Grafana

  • Pool de conexiones: 50/50 (agotado)
  • Queries lentas: 35 tomando >5s

Causa raíz: El nuevo despliegue introdujo una query sin índice. Bajo tráfico de producción, agota el connection pool.

Fix: Agregar el índice faltante. Rollback hasta que el fix esté listo.

Conclusiones Clave

  1. ELK es esencial para investigación de logs QA
  2. Grafana visualiza el panorama general
  3. Correlaciona timestamps — empareja tiempos de fallos con entradas de logs
  4. Marca despliegues en dashboards
  5. Construye queries reutilizables en Kibana