For a conceptual overview, see How Tracer fits in your stack.
What Dagster does well
Dagster provides strong orchestration and structure for workflows, including:- Asset and job definitions
- Dependency graphs and execution ordering
- Materialization tracking and lineage
- Run history, logs, and execution state
What Dagster does not see at runtime
Dagster tracks whether an asset or op ran and whether it succeeded, but it does not observe execution inside the runtime environment. It does not show:- CPU utilization during asset or op execution
- Memory pressure or over-allocation
- Disk and network I/O contention
- Short-lived subprocesses invoked by ops
- Idle time while code waits on I/O or external systems
Why this gap matters in practice
Dagster assets often wrap complex computations, database operations, or external tools. Resource requirements are commonly estimated conservatively to ensure successful runs. Without execution-level visibility, teams struggle to answer:- Why an asset materialization is slower than expected
- Whether allocated resources are actually used
- Whether performance is limited by compute, I/O, or memory
- Why costs increase even when workflows appear unchanged
What Tracer adds
Tracer observes execution directly from the host and container runtime and adds:- Observed CPU, memory, disk, and network usage per run and op
- Visibility into subprocesses and nested tools invoked by assets
- Detection of stalls, idle execution, and contention
- Attribution of resource usage by job, asset, and execution unit
Example: understanding slow asset materialization
A Dagster asset consistently materializes slower than expected. Logs show no errors. Tracer reveals:- Low CPU utilization
- High disk I/O wait time
- Short-lived helper processes repeatedly accessing storage
Using execution insight to tune workflows
With execution-level data, teams can make informed changes, such as:- Reducing CPU or memory allocations for underutilized assets
- Selecting instance types better suited for I/O-heavy workloads
- Separating compute-heavy and I/O-heavy assets
- Identifying ops that block on external systems
Observability comparison
This comparison highlights the difference between asset-level orchestration visibility and execution-level observation.
What Tracer does not replace
Tracer is not an orchestration framework.- It does not replace Dagster
- It does not define assets, jobs, or dependencies
- It does not modify pipeline logic or execution plans
When to use Tracer with Dagster
Tracer is most useful when teams need to:- Explain slow or inconsistent asset materializations
- Identify idle or inefficient execution within jobs
- Diagnose performance issues beyond logs and run state
- Attribute resource usage and cost to specific assets or jobs

