mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-09 02:47:45 +08:00
feat(stats): 新增聚合读路径与回填机制并重构 dashboard/usage 读取链路
- 新增 stats_user_summary 及 user_daily_provider/api_format/cost_savings 等聚合表 - 扩展 stats_daily/hourly 有效 token 与响应时间等字段,maintenance runtime 同步写入 - 新增 backfill 模块与 --apply-backfills 命令补齐历史聚合数据 - 重写 dashboard_filters、usage_heatmap、user_rollups 查询改走聚合表 - 同步更新 baseline_v2.sql 与 migration 集,README/dev.sh 补充回填用法
This commit is contained in:
@@ -165,9 +165,9 @@ pub(super) async fn run_wallet_daily_usage_aggregation_once(
|
||||
|
||||
pub(super) async fn run_stats_aggregation_once(
|
||||
data: &GatewayDataState,
|
||||
) -> Result<(), DataLayerError> {
|
||||
) -> Result<bool, DataLayerError> {
|
||||
let Some(summary) = perform_stats_aggregation_once(data).await? else {
|
||||
return Ok(());
|
||||
return Ok(false);
|
||||
};
|
||||
|
||||
info!(
|
||||
@@ -183,7 +183,7 @@ pub(super) async fn run_stats_aggregation_once(
|
||||
user_rows = summary.user_rows,
|
||||
"gateway aggregated daily stats tables"
|
||||
);
|
||||
Ok(())
|
||||
Ok(true)
|
||||
}
|
||||
|
||||
pub(super) async fn run_usage_cleanup_once(data: &GatewayDataState) -> Result<(), DataLayerError> {
|
||||
@@ -248,9 +248,9 @@ pub(super) async fn run_pending_cleanup_once(
|
||||
|
||||
pub(super) async fn run_stats_hourly_aggregation_once(
|
||||
data: &GatewayDataState,
|
||||
) -> Result<(), DataLayerError> {
|
||||
) -> Result<bool, DataLayerError> {
|
||||
let Some(summary) = perform_stats_hourly_aggregation_once(data).await? else {
|
||||
return Ok(());
|
||||
return Ok(false);
|
||||
};
|
||||
|
||||
info!(
|
||||
@@ -260,11 +260,12 @@ pub(super) async fn run_stats_hourly_aggregation_once(
|
||||
hour_utc = %summary.hour_utc,
|
||||
total_requests = summary.total_requests,
|
||||
user_rows = summary.user_rows,
|
||||
user_model_rows = summary.user_model_rows,
|
||||
model_rows = summary.model_rows,
|
||||
provider_rows = summary.provider_rows,
|
||||
"gateway aggregated stats hourly tables"
|
||||
);
|
||||
Ok(())
|
||||
Ok(true)
|
||||
}
|
||||
|
||||
pub(super) async fn run_provider_checkin_once(state: &AppState) -> Result<(), GatewayError> {
|
||||
|
||||
Reference in New Issue
Block a user