Commit Graph
203 Commits
Author SHA1 Message Date
dushixiangandClaude 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
dushixiang 29d8b3e9cf 调整指标数据使用 max 聚合,避免消峰 2026-05-05 17:09:26 +08:00
yumusb 47c9a515a2 feat: 支持短UUID访问服务器详情,前端默认使用短链接
- 后端支持通过UUID前缀(第一段)匹配探针,保留完整UUID兼容
- 注册时自动检测短ID前缀冲突,冲突时分配新UUID
- 前端列表和卡片默认链接到短UUID(前8位)
2026-04-30 14:10:39 +08:00
yumusb 52a30aae74 feat: 支持 API Key 类型与管理接口认证 2026-04-24 18:45:01 +08:00
yumusbandClaude 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
yumusbandClaude Opus 4.6 9c1752bb4d fix: 删除探针时清理内存缓存中的监控数据
删除探针时只清理了 VictoriaMetrics 时序数据,但没有清理内存中的监控缓存,
导致监控页面显示已删除探针的 agent_id (hash) 作为名称。

- 新增 CleanAgentFromMonitorCache 方法遍历清理监控缓存
- 新增 DeleteAgentLatestMetricsCache 方法清理探针指标缓存
- DeleteAgent 删除探针时增加清理内存缓存步骤
- CleanOrphanedAgentMetrics 手动清理时也清理内存缓存
- 前端隐藏"清理残留指标数据"按钮(已自动清理无需手动操作)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 16:14:04 +08:00
yumusbandClaude Opus 4.6 b9ec210542 refactor: 优化后端服务结构
- 统一使用 orz 响应格式
- 优化 handler 和 service 层代码
- 改进上下文传递

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 12:53:13 +08:00
yumusbandClaude Opus 4.6 ffd1461b80 feat: 优化通知和告警服务
- 重构告警通知逻辑
- 新增通知队列服务
- 优化告警信息处理

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 12:52:50 +08:00
yumusb 3919340d85 Update notifier.go 2026-04-08 21:15:31 +08:00
yumusb fd452e56d8 增加测试镜像、增加删除残留数据。 2026-04-08 20:24:03 +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 6ba52a1850 修复告警恢复当前值不正确的问题 2026-02-25 15:13:41 +08:00
dushixiang 4df28e3536 删除探针、服务监控时同步删除 victoriametrics 数据 2026-02-25 14:28:11 +08:00
dushixiang 1a64b27af6 移除原心跳配置和业务,改为使用 WebSocket Ping Pong 实现,并增加超时逻辑 2026-02-25 14:11:22 +08:00
yumusb 63cdd37b12 Hide agent IP when unauthenticated
Ensure agent.IP is cleared for unauthenticated requests. Previously IPv4, IPv6 and Hostname were redacted, but agent.IP was left intact and could leak sensitive information. This change sets agent.IP to an empty string in Get() when the user is not authenticated.
2026-02-24 09:44:27 +08:00
dushixiang d40fc1314f 1. 修改注册探针的服务端地址为手动填写
2. 优化 Linux 系统服务模板
3. 优化首页流量展示方式
2026-02-10 19:56:46 +08:00
dushixiang 3db7118258 强制更新公网 IPv4 和 IPv6 信息 fix #65 2026-02-07 15:24:40 +08:00
yumusb 7f922e7382 优化告警消息
优化告警消息,IP去重以及增加监控项的名称
2026-01-29 19:20:09 +08:00
dushixiang c9b6d6ff5a 优化流量统计 2026-01-25 22:01:56 +08:00
dushixiang 43732e57e2 优化设备详情网络地址的展示,服务监控的默认增加默认排序。 2026-01-25 21:21:46 +08:00
dushixiang 3f3ddfea49 通知增加通信 IP 的展示,移除自定义 Webhook 的默认 json form 模版 fix #42 2026-01-25 21:02:09 +08:00
dushixiang ff2afc82a5 移除管理员探针管理的分页功能,增加标签过滤,与公共页面保持一致的排序逻辑 fix #47 2026-01-24 21:51:23 +08:00
dushixiang e957183588 增加 weight 字段的自动化迁移,按照 name 顺序分配 weight,从 1 开始递增 fix #35 2026-01-24 19:49:54 +08:00
dushixiang 85f80b76fd 新增批量修改探针可见性的功能 fix #33 2026-01-24 18:48:49 +08:00
dushixiang 58efeea362 安装探针命令增加自动创建文件夹的代码 fix #59 2026-01-24 18:30:00 +08:00
dushixiang b34ddd750f SSH 登录监控增加 IP 归属地 2026-01-18 11:14:57 +08:00
dushixiang 6f08f9447a 修复自定义 agent 名称 2026-01-17 17:39:43 +08:00
dushixiang 2664ebb05e 优化探针查询过滤 2026-01-17 17:30:44 +08:00
dushixiang 87207cb159 修复 IP 地址查询失败的问题 2026-01-17 17:19:17 +08:00
dushixiang 6488c9155d 保留旧的连接 IP 地址 2026-01-17 17:15:51 +08:00
dushixiang 3a8caec66e 保留旧的连接 IP 地址 2026-01-17 17:14:19 +08:00
dushixiang 00ff019ccb 提交缺少的代码 2026-01-17 16:37:13 +08:00
dushixiang be54ef2d31 增加公网 IP 采集和网卡 IP 展示 2026-01-17 16:24:59 +08:00
dushixiang 6fa90252df 优化 ddns 缓存清理 2026-01-17 14:06:30 +08:00
dushixiang a0e680b1c8 修复 DDNS ipv4 配置初次创建永远为 true 的问题 2026-01-17 13:54:24 +08:00
yumusb 2108d09f6a 增加自定义 name 参数 2026-01-15 19:34:57 +08:00
yumusb 56e92c9081 允许只设置一个 systemName 2026-01-12 11:44:16 +08:00
榆木 07cc517b2c 允许有探针在线的IP地址不提供key下载 2026-01-11 19:55:41 +08:00
榆木 9ae1fea7d8 下载地址增加 key 认证
agent二进制下载地址增加 key 认证,防止刷流量
2026-01-11 19:19:58 +08:00
dushixiang f0cff6a878 SSH 登录事件增加 IP 白名单 2026-01-11 13:56:21 +08:00
dushixiang 7965cd329a SSH 登录事件增加 IP 白名单 2026-01-11 13:47:26 +08:00
dushixiang 52037fa8e6 优化已使用流量计算 2026-01-11 12:08:59 +08:00
dushixiang ab1a13d5b2 在管理页面增加设备 IP 信息 2026-01-11 11:43:39 +08:00
dushixiang 80de85d51d 移除通知信息中的 ID 字段 2026-01-11 10:25:20 +08:00
dushixiang 8904d39872 在探针注册后服务端主动下发SSH登录监控配置 2026-01-11 10:22:36 +08:00
dushixiang 5359ee89d4 在探针注册后服务端主动下发SSH登录监控配置 2026-01-11 10:20:38 +08:00
dushixiang 602a36df01 移除 SSH 登录事件中的登录方法字段 2026-01-11 10:14:48 +08:00
dushixiang 692f2e8f34 修复恢复告警时实际值被替换的问题 2026-01-11 10:06:23 +08:00
dushixiang 0fce99f4d0 优化通知 2026-01-11 10:04:00 +08:00