Cheaf Docs
Data/Airflow

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

  1. Acceder a la pestaña "DAGs"
  2. 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:

  1. Indicador de estado general (esquina superior derecha)

    • Verde: Sistema operativo normal
    • Amarillo: Advertencias menores
    • Rojo: Problemas críticos
  2. Gráfico de ejecuciones (centro de la pantalla)

    • Barras verdes: Ejecuciones exitosas
    • Barras rojas: Ejecuciones fallidas
    • Altura de barras: Volumen de ejecuciones
  3. 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:

  1. Graph View: Dependencias entre tareas

    • Cajas verdes: Tareas exitosas
    • Cajas rojas: Tareas fallidas
    • Cajas amarillas: Tareas en progreso
    • Líneas: Dependencias entre tareas
  2. Tree View: Historial de ejecuciones

    • Columnas: Fechas de ejecución
    • Filas: Tareas individuales
    • Colores: Estado de cada tarea por fecha
  3. 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:

  1. Verificar ejecución cada 15 minutos
  2. Revisar logs de limpieza automática
  3. Verificar decisiones de trigger
  4. Monitorear uso de disco

orchestrator_incremental_id

Características:

  • Schedule: None (ejecutado por auto-trigger)
  • Owner: airflow
  • Tags: orchestrator, master, sequential

Monitoreo:

  1. Verificar ejecución secuencial
  2. Revisar pausas entre DAGs
  3. Monitorear tiempo total de ejecución
  4. 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:

  1. Verificar ejecución en horarios programados
  2. Revisar logs de extracción de Gmail
  3. Monitorear carga a BigQuery
  4. Verificar procesamiento de archivos Excel

4. Análisis de Logs

Acceso a Logs

  1. Hacer clic en el DAG específico
  2. Seleccionar la ejecución deseada
  3. Hacer clic en la tarea específica
  4. 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:

  1. Hacer clic en el DAG fallido
  2. Revisar la ejecución más reciente
  3. Identificar la tarea fallida (círculo rojo)
  4. Revisar logs de la tarea fallida
  5. Identificar el error específico
  6. 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:

  1. Verificar que el DAG esté activo (toggle azul)
  2. Revisar el schedule del DAG
  3. Verificar que no haya errores en el código del DAG
  4. 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:

  1. Revisar logs de auto-cleanup
  2. Verificar espacio liberado después de limpieza
  3. Monitorear DAGs que generan muchos logs
  4. 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 postgres

BigQuery 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.log

Comandos 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 -h

Comandos 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-webserver

6. 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:

  1. Revisar estado general diariamente (9:00 AM)
  2. Verificar DAGs críticos cada 4 horas (durante horario laboral)
  3. Revisar logs de limpieza automática semanalmente (lunes)
  4. Monitorear métricas de rendimiento mensualmente (primer viernes del mes)
  5. Audit de conexiones y permisos (trimestral)

Consideraciones Técnicas

  1. El sistema de monitoreo utiliza Airflow UI nativo con extensiones personalizadas.
  2. Los logs se almacenan en /opt/airflow/logs con rotación automática.
  3. Las métricas se calculan en tiempo real basadas en el estado de los DAGs.
  4. El sistema de alertas se integra con canales de notificación del equipo.
  5. La limpieza automática previene problemas de espacio en disco.
  6. El monitoreo proactivo reduce el tiempo de resolución de problemas.
  7. Las métricas de rendimiento ayudan a optimizar la configuración del sistema.
  8. El troubleshooting sistemático acelera la identificación y resolución de problemas.