dushixiang
07bce71bbe
fix: clean up agent data on uninstall
2026-07-12 21:38:47 +08:00
dushixiang
3c4f978395
Refactor agent metrics collection and delivery
2026-07-12 21:00:04 +08:00
dushixiang
828c0b54ca
Remove agent metrics buffer
2026-07-08 22:33:43 +08:00
dushixiang and Claude Opus 4.7
fe388df67d
Windows 下 ICMP 探测改用 ping.exe,避开 raw socket 权限限制
...
pro-bing 在 Windows 上必须 SetPrivileged(true) 走原始套接字,普通账号
没有权限会直接失败。按平台拆分实现:unix 继续走 pro-bing,windows 调
系统 ping 并以 TTL= 作为跨语言锚点解析输出;同时校验 target 防止被
ping.exe 当作 flag 解析。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-06 23:39:40 +08:00
dushixiang and Claude Opus 4.7
c431f300bc
新增实时监控模式,agent 1s 并行采集 + 前端滑动窗口
...
agent
- 移除 collector.interval 配置项;按指标类型内置节奏:cpu/memory/network/
disk_io/gpu/network_connection 1s,temperature 5s,disk 30s,host 60s
- doCollectAndSend 改为并行执行本 tick 到期的采集器,避免串行累计耗时
超过 1s 节奏;每个 goroutine 加 recover 兜底,单点 panic 不拖垮整 tick
server
- LatestMetrics 加 sync.RWMutex + Update/Snapshot 方法,HandleMetricData
所有写入走 Update;GetLatestMetrics 返回 Snapshot,handler 在副本上
sanitize,修复 marshal 时与 ws 写入的 data race(go test -race 验证)
- HandleMetricData defer Set 缓存项,每次上报刷新 TTL;host case 也走
Update,不再 1 小时后失效
- LatestMetrics.Timestamp 用服务端 time.Now(),agent 时钟倒拨不会冻结
前端实时图;Timestamp/DiskIOSummary 字段补到 LatestMetrics
- AutoStep 新增 r ≤ 5m → 1s 档;timeRangeMilliseconds 加 2m
frontend
- 详情页加"实时"档位(默认),1s 拉 latestMetrics + 1m 历史播种 + 滑动
2 分钟窗口;快图表(CPU/Memory/Network/DiskIO/NetworkConnection)走
useLiveBuffer 追加,慢图表(GPU/Temperature/Monitor)保留 refetch
- useLiveBuffer:seed 不再覆盖已追加的 livePoint;resetKey 处理切网卡 /
切 agent 时的语义复位
- formatChartTime live 档位精确到秒;修复 1d/24h 仅显示 HH:mm 跨夜歧义
- 慢图表用 React.memo,阻断 1Hz 节奏的级联重渲染
- GpuChart 修复 utilization/temperature 时间戳错位时温度点丢失
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-06 23:18:50 +08:00
dushixiang
e115d828ab
重构数据采集打包,修改为统一打包发送
2026-05-05 17:46:32 +08:00
yumusb
cfde75e21e
fix: 磁盘采集支持多硬盘,修复只采集系统盘的问题
...
- 默认采集所有真实存储设备而非仅根分区
- 通过设备路径白名单识别真实磁盘(块设备/网络存储)
- 排除 tmpfs、proc、cgroup 等虚拟文件系统
- 排除 macOS APFS 冗余系统卷(Preboot/VM/Update 等)
2026-04-30 14:37:58 +08:00
yumusb and Claude Opus 4.7
c2e64804f3
fix: GPU 采集器 nvidia-smi 调用添加 15 秒超时
...
nvidia-smi 在 GPU 驱动异常时可能无限挂起,导致整个 metricsLoop 卡死。
使用 exec.CommandContext 为 initStatic 和 collectDynamic 中的 nvidia-smi
调用添加 15 秒超时保护。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-20 14:43:16 +08:00
yumusb and Claude Opus 4.7
e0c9fc5b25
fix: 修复 Agent 卡死不触发重连的问题
...
Agent 在连接断开后完全卡死 17 小时,根因分析如下:
1. 并发写竞争:pingLoop 直接使用 rawConn.WriteControl 与 metricsLoop
的 safeConn.WriteJSON 竞争同一个 gorilla websocket 内部锁
2. 连接写失败被吞掉:outboundWriter.WriteJSON 写失败时返回 nil,
metricsLoop 感知不到连接错误,不会触发重连
3. 采集器无超时保护:任何采集器阻塞都会冻结整个 metricsLoop
修复:
- safeConn 新增 WriteControl 方法,pingLoop 改用 safeConn 写入
- outboundWriter.WriteJSON 写失败时返回真实错误
- collectAndSendAllMetrics 增加 30 秒全局超时保护
- 连接写失败视为连接异常,返回错误触发重连
- 新增采集耗时监控日志(耗时超过 500ms 时记录)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-20 14:43:06 +08:00
yumusb and Claude Opus 4.6
ab22f9bd57
fix: 修复指标采集空数据时误报0%的问题
...
当磁盘或网卡采集不到有效数据时,空列表会被写入缓存导致
磁盘占用率和网络流量显示为0%,与真实值混淆。
修复方案:
- Agent端:空列表不发送,与GPU/温度采集器保持一致
- Server端:空数据时跳过缓存更新,保留上一次有效值
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 20:30:54 +08:00
yumusb and Claude Opus 4.6
e91d1a106b
fix: Agent 安装时自动清理已存在的旧服务
...
重新安装 Agent 时如果服务已存在会报错
"Init already exists: /etc/systemd/system/pika-agent.service"
修改 Install() 方法,判断错误类型:
- 如果是"服务已存在"错误,先停止卸载旧服务再重装
- 其他错误(如权限不足)直接返回
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-10 16:42:08 +08:00
yumusb
35becefe1e
Support metric bundles and enable WS compression
...
Add support for bundling metrics and enable WebSocket compression. Introduces protocol.BundlePayload and MessageTypeBundle, and handles bundled messages on the server side (handleBundleMessage) by iterating items and forwarding each to metricService.HandleMetricData. On the agent side, add bundleWriter to collect outgoing MetricsPayloads, switch collectors to write into the bundle writer, and send a single bundle message when items exist. Also enable compression on the WebSocket upgrader and create a custom websocket.Dialer (with Proxy, HandshakeTimeout and EnableCompression). Minor logging/messages and import adjustments included.
2026-04-08 11:26:00 +08:00
dushixiang
1a64b27af6
移除原心跳配置和业务,改为使用 WebSocket Ping Pong 实现,并增加超时逻辑
2026-02-25 14:11:22 +08:00
dushixiang
0032e42905
优化探针重连逻辑
2026-02-24 19:48:28 +08:00
dushixiang
d40fc1314f
1. 修改注册探针的服务端地址为手动填写
...
2. 优化 Linux 系统服务模板
3. 优化首页流量展示方式
2026-02-10 19:56:46 +08:00
dushixiang
31619096b8
修改所有上报断线缓存 + 最多保留 24 小时
2026-02-07 20:15:40 +08:00
dushixiang
e82046ac89
强完善默认的虚拟网卡过滤规则 fix #64
2026-02-07 15:30:30 +08:00
Hoin
71df7fb583
fix(agent): 排除 tap 开头的虚拟接口以避免误采集
...
在默认网络接口排除规则和示例配置中添加对 tap 开头接口的排除,这些是 PVE/KVM 虚拟机使用的虚拟网卡,不应纳入网络指标采集范围。
2026-01-31 11:04:43 +08:00
yumusb
1ef4a7d2f7
兼容 ubuntu 系的 计划任务采集、ssh登录日志的解析
2026-01-20 19:22:47 +08:00
dushixiang
be54ef2d31
增加公网 IP 采集和网卡 IP 展示
2026-01-17 16:24:59 +08:00
榆木
9ae1fea7d8
下载地址增加 key 认证
...
agent二进制下载地址增加 key 认证,防止刷流量
2026-01-11 19:19:58 +08:00
榆木
fd7a083139
网卡IP采集过滤本地单播地址
...
网卡IP采集过滤本地单播地址,例如 fe80::f816:3eff:fe68:fb57/64、fe80::5054:ff:fe74:1d69/64 等
2026-01-11 17:55:49 +08:00
dushixiang
602a36df01
移除 SSH 登录事件中的登录方法字段
2026-01-11 10:14:48 +08:00
dushixiang
ede5cc4f36
替换 ssh 登录事件采集为 unixgram 通信
2026-01-10 22:44:10 +08:00
dushixiang
c064d86c68
升级 bolt 为 etcd 版本
2026-01-10 22:09:43 +08:00
dushixiang
e7981bb69e
移除遗留的 HostMetric 相关代码
2026-01-10 10:53:45 +08:00
dushixiang
1ffa20045c
增加 agent 数据缓存功能,避免长时间连不上服务端导致数据丢失。
2026-01-09 22:28:56 +08:00
dushixiang
3cf4d7e5a9
优化目录保护
2026-01-09 21:53:44 +08:00
dushixiang
911c105414
调整目录保护功能和 SSH 登录监控
2026-01-05 21:44:20 +08:00
dushixiang
7386c6e8dd
完成 SSH 登录监控
2026-01-03 12:01:49 +08:00
dushixiang
9d14a8cba5
增加 SSH 登录监控
2026-01-03 11:05:23 +08:00
dushixiang
81691fb864
修复 Linux 环境下探针重启时间过长的问题
2025-12-30 20:45:12 +08:00
dushixiang
6c499e2464
修改客户端日志为 slog
2025-12-30 20:00:35 +08:00
dushixiang
b946dea662
增加 id 迁移的补丁
2025-12-25 23:02:29 +08:00
dushixiang
6695f6e4a6
增加 id 迁移的补丁
2025-12-25 22:55:25 +08:00
dushixiang
502de9d816
优化探针卸载&服务端删除探针自动卸载自身
2025-12-25 19:24:59 +08:00
dushixiang
7944fb09dc
优化探针获取 home 目录
2025-12-25 19:12:40 +08:00
dushixiang
53c771d965
优化代码
2025-12-14 22:17:39 +08:00
dushixiang
74179374df
优化代码
2025-12-14 21:15:11 +08:00
dushixiang
21d5c7a717
完成服务监控后端重构
2025-12-13 11:55:31 +08:00
dushixiang
f95b75b832
重构服务监控数据
2025-12-12 23:24:43 +08:00
dushixiang
9c644bb5b5
切换时序数据存储为victoriametrics
2025-12-12 21:37:58 +08:00
yii
3c99526fc6
修复部分设备读取温度失败导致的忽略全部设备温度问题
2025-12-09 16:21:45 +08:00
yii
524dbe65e6
新增NPU温度识别
2025-12-09 16:13:31 +08:00
yii
c7da186eef
修复探针温度类型识别错误
2025-12-09 15:59:25 +08:00
dushixiang
93fb4fc29f
优化服务监控,修复修改探针范围无效的问题
2025-12-07 18:11:15 +08:00
dushixiang
d296b781ac
修复Windows环境下磁盘采集的默认配置
2025-12-06 18:48:22 +08:00
dushixiang
ae089e9408
温度采集适配 N1 盒子
2025-12-06 18:26:51 +08:00
dushixiang
dffb53a309
修复 Linux 温度采集
2025-12-06 18:05:39 +08:00
dushixiang
6b3fd9e730
优化温度采集和渲染
2025-12-06 17:49:46 +08:00