Monitoreo de Airflow
Guía de Monitoreo y Troubleshooting de DAGs — Guía para Desarrolladores
Introducción
El sistema de monitoreo de Airflow de Cheaf permite a los desarrolladores y administradores supervisar el estado de los DAGs, identificar problemas y realizar troubleshooting efectivo. Esta documentación describe los componentes principales del monitoreo, las métricas clave y los procedimientos de troubleshooting.
Componentes del Sistema de Monitoreo
Airflow UI
La interfaz de usuario de Airflow proporciona una vista centralizada de todos los DAGs y su estado actual.
Características principales:
- Vista de DAGs: Lista de todos los DAGs con su estado actual
- Vista de Tareas: Detalles de cada tarea dentro de un DAG
- Logs: Acceso a logs detallados de cada ejecución
- Métricas: Estadísticas de ejecución y rendimiento
Métricas Clave
Estado de DAGs
- Activos: DAGs que están habilitados y pueden ejecutarse
- Pausados: DAGs deshabilitados temporalmente
- Ejecutándose: DAGs actualmente en ejecución
- Fallidos: DAGs que han fallado en su última ejecución
Estadísticas de Ejecución
- Runs exitosos: Número de ejecuciones completadas exitosamente
- Runs fallidos: Número de ejecuciones que han fallado
- Tiempo de ejecución: Duración promedio de las ejecuciones
- Última ejecución: Timestamp de la última ejecución
- Próxima ejecución: Timestamp de la próxima ejecución programada
Guía de Monitoreo Paso a Paso
1. Acceso a la UI de Airflow
URL: http://35.247.79.139:8080
Credenciales: Proporcionadas por el administrador del sistema
2. Navegación en la UI
Vista Principal de DAGs
- Acceder a la pestaña "DAGs"
- Verificar estado general:
- Total de DAGs: 42
- DAGs activos: 15
- DAGs pausados: 27
- DAGs ejecutándose: 0
- DAGs fallidos: 1
Guías Visuales de Monitoreo
Dashboard Principal
Elementos clave a monitorear:
-
Indicador de estado general (esquina superior derecha)
- Verde: Sistema operativo normal
- Amarillo: Advertencias menores
- Rojo: Problemas críticos
-
Gráfico de ejecuciones (centro de la pantalla)
- Barras verdes: Ejecuciones exitosas
- Barras rojas: Ejecuciones fallidas
- Altura de barras: Volumen de ejecuciones
-
Lista de DAGs críticos (panel principal)
- Toggle azul: DAG activo
- Toggle gris: DAG pausado
- Círculos de colores: Estado de runs recientes
Vista de DAG Específico
Información crítica:
-
Graph View: Dependencias entre tareas
- Cajas verdes: Tareas exitosas
- Cajas rojas: Tareas fallidas
- Cajas amarillas: Tareas en progreso
- Líneas: Dependencias entre tareas
-
Tree View: Historial de ejecuciones
- Columnas: Fechas de ejecución
- Filas: Tareas individuales
- Colores: Estado de cada tarea por fecha
-
Gantt View: Tiempos de ejecución
- Barras horizontales: Duración de tareas
- Eje X: Línea de tiempo
- Superposiciones: Tareas en paralelo
Información de DAGs Específicos
Para cada DAG, verificar:
- Estado del toggle: Azul (activo) o Gris (pausado)
- Owner: Propietario del DAG
- Runs: Círculos verdes (exitosos) y rojos (fallidos)
- Schedule: Cron expression o "None" para ejecución manual
- Last Run: Fecha y hora de la última ejecución
- Next Run: Fecha y hora de la próxima ejecución
- Recent Tasks: Círculos de colores indicando estado de tareas recientes
3. Monitoreo de DAGs Críticos
orchestrator_auto_trigger
Características:
- Schedule:
*/15 * * * *(cada 15 minutos) - Owner:
airflow - Tags:
orchestrator,auto-trigger,smart-schedule,auto-cleanup
Monitoreo:
- Verificar ejecución cada 15 minutos
- Revisar logs de limpieza automática
- Verificar decisiones de trigger
- Monitorear uso de disco
orchestrator_incremental_id
Características:
- Schedule:
None(ejecutado por auto-trigger) - Owner:
airflow - Tags:
orchestrator,master,sequential
Monitoreo:
- Verificar ejecución secuencial
- Revisar pausas entre DAGs
- Monitorear tiempo total de ejecución
- Verificar registro de finalización
gmail_merma_to_bigquery
Características:
- Schedule:
0 8,12 * * 1-5(8 AM y 12 PM, lunes a viernes) - Owner:
data-engineering - Tags:
bigquery,gmail,ingestion,merma,production
Monitoreo:
- Verificar ejecución en horarios programados
- Revisar logs de extracción de Gmail
- Monitorear carga a BigQuery
- Verificar procesamiento de archivos Excel
4. Análisis de Logs
Acceso a Logs
- Hacer clic en el DAG específico
- Seleccionar la ejecución deseada
- Hacer clic en la tarea específica
- Acceder a la pestaña "Logs"
Tipos de Logs Importantes
Logs de Auto-Trigger: [AUTO-CLEANUP] Uso de disco OK: 75.2% - saltando limpieza [AUTO-CLEANUP] Uso de disco CRÍTICO: 90.1% - iniciando limpieza automática [AUTO-CLEANUP] COMPLETADO: Uso disco 90.1% → 75.3% (-14.8%), Runs eliminados: 15
Logs de Orquestador: Iniciando orquestación secuencial de pipelines incrementales... Pausa de 2 minutos para estabilización de recursos... Todos los pipelines han sido ejecutados y el tiempo de finalización ha sido registrado.
Logs de Ingesta: INFO: Cargando 2052 filas a la tabla backends-399017.stg_cheaf_warehouse.stg_merma_week_551... '551' -> stg_merma_week_551: 2052 filas
5. Troubleshooting Común
Problema: DAG Fallido
Síntomas:
- Círculo rojo en la columna "Runs"
- Estado "failed" en la vista de DAG
Pasos de troubleshooting:
- Hacer clic en el DAG fallido
- Revisar la ejecución más reciente
- Identificar la tarea fallida (círculo rojo)
- Revisar logs de la tarea fallida
- Identificar el error específico
- Aplicar la solución correspondiente
Problema: DAG No Se Ejecuta
Síntomas:
- DAG activo pero sin ejecuciones recientes
- "Last Run" muy antiguo
Pasos de troubleshooting:
- Verificar que el DAG esté activo (toggle azul)
- Revisar el schedule del DAG
- Verificar que no haya errores en el código del DAG
- Revisar logs del scheduler de Airflow
Problema: Uso de Disco Alto
Síntomas:
- Logs de limpieza automática frecuentes
- Advertencias de espacio en disco
Pasos de troubleshooting:
- Revisar logs de auto-cleanup
- Verificar espacio liberado después de limpieza
- Monitorear DAGs que generan muchos logs
- Considerar ajustar umbral de limpieza si es necesario
Troubleshooting Avanzado
Problemas de Conectividad
PostgreSQL Connection Issues
# Verificar conectividad
telnet postgres-host 5432
# Verificar logs de conexión
tail -f /opt/airflow/logs/scheduler/latest/*.log | grep -i postgres
# Test de conexión desde Airflow
airflow connections test postgres_default
# Verificar pool de conexiones
airflow connections list | grep postgresBigQuery Authentication Issues
# Verificar service account
gcloud auth list
# Test de conexión a BigQuery
bq ls --project_id=backends-399017
# Verificar permisos
gcloud projects get-iam-policy backends-399017
# Test específico de tabla
bq query --use_legacy_sql=false 'SELECT COUNT(*) FROM `backends-399017.stg_cheaf_warehouse.stg_accounts_raw`'Cassandra Connection Issues
# Verificar conectividad a Cassandra
nc -zv cassandra-host 9042
# Test de consulta básica
cqlsh cassandra-host -e "SELECT keyspace_name FROM system_schema.keyspaces;"
# Verificar logs de Cassandra
tail -f /var/log/cassandra/system.logComandos de Diagnóstico
# Estado general del sistema
airflow info
# Verificar DAGs y su estado
airflow dags list
# Verificar conexiones configuradas
airflow connections list
# Verificar variables de configuración
airflow variables list
# Verificar pools de recursos
airflow pools list
# Logs en tiempo real del scheduler
tail -f /opt/airflow/logs/scheduler/latest/*.log
# Logs en tiempo real del webserver
tail -f /opt/airflow/logs/webserver.log
# Verificar procesos de Airflow
ps aux | grep airflow
# Verificar uso de recursos
htop
df -h
free -hComandos de Recuperación
# Reiniciar DAG específico
airflow dags unpause <dag_id>
airflow dags trigger <dag_id>
# Limpiar estado de DAG
airflow dags state <dag_id> <execution_date>
airflow tasks clear <dag_id> <task_id> <execution_date>
# Reiniciar servicios de Airflow
sudo systemctl restart airflow-scheduler
sudo systemctl restart airflow-webserver
# Verificar estado de servicios
sudo systemctl status airflow-scheduler
sudo systemctl status airflow-webserver6. Métricas de Rendimiento
Tiempo de Ejecución
DAGs de Ingesta Individual:
- Tiempo promedio: 5-10 minutos por DAG
- Tiempo total del orquestador: 45-60 minutos
- Pausas entre DAGs: 2 minutos cada una
Uso de Recursos
Limpieza Automática:
- Umbral de activación: 85% de uso de disco
- Espacio liberado típico: 10-20 GB por limpieza
- Frecuencia de limpieza: Variable según uso
Tasa de Éxito
DAGs Críticos:
- orchestrator_auto_trigger: >95% de éxito
- orchestrator_incremental_id: >90% de éxito
- DAGs de ingesta individual: >85% de éxito
Alertas
- SLA Violations: Cuando un DAG excede tiempo esperado (>2 horas)
- Data Quality: Cuando se detectan anomalías en los datos (>5% variación)
- Resource Usage: Cuando uso de recursos supera umbrales (>90% memoria)
- Dependency Failures: Cuando fallan DAGs upstream
- Connection Issues: Problemas de conectividad con fuentes de datos
- Schema Changes: Cambios no esperados en esquemas de datos
Monitoreo Proactivo
Verificaciones recomendadas:
- Revisar estado general diariamente (9:00 AM)
- Verificar DAGs críticos cada 4 horas (durante horario laboral)
- Revisar logs de limpieza automática semanalmente (lunes)
- Monitorear métricas de rendimiento mensualmente (primer viernes del mes)
- Audit de conexiones y permisos (trimestral)
Consideraciones Técnicas
- El sistema de monitoreo utiliza Airflow UI nativo con extensiones personalizadas.
- Los logs se almacenan en
/opt/airflow/logscon rotación automática. - Las métricas se calculan en tiempo real basadas en el estado de los DAGs.
- El sistema de alertas se integra con canales de notificación del equipo.
- La limpieza automática previene problemas de espacio en disco.
- El monitoreo proactivo reduce el tiempo de resolución de problemas.
- Las métricas de rendimiento ayudan a optimizar la configuración del sistema.
- El troubleshooting sistemático acelera la identificación y resolución de problemas.