- ds
- Operations
- DAG runs
DAG runs
Tasks by run, coloured by state, as an orchestrator shows them.
Duration
extract_orders
extract_payments
stage_raw
dbt_staging
dbt_marts
quality_checks
load_warehouse
refresh_dashboards
notify_finance
successfailedupstream failedrunningqueuedskippedno status
Show code
<div class="runs" style="--runs:20" role="grid" aria-label="nightly_elt, last 20 runs. Run on 05 Oct failed at quality_checks.">
<div class="runs-r">
<span class="runs-head">Duration</span>
<span class="runs-dur" title="22 Sep: 42 min"><i style="--v:0.72"></i></span>
<span class="runs-dur" title="23 Sep: 44 min"><i style="--v:0.76"></i></span>
<span class="runs-dur" title="24 Sep: 43 min"><i style="--v:0.74"></i></span>
<span class="runs-dur" title="25 Sep: 36 min"><i style="--v:0.62"></i></span>
<span class="runs-dur" title="26 Sep: 40 min"><i style="--v:0.69"></i></span>
<span class="runs-dur" title="27 Sep: 39 min"><i style="--v:0.67"></i></span>
<span class="runs-dur" title="28 Sep: 37 min"><i style="--v:0.64"></i></span>
<span class="runs-dur" title="29 Sep: 44 min"><i style="--v:0.76"></i></span>
<span class="runs-dur" title="30 Sep: 43 min"><i style="--v:0.74"></i></span>
<span class="runs-dur" title="01 Oct: 42 min"><i style="--v:0.72"></i></span>
<span class="runs-dur" title="02 Oct: 39 min"><i style="--v:0.67"></i></span>
<span class="runs-dur" title="03 Oct: 43 min"><i style="--v:0.74"></i></span>
<span class="runs-dur" title="04 Oct: 41 min"><i style="--v:0.71"></i></span>
<span class="runs-dur" title="05 Oct: 26 min"><i style="--v:0.45;--c:var(--down)"></i></span>
<span class="runs-dur" title="06 Oct: 40 min"><i style="--v:0.69"></i></span>
<span class="runs-dur" title="07 Oct: 42 min"><i style="--v:0.72"></i></span>
<span class="runs-dur" title="08 Oct: 58 min"><i style="--v:1.00"></i></span>
<span class="runs-dur" title="09 Oct: 36 min"><i style="--v:0.62"></i></span>
<span class="runs-dur" title="10 Oct: 42 min"><i style="--v:0.72"></i></span>
<span class="runs-dur" title="11 Oct: 21 min"><i style="--v:0.36;--c:var(--accent)"></i></span>
</div>
<div class="runs-r">
<span class="runs-task">extract_orders</span>
<button class="rc" data-state="success" aria-label="extract_orders, 22 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 23 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 24 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 25 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 26 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 27 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 28 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 29 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 30 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 01 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 02 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 03 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 04 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 05 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 06 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 07 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 08 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 09 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 10 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_orders, 11 Oct: success"></button>
</div>
<div class="runs-r">
<span class="runs-task">extract_payments</span>
<button class="rc" data-state="success" aria-label="extract_payments, 22 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 23 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 24 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 25 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 26 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 27 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 28 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 29 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 30 Sep: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 01 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 02 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 03 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 04 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 05 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 06 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 07 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 08 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 09 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 10 Oct: success"></button>
<button class="rc" data-state="success" aria-label="extract_payments, 11 Oct: success"></button>
</div>
<div class="runs-r">
<span class="runs-task dep" style="--d:1">stage_raw</span>
<button class="rc" data-state="success" aria-label="stage_raw, 22 Sep: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 23 Sep: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 24 Sep: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 25 Sep: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 26 Sep: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 27 Sep: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 28 Sep: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 29 Sep: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 30 Sep: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 01 Oct: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 02 Oct: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 03 Oct: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 04 Oct: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 05 Oct: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 06 Oct: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 07 Oct: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 08 Oct: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 09 Oct: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 10 Oct: success"></button>
<button class="rc" data-state="success" aria-label="stage_raw, 11 Oct: success"></button>
</div>
<div class="runs-r">
<span class="runs-task dep" style="--d:1">dbt_staging</span>
<button class="rc" data-state="success" aria-label="dbt_staging, 22 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 23 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 24 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 25 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 26 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 27 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 28 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 29 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 30 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 01 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 02 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 03 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 04 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 05 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 06 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 07 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 08 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 09 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 10 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_staging, 11 Oct: success"></button>
</div>
<div class="runs-r">
<span class="runs-task dep" style="--d:2">dbt_marts</span>
<button class="rc" data-state="success" aria-label="dbt_marts, 22 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 23 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 24 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 25 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 26 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 27 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 28 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 29 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 30 Sep: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 01 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 02 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 03 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 04 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 05 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 06 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 07 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 08 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 09 Oct: success"></button>
<button class="rc" data-state="success" aria-label="dbt_marts, 10 Oct: success"></button>
<button class="rc" data-state="running" aria-label="dbt_marts, 11 Oct: running"></button>
</div>
<div class="runs-r">
<span class="runs-task dep" style="--d:2">quality_checks</span>
<button class="rc" data-state="success" aria-label="quality_checks, 22 Sep: success"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 23 Sep: success"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 24 Sep: success"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 25 Sep: success"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 26 Sep: success"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 27 Sep: success"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 28 Sep: success"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 29 Sep: success"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 30 Sep: success"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 01 Oct: success"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 02 Oct: success"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 03 Oct: success"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 04 Oct: success"></button>
<button class="rc" data-state="failed" aria-label="quality_checks, 05 Oct: failed"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 06 Oct: success"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 07 Oct: success"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 08 Oct: success"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 09 Oct: success"></button>
<button class="rc" data-state="success" aria-label="quality_checks, 10 Oct: success"></button>
<button class="rc" data-state="queued" aria-label="quality_checks, 11 Oct: queued"></button>
</div>
<div class="runs-r">
<span class="runs-task dep" style="--d:3">load_warehouse</span>
<button class="rc" data-state="success" aria-label="load_warehouse, 22 Sep: success"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 23 Sep: success"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 24 Sep: success"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 25 Sep: success"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 26 Sep: success"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 27 Sep: success"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 28 Sep: success"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 29 Sep: success"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 30 Sep: success"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 01 Oct: success"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 02 Oct: success"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 03 Oct: success"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 04 Oct: success"></button>
<button class="rc" data-state="upstream-failed" aria-label="load_warehouse, 05 Oct: upstream failed"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 06 Oct: success"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 07 Oct: success"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 08 Oct: success"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 09 Oct: success"></button>
<button class="rc" data-state="success" aria-label="load_warehouse, 10 Oct: success"></button>
<button class="rc" data-state="none" aria-label="load_warehouse, 11 Oct: none"></button>
</div>
<div class="runs-r">
<span class="runs-task dep" style="--d:4">refresh_dashboards</span>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 22 Sep: success"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 23 Sep: success"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 24 Sep: success"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 25 Sep: success"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 26 Sep: success"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 27 Sep: success"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 28 Sep: success"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 29 Sep: success"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 30 Sep: success"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 01 Oct: success"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 02 Oct: success"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 03 Oct: success"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 04 Oct: success"></button>
<button class="rc" data-state="upstream-failed" aria-label="refresh_dashboards, 05 Oct: upstream failed"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 06 Oct: success"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 07 Oct: success"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 08 Oct: success"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 09 Oct: success"></button>
<button class="rc" data-state="success" aria-label="refresh_dashboards, 10 Oct: success"></button>
<button class="rc" data-state="none" aria-label="refresh_dashboards, 11 Oct: none"></button>
</div>
<div class="runs-r">
<span class="runs-task dep" style="--d:4">notify_finance</span>
<button class="rc" data-state="success" aria-label="notify_finance, 22 Sep: success"></button>
<button class="rc" data-state="success" aria-label="notify_finance, 23 Sep: success"></button>
<button class="rc" data-state="success" aria-label="notify_finance, 24 Sep: success"></button>
<button class="rc" data-state="success" aria-label="notify_finance, 25 Sep: success"></button>
<button class="rc" data-state="success" aria-label="notify_finance, 26 Sep: success"></button>
<button class="rc" data-state="skipped" aria-label="notify_finance, 27 Sep: skipped"></button>
<button class="rc" data-state="skipped" aria-label="notify_finance, 28 Sep: skipped"></button>
<button class="rc" data-state="success" aria-label="notify_finance, 29 Sep: success"></button>
<button class="rc" data-state="success" aria-label="notify_finance, 30 Sep: success"></button>
<button class="rc" data-state="success" aria-label="notify_finance, 01 Oct: success"></button>
<button class="rc" data-state="success" aria-label="notify_finance, 02 Oct: success"></button>
<button class="rc" data-state="success" aria-label="notify_finance, 03 Oct: success"></button>
<button class="rc" data-state="skipped" aria-label="notify_finance, 04 Oct: skipped"></button>
<button class="rc" data-state="upstream-failed" aria-label="notify_finance, 05 Oct: upstream failed"></button>
<button class="rc" data-state="success" aria-label="notify_finance, 06 Oct: success"></button>
<button class="rc" data-state="success" aria-label="notify_finance, 07 Oct: success"></button>
<button class="rc" data-state="success" aria-label="notify_finance, 08 Oct: success"></button>
<button class="rc" data-state="success" aria-label="notify_finance, 09 Oct: success"></button>
<button class="rc" data-state="success" aria-label="notify_finance, 10 Oct: success"></button>
<button class="rc" data-state="none" aria-label="notify_finance, 11 Oct: none"></button>
</div>
</div>
<div class="state-key"><span><i class="rc" data-state="success"></i>success</span><span><i class="rc" data-state="failed"></i>failed</span><span><i class="rc" data-state="upstream-failed"></i>upstream failed</span><span><i class="rc" data-state="running"></i>running</span><span><i class="rc" data-state="queued"></i>queued</span><span><i class="rc" data-state="skipped"></i>skipped</span><span><i class="rc" data-state="none"></i>no status</span></div>nightly_elt over its last 20 runs: tasks down the side in dependency order, one column per run with the newest on the right. The bars on top are run durations, so a slow night stands out before you read a single cell. The run on 05 Oct failed its quality checks and everything downstream is marked upstream failed in amber, not red: those tasks did nothing wrong, they never ran. The latest run is on dbt_marts.
Reading it
- A red cell with amber after it is one failure. A column of red is an infrastructure problem.
- A horizontal run of red in one row is a task that keeps failing; check what changed on the first red day.
- Bars taller than their neighbours are retries or data spikes. The run on 08 Oct took 58 minutes after a retry of
load_warehouse.
| Class | On | What it does |
|---|---|---|
.runs | div | The grid. --runs sets the number of columns, --cell the square size (14px). Scrolls sideways if it must. |
.runs-r | div | A row with display: contents. Hovering a cell lights its task name. |
.runs-task | span | Task id in mono. .dep with --d indents it under its upstream. |
.runs-head / .runs-dur | span | The first row: a label and one duration bar per run, --v from 0 to 1, --c for failed or running. |
.rc | button, i | A cell. data-state: success, failed, upstream-failed, running (pulses), queued, skipped (hatched), none. |
.state-key | div | Legend: small .rc cells with words. |
Do
- Upstream failed in amber, so the one real failure is the only red in the column.
- Order tasks by dependency, not alphabetically.
- A label on every cell with task, date and state; it is the hover text and the screen reader text.
Don't
- Hiding skipped tasks. A weekend skip explains a missing report on Monday.
- More than about 30 runs at this cell size. Page back instead.
- Green for queued. It has not done anything yet.
Accessibility
- With
role="grid", use one tab stop and arrow keys between cells, as with the heatmap. - Running cells pulse; reduced motion stops the pulse and the accent colour remains.