feat(metrics): Implement dashboard metrics API and integrate metrics chart components

This commit is contained in:
Abhimanyu Saharan
2026-02-04 20:49:25 +05:30
parent c3357f92d9
commit 8a41ba3f77
10 changed files with 1393 additions and 20 deletions

View File

@@ -1,6 +1,7 @@
from app.schemas.activity_events import ActivityEventRead
from app.schemas.agents import AgentCreate, AgentRead, AgentUpdate
from app.schemas.boards import BoardCreate, BoardRead, BoardUpdate
from app.schemas.metrics import DashboardMetrics
from app.schemas.tasks import TaskCreate, TaskRead, TaskUpdate
from app.schemas.users import UserCreate, UserRead, UserUpdate
@@ -12,6 +13,7 @@ __all__ = [
"BoardCreate",
"BoardRead",
"BoardUpdate",
"DashboardMetrics",
"TaskCreate",
"TaskRead",
"TaskUpdate",

View File

@@ -0,0 +1,57 @@
from __future__ import annotations
from datetime import datetime
from typing import Literal
from sqlmodel import SQLModel
class DashboardSeriesPoint(SQLModel):
period: datetime
value: float
class DashboardWipPoint(SQLModel):
period: datetime
inbox: int
in_progress: int
review: int
class DashboardRangeSeries(SQLModel):
range: Literal["24h", "7d"]
bucket: Literal["hour", "day"]
points: list[DashboardSeriesPoint]
class DashboardWipRangeSeries(SQLModel):
range: Literal["24h", "7d"]
bucket: Literal["hour", "day"]
points: list[DashboardWipPoint]
class DashboardSeriesSet(SQLModel):
primary: DashboardRangeSeries
comparison: DashboardRangeSeries
class DashboardWipSeriesSet(SQLModel):
primary: DashboardWipRangeSeries
comparison: DashboardWipRangeSeries
class DashboardKpis(SQLModel):
active_agents: int
tasks_in_progress: int
error_rate_pct: float
median_cycle_time_hours_7d: float | None
class DashboardMetrics(SQLModel):
range: Literal["24h", "7d"]
generated_at: datetime
kpis: DashboardKpis
throughput: DashboardSeriesSet
cycle_time: DashboardSeriesSet
error_rate: DashboardSeriesSet
wip: DashboardWipSeriesSet