mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-03 01:40:21 +08:00
fix(admin): 修复 usage 观测全表扫描并下推聚合查询
- 收紧 admin usage/stats 默认时间范围和 active 轮询查询 - 将 summary/records/aggregation/time-series/leaderboard 下推到 SQL 侧 - 统一前端时间参数并补齐 admin usage/stats 回归测试
This commit is contained in:
@@ -666,6 +666,68 @@ impl GatewayDataState {
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) async fn count_usage_audits(
|
||||
&self,
|
||||
query: &UsageAuditListQuery,
|
||||
) -> Result<u64, DataLayerError> {
|
||||
match &self.usage_reader {
|
||||
Some(repository) => repository.count_usage_audits(query).await,
|
||||
None => Ok(0),
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) async fn aggregate_usage_audits(
|
||||
&self,
|
||||
query: &aether_data_contracts::repository::usage::UsageAuditAggregationQuery,
|
||||
) -> Result<
|
||||
Vec<aether_data_contracts::repository::usage::StoredUsageAuditAggregation>,
|
||||
DataLayerError,
|
||||
> {
|
||||
match &self.usage_reader {
|
||||
Some(repository) => repository.aggregate_usage_audits(query).await,
|
||||
None => Ok(Vec::new()),
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) async fn summarize_usage_audits(
|
||||
&self,
|
||||
query: &aether_data_contracts::repository::usage::UsageAuditSummaryQuery,
|
||||
) -> Result<aether_data_contracts::repository::usage::StoredUsageAuditSummary, DataLayerError>
|
||||
{
|
||||
match &self.usage_reader {
|
||||
Some(repository) => repository.summarize_usage_audits(query).await,
|
||||
None => {
|
||||
Ok(aether_data_contracts::repository::usage::StoredUsageAuditSummary::default())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) async fn summarize_usage_time_series(
|
||||
&self,
|
||||
query: &aether_data_contracts::repository::usage::UsageTimeSeriesQuery,
|
||||
) -> Result<
|
||||
Vec<aether_data_contracts::repository::usage::StoredUsageTimeSeriesBucket>,
|
||||
DataLayerError,
|
||||
> {
|
||||
match &self.usage_reader {
|
||||
Some(repository) => repository.summarize_usage_time_series(query).await,
|
||||
None => Ok(Vec::new()),
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) async fn summarize_usage_leaderboard(
|
||||
&self,
|
||||
query: &aether_data_contracts::repository::usage::UsageLeaderboardQuery,
|
||||
) -> Result<
|
||||
Vec<aether_data_contracts::repository::usage::StoredUsageLeaderboardSummary>,
|
||||
DataLayerError,
|
||||
> {
|
||||
match &self.usage_reader {
|
||||
Some(repository) => repository.summarize_usage_leaderboard(query).await,
|
||||
None => Ok(Vec::new()),
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) async fn summarize_usage_daily_heatmap(
|
||||
&self,
|
||||
query: &UsageDailyHeatmapQuery,
|
||||
|
||||
Reference in New Issue
Block a user