feat(access-logs): 重构访问日志为概览与明细双 Tab

新增访问日志概览 API 与前端页面:汇总请求量/访问量/带宽趋势与 Top 排行,
明细列表保留检索;排行榜改为紧凑列表样式。
This commit is contained in:
ryan
2026-07-18 20:58:03 +08:00
parent 4c0c389122
commit 177578ef4e
24 changed files with 1546 additions and 1419 deletions
+1
View File
@@ -254,6 +254,7 @@ export type {
OriginItem,
OriginDetail,
AccessLogList,
AccessLogOverview,
OptionItem,
GeoIPLookupResult,
DatabaseCleanupResult,
@@ -8,6 +8,8 @@ import type {
AccessLogIPTrend,
AccessLogIPTrendFilters,
AccessLogList,
AccessLogOverview,
AccessLogOverviewFilters,
FoldedAccessLogFilters,
FoldedAccessLogIPFilters,
FoldedAccessLogIPList,
@@ -32,6 +34,12 @@ export class AccessLogService extends OpenFlareBaseService {
return this.get<AccessLogList>('/', buildSearchParams(filters));
}
static getOverview(
filters: AccessLogOverviewFilters = {},
): Promise<AccessLogOverview> {
return this.get<AccessLogOverview>('/overview', buildSearchParams(filters));
}
static listFolds(
filters: FoldedAccessLogFilters,
): Promise<FoldedAccessLogList> {
+3
View File
@@ -89,6 +89,9 @@ export type {
AccessLogIPTrendFilters,
AccessLogItem,
AccessLogList,
AccessLogOverview,
AccessLogOverviewFilters,
AccessLogOverviewMetricPoint,
FoldedAccessLogFilters,
FoldedAccessLogIPFilters,
FoldedAccessLogIPList,
+29
View File
@@ -500,6 +500,35 @@ export interface AccessLogFilters {
sort_order?: 'asc' | 'desc';
}
export interface AccessLogOverviewFilters {
node_id?: string;
host?: string;
hours?: number;
}
export interface AccessLogOverviewMetricPoint {
bucket_started_at: string;
value: number;
}
export interface AccessLogOverview {
generated_at: string;
hours: number;
summary: {
total_requests: number;
total_visits: number;
bandwidth_served: number;
};
trends: {
requests: AccessLogOverviewMetricPoint[];
visits: AccessLogOverviewMetricPoint[];
bandwidth: AccessLogOverviewMetricPoint[];
};
top_paths: DistributionItem[];
top_hosts: DistributionItem[];
top_ips: DistributionItem[];
}
export interface AccessLogItem {
id: string;
node_id: string;