Skip to content

Metrics dashboard#72

Draft
victor-cuevas wants to merge 2 commits intofeat/admin-portalfrom
feat/admin-metrics
Draft

Metrics dashboard#72
victor-cuevas wants to merge 2 commits intofeat/admin-portalfrom
feat/admin-metrics

Conversation

@victor-cuevas
Copy link

No description provided.

Parse Prometheus text format from proxy /metrics endpoints using expfmt, store snapshots in per-instance ring buffers (~1h retention at 10s intervals), compute per-second rates from counter deltas (handling resets), compute p50/p95/p99 from histogram buckets via linear interpolation, and expose results via REST API (GET /api/metrics/{id}, GET /api/metrics/fleet).

New admin/metrics package: parser, ring buffer, rate/percentile math, and Collector orchestrator. Poller extended to scrape /metrics on successful health probes. Fleet endpoint aggregates KPIs across instances with trend indicators vs 1h ago.
…l, and vendor charts

- Add ECharts + vue-echarts with tree-shaken imports (line chart, grid, tooltip, legend, data zoom)
- Add metrics formatting utilities (formatRps, formatLatency, formatErrorRate, formatCount, trendDirection) with 25 tests
- Add metrics Pinia store for fleet and instance metrics with 6 tests
- Add FleetKpiPanel with 4 KPI cards (RPS, error rate, connections, panics) and trend indicators
- Add instance detail view at /instances/:id with breadcrumb, status header, and Overview/Traffic tabs
- Overview tab: 5 KPI cards + P50/P95/P99 latency time-series chart
- Traffic tab: interactive vendor table with checkboxes, color dots, totals row; 3 stacked charts (RPS, Latency, Error Rate) per selected vendor
- Latency chart shows P50/P95/P99 for single vendor, P99-only for multiple (per design spec)
- Auto-select top 3 vendors by RPS, prune stale selections when vendor list changes
- Make instance cards and table rows clickable to navigate to detail view
- Add P50/P95 fields to SeriesPoint in Go backend for overview latency chart
- Escape HTML in ECharts tooltip formatters to prevent XSS via vendor IDs
- Add tabpanel ARIA roles for accessibility
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