Skip to content

Native operator dashboard, so Waterline's landing page loads - #584

Merged
rmcdaniel merged 2 commits into
rust-325-operator-metricsfrom
rust-325-operator-dashboard
Oct 21, 2026
Merged

rmcdaniel merged 2 commits into
rust-325-operator-metricsfrom
rust-325-operator-dashboard

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

Part of #325. Stacked on #562 (operator metrics); retargets to main once #562 merges.

Waterline 2.12.0's landing page calls /waterline/api/stats, which reads the server's bounded operator dashboard. On native that endpoint answered 501, so the page didn't load.

What changes

Native serves admin-only GET /api/system/operator-dashboard and /bounded, in the default or a named namespace. Both follow the rules of Workflow 2.5.5's OperatorDashboardSummary over the run summaries:

  • flow counts and rate, current running and failed runs, and closed counts for the last hour, day and week;
  • the longest open wait, the longest duration and the most exceptions, as summary rows with the model's casts and appends;
  • the week's ten busiest workflow types, with pass rate, error count, status breakdown and the upper-middle duration;
  • PHP's attention alerts over workers and run summaries;
  • hourly completed and failed counts for the last 169 hours;
  • the operator metrics snapshot from Serve operator metrics and health natively #562. The bounded variant marks the history audits as not requested and reports capacity evidence unavailable.

/bounded/workflow-types applies PHP's workflow_types validation, then answers PHP's 501 backend_capability_unavailable for an observer that can't filter by type. Native doesn't advertise workflow_type_dashboard_summary, so Waterline doesn't call it. Published PHP 2.5.14 does answer it with filtered totals; porting that filter is a follow-up.

Verification

  • New operator_dashboard integration tests pass on SQLite, PostgreSQL and MySQL. The full native suite passes on SQLite.
  • With identical seeds, Waterline's stats from native and from published PHP 2.5.14 differ only in identifiers, timings and durations, summary history_size_bytes (a known difference, see the port log) and sort-key precision. Native counted one run fewer until Project run summaries for open schedule-started runs #582.

The port log has the checkpoint.

🤖 Generated with Claude Code

rmcdaniel and others added 2 commits October 21, 2026 11:08
Native answers /api/system/operator-dashboard and /bounded from the run
summaries by OperatorDashboardSummary's rules. The workflow-type variant
validates its list, then answers PHP's 501 for an observer that cannot
filter by type.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rmcdaniel
rmcdaniel merged commit 71d3741 into rust-325-operator-metrics Oct 21, 2026
4 of 5 checks passed
@rmcdaniel
rmcdaniel deleted the rust-325-operator-dashboard branch October 21, 2026 11:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant