Add Metrics UI: declare metrics and view derived bucket values (ticket 012)

Replaces the Metrics ComingSoon placeholder with a form for declaring
metrics (name, message_match_regex, param matchers) and a list/detail
view of declared metrics whose bucket values refetch on selection or
active-range change (no continuous polling, since declare's backfill
already resolves synchronously with the POST).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XFUNZwCvz3kcod3352ZR2o
This commit is contained in:
Hugh Kaznowski
2026-09-05 13:18:20 +01:00
co-authored by Claude Sonnet 5
parent 57d23c62e9
commit 5974070645
3 changed files with 385 additions and 1 deletions
+2 -1
View File
@@ -4,6 +4,7 @@ import { FilterBar } from './components/FilterBar'
import { LogTimeline, type TimeRange } from './components/LogTimeline'
import { LogPreview } from './components/LogPreview'
import { ComingSoon } from './components/ComingSoon'
import { Metrics } from './components/Metrics'
import { fetchLogs, fetchStats, fetchTimeline, type LogEntry, type Stats, type TimelineBucket } from './lib/api'
const POLL_MS = 2000
@@ -52,7 +53,7 @@ export default function App() {
<FilterBar value={filter} onChange={setFilter} />
<LogTimeline buckets={buckets} range={range} onSelectRange={setRange} />
<LogPreview logs={visibleLogs} />
<ComingSoon title="Metrics" />
<Metrics range={range} />
<ComingSoon title="Dashboards" />
</div>
</div>