
Agent负责采集各类节点的健康数据,每3秒主动访问一次。根据采集的数据和预设规则,节点的健康状态分为错误、警告和正常三种,对应Dashboard中的红、黄、绿三种颜色。
Redis节点监控 通过Jredis API连接Redis实例并进行简单读写测试。操作成功则状态正常,失败则为错误。
MQ节点监控 使用MQ API检测是否有活跃消费者及队列积压消息数量。无活跃消费者或积压消息超过阈值则为错误。
数据库节点监控 通过JDBC连接数据库并执行简单表操作。操作成功则状态正常,失败则为错误。 这三类节点仅支持正常和错误两种状态,无警告状态。
Web应用监控 采集功能与性能数据:
示例请求与响应:
{
"status": "warning",
"avg_time": "583.0",
"call_count": "10",
"error_count": "0",
"error_info": "orderListGet: current average time=583.0, total average time=109.84, 调用次数=10"
}Agent独立部署,节点配置信息存储在数据库中,启动时从Monitor Service获取并定期刷新。
Redis/MQ/DB节点 仅需提供配置信息,无需额外开发。
Web应用接入 需代码改造:
logHealthInfo方法记录调用耗时及错误信息:try {
result = service.invoke(request);
HealthUtil.logHealthInfo("xxx_method", (System.currentTimeMillis() - start), null);
} catch (Exception e) {
HealthUtil.logHealthInfo("xxx_method", (System.currentTimeMillis() - start), e.getMessage());
}@RequestMapping(value = "/agent/check")
public String reportData() {
return HealthUtil.healthCheck();
}SDK内部逻辑
Dashboard每3秒刷新,展示层级为:分组 → 应用 → 节点。
动态布局实现
示例布局:
大盘监控 支持全局视图展示所有系统节点状态,便于快速定位问题。

通过上述设计,系统实现了高效、灵活的节点监控与可视化展示。