feat(access-logs): 接入 User-Agent 与设备/浏览器/状态码分布

- Agent 访问日志上报 user_agent,OpenResty log_format 输出 http_user_agent
- of_node_access_logs 新增 user_agent 列并写入 ClickHouse
- 访问日志概览新增:设备类型饼图、状态码饼图、浏览器/OS/User-Agent 排行
- 日志明细列表增加 User-Agent 列
- 扩展 UA 解析工具(browser/os/device)并支持 CLI 识别
This commit is contained in:
ryan
2026-07-18 21:18:59 +08:00
parent 177578ef4e
commit e49078ac3b
28 changed files with 498 additions and 62 deletions
+1
View File
@@ -24,6 +24,7 @@ sidebar: false
### 变更
- 访问日志页面重构为「概览」与「日志明细」两个标签页:概览展示请求量、访问量、带宽趋势与 Top Paths/Hosts/IPs,明细列表保留检索能力;已移除时间折叠与 IP 汇总视图。
- 边缘访问日志现支持上报并存储 User-Agent;概览新增设备类型饼图,以及浏览器、操作系统、User-Agent 排行。
## [v3.4.0] - 2026-07-18
+36
View File
@@ -14325,6 +14325,9 @@ const docTemplate = `{
},
"status_code": {
"type": "integer"
},
"user_agent": {
"type": "string"
}
}
},
@@ -16232,15 +16235,33 @@ const docTemplate = `{
"observability.AccessLogOverview": {
"type": "object",
"properties": {
"device_types": {
"type": "array",
"items": {
"$ref": "#/definitions/observability.DistributionItem"
}
},
"generated_at": {
"type": "string"
},
"hours": {
"type": "integer"
},
"status_codes": {
"type": "array",
"items": {
"$ref": "#/definitions/observability.DistributionItem"
}
},
"summary": {
"$ref": "#/definitions/observability.AccessLogOverviewSummary"
},
"top_browsers": {
"type": "array",
"items": {
"$ref": "#/definitions/observability.DistributionItem"
}
},
"top_hosts": {
"type": "array",
"items": {
@@ -16253,12 +16274,24 @@ const docTemplate = `{
"$ref": "#/definitions/observability.DistributionItem"
}
},
"top_operating_systems": {
"type": "array",
"items": {
"$ref": "#/definitions/observability.DistributionItem"
}
},
"top_paths": {
"type": "array",
"items": {
"$ref": "#/definitions/observability.DistributionItem"
}
},
"top_user_agents": {
"type": "array",
"items": {
"$ref": "#/definitions/observability.DistributionItem"
}
},
"trends": {
"$ref": "#/definitions/observability.AccessLogOverviewTrends"
}
@@ -16341,6 +16374,9 @@ const docTemplate = `{
},
"status_code": {
"type": "integer"
},
"user_agent": {
"type": "string"
}
}
},
+36
View File
@@ -14318,6 +14318,9 @@
},
"status_code": {
"type": "integer"
},
"user_agent": {
"type": "string"
}
}
},
@@ -16225,15 +16228,33 @@
"observability.AccessLogOverview": {
"type": "object",
"properties": {
"device_types": {
"type": "array",
"items": {
"$ref": "#/definitions/observability.DistributionItem"
}
},
"generated_at": {
"type": "string"
},
"hours": {
"type": "integer"
},
"status_codes": {
"type": "array",
"items": {
"$ref": "#/definitions/observability.DistributionItem"
}
},
"summary": {
"$ref": "#/definitions/observability.AccessLogOverviewSummary"
},
"top_browsers": {
"type": "array",
"items": {
"$ref": "#/definitions/observability.DistributionItem"
}
},
"top_hosts": {
"type": "array",
"items": {
@@ -16246,12 +16267,24 @@
"$ref": "#/definitions/observability.DistributionItem"
}
},
"top_operating_systems": {
"type": "array",
"items": {
"$ref": "#/definitions/observability.DistributionItem"
}
},
"top_paths": {
"type": "array",
"items": {
"$ref": "#/definitions/observability.DistributionItem"
}
},
"top_user_agents": {
"type": "array",
"items": {
"$ref": "#/definitions/observability.DistributionItem"
}
},
"trends": {
"$ref": "#/definitions/observability.AccessLogOverviewTrends"
}
@@ -16334,6 +16367,9 @@
},
"status_code": {
"type": "integer"
},
"user_agent": {
"type": "string"
}
}
},
+24
View File
@@ -673,6 +673,8 @@ definitions:
type: integer
status_code:
type: integer
user_agent:
type: string
type: object
github_com_Rain-kl_Wavelet_pkg_protocol.NodeEdgeHealth:
properties:
@@ -1939,12 +1941,24 @@ definitions:
type: object
observability.AccessLogOverview:
properties:
device_types:
items:
$ref: '#/definitions/observability.DistributionItem'
type: array
generated_at:
type: string
hours:
type: integer
status_codes:
items:
$ref: '#/definitions/observability.DistributionItem'
type: array
summary:
$ref: '#/definitions/observability.AccessLogOverviewSummary'
top_browsers:
items:
$ref: '#/definitions/observability.DistributionItem'
type: array
top_hosts:
items:
$ref: '#/definitions/observability.DistributionItem'
@@ -1953,10 +1967,18 @@ definitions:
items:
$ref: '#/definitions/observability.DistributionItem'
type: array
top_operating_systems:
items:
$ref: '#/definitions/observability.DistributionItem'
type: array
top_paths:
items:
$ref: '#/definitions/observability.DistributionItem'
type: array
top_user_agents:
items:
$ref: '#/definitions/observability.DistributionItem'
type: array
trends:
$ref: '#/definitions/observability.AccessLogOverviewTrends'
type: object
@@ -2011,6 +2033,8 @@ definitions:
type: string
status_code:
type: integer
user_agent:
type: string
type: object
observability.CapacityTrendPoint:
properties: