mirror of
https://github.com/fawney19/Aether.git
synced 2026-01-10 03:32:26 +08:00
feat: 添加缓存监控和使用量统计 API 端点
This commit is contained in:
@@ -121,6 +121,18 @@ async def get_my_active_requests(
|
||||
return await pipeline.run(adapter=adapter, http_request=request, db=db, mode=adapter.mode)
|
||||
|
||||
|
||||
@router.get("/usage/interval-timeline")
|
||||
async def get_my_interval_timeline(
|
||||
request: Request,
|
||||
hours: int = Query(168, ge=1, le=720, description="分析最近多少小时的数据"),
|
||||
limit: int = Query(1000, ge=100, le=5000, description="最大返回数据点数量"),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
"""获取当前用户的请求间隔时间线数据,用于散点图展示"""
|
||||
adapter = GetMyIntervalTimelineAdapter(hours=hours, limit=limit)
|
||||
return await pipeline.run(adapter=adapter, http_request=request, db=db, mode=adapter.mode)
|
||||
|
||||
|
||||
@router.get("/providers")
|
||||
async def list_available_providers(request: Request, db: Session = Depends(get_db)):
|
||||
adapter = ListAvailableProvidersAdapter()
|
||||
@@ -676,6 +688,27 @@ class GetActiveRequestsAdapter(AuthenticatedApiAdapter):
|
||||
return {"requests": requests}
|
||||
|
||||
|
||||
@dataclass
|
||||
class GetMyIntervalTimelineAdapter(AuthenticatedApiAdapter):
|
||||
"""获取当前用户的请求间隔时间线适配器"""
|
||||
|
||||
hours: int
|
||||
limit: int
|
||||
|
||||
async def handle(self, context): # type: ignore[override]
|
||||
db = context.db
|
||||
user = context.user
|
||||
|
||||
result = UsageService.get_interval_timeline(
|
||||
db=db,
|
||||
hours=self.hours,
|
||||
limit=self.limit,
|
||||
user_id=str(user.id),
|
||||
)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
class ListAvailableProvidersAdapter(AuthenticatedApiAdapter):
|
||||
async def handle(self, context): # type: ignore[override]
|
||||
from sqlalchemy.orm import selectinload
|
||||
|
||||
Reference in New Issue
Block a user