feat(access-logs): 明细详情支持 IP 分析与 URL Tab 记忆

- 新增单 IP 分析接口,趋势时间范围支持至 30 天
- 明细详情弹窗展示趋势、汇总与 Top 分布,可快捷管理 IP 组
- 访问日志页签改为 URL 参数记忆,筛选后保持当前 Tab
This commit is contained in:
ryan
2026-07-18 22:40:21 +08:00
parent bf71bc540b
commit 9aec984bee
13 changed files with 1443 additions and 86 deletions
@@ -3,6 +3,8 @@ import type {
AccessLogCleanupPayload,
AccessLogCleanupResult,
AccessLogFilters,
AccessLogIPAnalysis,
AccessLogIPAnalysisFilters,
AccessLogIPSummaryFilters,
AccessLogIPSummaryList,
AccessLogIPTrend,
@@ -73,6 +75,15 @@ export class AccessLogService extends OpenFlareBaseService {
);
}
static getIPAnalysis(
filters: AccessLogIPAnalysisFilters,
): Promise<AccessLogIPAnalysis> {
return this.get<AccessLogIPAnalysis>(
'/ip-summary/analysis',
buildSearchParams(filters),
);
}
static cleanup(
payload: AccessLogCleanupPayload,
): Promise<AccessLogCleanupResult> {
+2
View File
@@ -82,6 +82,8 @@ export type {
AccessLogCleanupPayload,
AccessLogCleanupResult,
AccessLogFilters,
AccessLogIPAnalysis,
AccessLogIPAnalysisFilters,
AccessLogIPSummaryFilters,
AccessLogIPSummaryItem,
AccessLogIPSummaryList,
+27
View File
@@ -653,6 +653,33 @@ export interface AccessLogIPTrend {
points: AccessLogIPTrendPoint[];
}
export interface AccessLogIPAnalysisFilters {
node_id?: string;
remote_addr: string;
host?: string;
hours?: number;
}
export interface AccessLogIPAnalysis {
remote_addr: string;
hours: number;
generated_at: string;
summary: {
total_requests: number;
error_count: number;
bandwidth_served: number;
bytes_received: number;
unique_hosts: number;
unique_paths: number;
};
top_paths: DistributionItem[];
top_hosts: DistributionItem[];
status_codes: DistributionItem[];
top_user_agents: DistributionItem[];
device_types: DistributionItem[];
top_browsers: DistributionItem[];
}
export interface AccessLogCleanupPayload {
retention_days: number;
}