How bugwz/aimeter works
AIMeter is a self-hosted dashboard for managing AI provider credentials and viewing quota and usage trends. The main workflow runs from a user through the React app and API to provider-specific usage retrieval, then stores snapshots for dashboard and history views. Settings and endpoint/proxy APIs are additional capabilities; bootstrap, authentication, scheduled refresh, audit logging, and multiple database engines support the service. The README documents these capabilities, while sampled source excerpts provide only partial wiring, so uncertain route-to-service links are omitted.
Main entry points: ApiService.ts API client · app.ts Express API · ProviderUsageService.ts Usage service · ProviderRefreshService.ts Provider refresh
Components 24
Dashboard frontend
- React app
src/App.tsx - API client
src/services/ApiService.ts - Usage dashboard
src/components/dashboard/Dashboard.tsx - Usage history
src/components/history/History.tsx - Settings
src/components/settings/Settings.tsx - Endpoint page
src/components/endpoint/Endpoint.tsx
API and jobs
- Express API
server/app.ts - Provider routes
server/routes/providers.ts - History routes
server/routes/history.ts - Endpoint and proxy
server/routes/endpoint.ts - Authentication
server/routes/auth.ts - Scheduled jobs
server/routes/jobs.ts
Provider integration
- Provider refresh
server/services/ProviderRefreshService.ts - Usage service
server/services/ProviderUsageService.ts - Adapter registry
src/adapters/registry.ts - Provider adapters
src/adapters/index.ts
Persistence
- Storage facade
server/storage.ts - Database access
server/database.ts - SQL engine
server/db/sql-engine.ts - Database engines
server/db/engine.ts
Other components
- User
- AI provider APIs
- Configured database
- Cron trigger
Connections 24
- User → React app: uses
- React app → API client: requests
- API client → Express API: calls API
- Express API → Provider routes: routes requests
- Express API → History routes: routes requests
- Express API → Endpoint and proxy: routes requests
- Express API → Authentication: routes requests
- Provider routes → Provider refresh: refreshes usage
- Provider refresh → Usage service: fetches usage
- Usage service → Adapter registry: selects adapter
- Adapter registry → Provider adapters: resolves adapter
- Provider adapters → AI provider APIs: fetches usage
- Usage service → Storage facade: records snapshots
- History routes → Storage facade: reads history
- Storage facade → Database access: delegates storage
- Database access → SQL engine: uses engine
- SQL engine → Database engines: implements
- Database engines → Configured database: reads and writes
- Usage dashboard → API client: requests data
- Usage history → API client: requests history
- Settings → API client: requests settings
- Endpoint page → API client: requests endpoint
- Cron trigger → Scheduled jobs: triggers refresh
- Scheduled jobs → Provider refresh: dispatches refresh