--- title: 'How to use Tracer with Apache Airflow' sidebarTitle: 'Apache Airflow' description: 'What DAGs does not show at runtime' --- Apache Airflow orchestrates workflows by defining Directed Acyclic Graphs (DAGs), scheduling tasks, and tracking execution state. It determines what runs and when it runs, but it does not observe how tasks behave while executing inside processes, containers, or the operating system. Tracer complements Airflow by exposing execution behavior: CPU, memory, disk, and network usage, during task execution, without changing DAG definitions or operator configuration. For a conceptual overview, see [How Tracer fits in your stack](/comparisons/overview). ## What Airflow does well Airflow provides reliable orchestration and scheduling for workflows, including: - DAG definitions and task dependencies - Scheduling, retries, and backfills - Task state, logs, and exit status - Integration with many execution backends These capabilities make Airflow effective for coordinating workflows and managing execution order. They focus on control flow and task state. ## What Airflow does not see at runtime Airflow tracks task success or failure, but it does not observe execution inside the runtime environment. It does not show: - CPU utilization during task execution - Memory pressure or over-allocation - Disk or network I/O contention - Short-lived subprocesses spawned by tasks - Idle time while tasks wait on I/O or external systems This execution behavior occurs below the DAG and operator layer and is not visible through task state or logs alone. ## Why this gap matters in practice Airflow tasks often wrap complex logic: data transformations, external tools, database queries, or containerized workloads. Resource requirements are commonly set conservatively to avoid failures. Without execution-level visibility, teams struggle to answer: - Why a task consistently runs slower than expected - Whether allocated resources are actually used - Whether performance is limited by compute, I/O, or memory - Why infrastructure cost grows even when DAGs remain unchanged As a result, workflows may be correct and stable, yet inefficient. ## What Tracer adds Tracer observes execution directly from the host and container runtime and adds: - Observed CPU, memory, disk, and network usage per task - Visibility into subprocesses and nested tools invoked by operators - Detection of stalls, idle execution, and contention - Attribution of resource usage by DAG, task, and run These insights are derived from observed execution behavior, not from task metadata or scheduling configuration.