Metrics
The Metrics screen answers "how is the pipeline performing?" — not in P&L terms (that is the Portfolio), but in how many runs happened and how long each stage took. It is the operational health view.
Run counters
At the top:
- Runs observed — how many pipeline runs this dashboard session has recorded.
- A breakdown by status, e.g. how many are awaiting approval, approved,
rejected, or completed.
These reset when you restart the dashboard — they count the current session only.
Per-stage timing table
One row per pipeline stage, with timing in milliseconds:
| Column | Meaning |
|---|---|
| Stage / Name | Which of the 12 stages |
| Count | How many times it ran |
| OK | How many runs of it succeeded |
| Err | How many errored (highlighted red if any) |
| Total | Cumulative time spent in that stage |
| Avg | Mean time per run |
| p50 | Median — half of runs were faster than this |
| p95 | 95th percentile — the slow tail; only 1 in 20 runs was slower |
| Max | The single slowest run |
Why p50 and p95 and not just the average? An average hides spikes. If one run in twenty stalls, the average barely moves but p95 jumps. Watching p95 catches the slow outliers that an average would smooth away.
If the table says "No runs recorded yet", just trigger a run from the Runs page.
Machine-readable formats
Two buttons next to the heading export the same data for tools and dashboards:
- JSON (
/metrics) — the raw summary as JSON. - Prometheus (
/metrics?format=prometheus) — Prometheus text exposition, ready
to scrape into Grafana or similar.
These need no token (they are read-only) and are handy if you want to chart pipeline health over time outside this UI.
When to look here
- The dashboard feels slow → check which stage's p95 is high.
- A run seemed to fail → check the Err column for the offending stage.
- Otherwise you can ignore this screen; it does not affect trading decisions.