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:
- Anota el tiempo exacto del fallo
- Busca errores en esa ventana de tiempo (+-5 minutos)
- Filtra por servicio para acotar la fuente
- Expande la entrada para ver detalles completos (stack trace, request ID)
- 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
- ELK es esencial para investigación de logs QA
- Grafana visualiza el panorama general
- Correlaciona timestamps — empareja tiempos de fallos con entradas de logs
- Marca despliegues en dashboards
- Construye queries reutilizables en Kibana