Files
OmniRoute/src/shared/components/analytics/index.tsx
Diego Rodrigues de Sa e Souza 28fcd418a4 feat: request count log per provider, per date (#4009) (#6812)
* feat(dashboard): request count log per provider, per date (#4009)

Some providers bill by request rather than by token, so operators need
a plain per-provider, per-date request count breakdown, not just token
aggregates. Adds a new getProviderDailyUsageRows() aggregation query
(src/lib/db/usageAnalytics.ts), a dedicated GET
/api/usage/requests-by-provider-date route (kept separate from the
frozen /api/usage/analytics route to respect the file-size baseline),
and a sortable, single-date-filterable table on Dashboard -> Analytics.

Closes #4009

* chore(6812): re-sync onto release tip; CHANGELOG → changelog.d fragment (fragments-first)
2026-07-10 19:40:18 -03:00

30 lines
988 B
TypeScript

/**
* Analytics Charts — Barrel export
*
* TODO (#5): Split charts.js into individual component files:
* - StatCard.js, ActivityHeatmap.js, DailyTrendChart.js
* - AccountDonut.js, ApiKeyDonut.js, ProviderCostDonut.js
* - ApiKeyTable.js, ModelTable.js
* - WeeklyPattern.js, MostActiveDay7d.js, WeeklySquares7d.js
* - UsageDetail.js, SortIndicator.js
*/
export {
SortIndicator,
StatCard,
CompactStatGrid,
ActivityHeatmap,
ApiKeyTable,
MostActiveDay7d,
WeeklySquares7d,
ModelTable,
UsageDetail,
ProviderTable,
ServiceTierBreakdown,
} from "./charts";
export { AccountDonut, ApiKeyDonut, ProviderCostDonut } from "./rechartsDonuts";
export { DailyTrendChart, ModelOverTimeChart } from "./rechartsUsageCharts";
export { default as ApiKeyFilterDropdown } from "./ApiKeyFilterDropdown";
export { default as CustomRangePicker } from "./CustomRangePicker";
export { default as RequestCountByProviderDateTable } from "./RequestCountByProviderDateTable";