feat(agent): agent 0.10.0 新增资源/日志/配置回读端点,前端接入 VPS 资源与公网 Nginx 日志(v1.2.4)
agent 0.10.0:新增 GET /api/v1/metrics(资源采集,复用 internal/sysinfo;CPU 两次采样差值 + 1 秒内复用上次结果)、GET /api/v1/logs/nginx(日志尾部,路径白名单来自 nginx -T / 环境变量 / 默认目录,32KB 块倒读、单行 4KB 截断、上限 2000 行)、GET /api/v1/frps/config(frps.toml 回读,256KB 上限) internal/sysinfo:补 LoadAvg 与 UptimeSeconds(Linux /proc/loadavg 与 /proc/uptime、Windows GetTickCount64、其它平台空值) 应用侧:AgentClient 三个只读方法;request 错误改为带状态码的 statusError,新增 ErrAgentEndpointMissing,把 404/405 统一转成「agent 版本过低需 ≥ 0.10.0」提示;补 service/handler/router 前端:公网 Agent 页「VPS 资源」横排带(占满环境与依赖整行);日志中心「公网 Nginx」页签;frps 同源配置弹窗「比对 VPS 实际文件」 二进制:内嵌 fonu-agent-linux-amd64 / arm64 用新代码重编;VERSION → 1.2.4
This commit is contained in:
@@ -290,7 +290,15 @@ export const api = {
|
||||
uninstallFrpAgent: (id: number, keepData: boolean) => request<{ ok: boolean; output: string }>(`/api/frpmulti/servers/${id}/agent/uninstall?keep_data=${keepData}`, { method: 'POST' }),
|
||||
sshDiagnoseFrpAgent: (id: number) => request<{ output: string }>(`/api/frpmulti/servers/${id}/agent/ssh-diagnose`, { method: 'POST' }),
|
||||
getFrpAgentStatus: (id: number) => request<import('./types').FrpAgentStatus>(`/api/frpmulti/servers/${id}/agent/status`),
|
||||
getFrpAgentRouteDrift: (id: number) =>
|
||||
getFrpAgentMetrics: (id: number) =>
|
||||
request<import('./types').FrpAgentMetrics>(`/api/frpmulti/servers/${id}/agent/metrics`),
|
||||
getFrpAgentNginxLogs: (id: number, type: 'access' | 'error', lines = 200) =>
|
||||
request<import('./types').FrpAgentNginxLogs>(
|
||||
`/api/frpmulti/servers/${id}/agent/logs/nginx?type=${type}&lines=${lines}`,
|
||||
),
|
||||
getFrpAgentFRPSConfig: (id: number) =>
|
||||
request<import('./types').FrpAgentFRPSConfig>(`/api/frpmulti/servers/${id}/agent/frps-config`),
|
||||
getFrpAgentRouteDrift: (id: number) =>
|
||||
request<import('./types').FrpRouteDriftReport>(`/api/frpmulti/servers/${id}/agent/routes/drift`),
|
||||
redeployFrpAgentRoutes: (id: number) =>
|
||||
request<import('./types').FrpRedeployAllResult>(`/api/frpmulti/servers/${id}/agent/routes/redeploy`, {
|
||||
|
||||
@@ -736,6 +736,35 @@ export interface FrpRouteHealthSummary {
|
||||
failed_servers?: string[]
|
||||
}
|
||||
|
||||
export interface FrpAgentMetrics {
|
||||
cpu_percent: number
|
||||
mem_used_bytes: number
|
||||
mem_total_bytes: number
|
||||
disk_used_bytes: number
|
||||
disk_total_bytes: number
|
||||
disk_path?: string
|
||||
load_avg?: number[]
|
||||
uptime_seconds?: number
|
||||
checked_at: string
|
||||
}
|
||||
|
||||
export interface FrpAgentNginxLogs {
|
||||
type: 'access' | 'error'
|
||||
path: string
|
||||
lines: string[]
|
||||
truncated: boolean
|
||||
checked_at: string
|
||||
}
|
||||
|
||||
export interface FrpAgentFRPSConfig {
|
||||
path: string
|
||||
exists: boolean
|
||||
content: string
|
||||
truncated?: boolean
|
||||
mod_time?: string
|
||||
checked_at: string
|
||||
}
|
||||
|
||||
export interface FrpRouteDriftItem {
|
||||
domain: string
|
||||
kind: 'missing' | 'orphan' | 'not_loaded' | 'content_mismatch'
|
||||
|
||||
Reference in New Issue
Block a user