Skip to content

feat: per-function execution metrics dashboard - #47

Merged
dimiro1 merged 4 commits into
mainfrom
dimiro1/function-metrics-dashboard
Jun 4, 2026
Merged

feat: per-function execution metrics dashboard#47
dimiro1 merged 4 commits into
mainfrom
dimiro1/function-metrics-dashboard

Conversation

@dimiro1

@dimiro1 dimiro1 commented Jun 4, 2026

Copy link
Copy Markdown
Owner

Adds a per-function Metrics tab showing execution count, error rate, and average/max duration trended over time, with 24h/7d/30d ranges. Metrics live in a new pre-aggregated hourly rollup table (execution_metrics, migration 000012, backfilled from existing executions) that outlives the short execution-retention window — the engine increments buckets best-effort on each run, and housekeeping prunes them per METRICS_RETENTION_DAYS (default 365). The data is exposed via a lazy GraphQL Function.metrics(from, to, granularity) field with server-computed error rate and average duration, and rendered with hand-rolled SVG components (MetricCard, BarChart, Sparkline) — no new dependencies. Also adds a command-palette entry, preview-gallery showcase, en/pt-BR translations, Go + Jasmine tests, a CONTEXT.md glossary, ADR-0014, and a README feature bullet + screenshot.

dimiro1 added 4 commits June 4, 2026 23:46
Add a Metrics tab showing execution count, error rate, and average/max
duration trended over time, backed by a pre-aggregated hourly rollup table
that outlives the short execution-retention window.

- store: execution_metrics table (migration 000012) with SQL backfill from
  existing executions; IncrementMetricBucket / GetFunctionMetrics /
  DeleteOldMetricBuckets on both the SQLite and in-memory stores
- engine: best-effort hourly bucket increment on execution completion
- housekeeping: METRICS_RETENTION_DAYS cleanup pass (default 365)
- graphql: lazy Function.metrics(from, to, granularity) with server-computed
  error rate and average duration
- frontend: Metrics tab with hand-rolled SVG components (MetricCard, BarChart,
  Sparkline), command-palette entry, preview gallery, i18n (en/pt-BR)
- docs: CONTEXT.md glossary, ADR-0014, README feature bullet + screenshot

No new dependencies.
…meout

The first scenario (alphabetically connected_clients) launched headless
Chrome lazily inside its own 90s browserTimeout; on slow CI runners the
cold start alone exceeded the budget, failing the sign-in step with
"context deadline exceeded". Launch the browser once in a BeforeSuite
hook, outside any scenario's timeout, so no scenario pays the cold start.
@dimiro1
dimiro1 merged commit c395ad3 into main Jun 4, 2026
2 checks passed
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