心跳监控系统
引用文件
目录
简介
本文件面向心跳监控系统的技术实现与运维实践,围绕心跳包的数据结构与传输协议、心跳频率与超时阈值配置、异常检测机制、接收处理与设备状态更新、活跃度统计、异常恢复策略、数据存储与分析、API 接口规范与集成示例、最佳实践与性能优化进行全面阐述。读者可据此理解心跳系统的工作原理、掌握配置方法、定位异常问题并制定优化方案。
项目结构
心跳监控系统主要由设备模块的控制层、服务层与数据层组成,结合文档与测试工具,形成从接口到配置、从数据到分析的闭环。
图表来源
- AppDeviceHeartBeatController.java
- device-heart-beat-config.md
- check-connectivity.md
- README.md
- DeviceHeartUtils.java
章节来源
- AppDeviceHeartBeatController.java
- device-heart-beat-config.md
- check-connectivity.md
- README.md
- DeviceHeartUtils.java
核心组件
- 心跳接口控制器:提供 V1/V2 两套心跳接口,负责设备认证、在线时间更新、活跃明细记录、任务检查与配置下发。
- 设备服务:负责设备认证、配置获取与版本兼容处理。
- 活跃明细服务:负责设备活跃明细的持久化与初始化。
- Redis 缓存:维护设备最后在线时间,作为离线判定依据。
- 配置管理:通过字典管理心跳配置项,指导设备行为。
- 文档与工具:提供连通性检测、流程图与心跳数据清洗分析工具。
章节来源
架构总览
心跳监控系统采用“接口-服务-缓存-存储”的分层架构,接口层负责请求接入与响应封装;服务层负责业务逻辑与配置下发;缓存层负责在线状态与活跃明细的快速更新;存储层负责历史数据的长期留存与分析。
图表来源
详细组件分析
心跳接口与处理流程
- V1 接口:deviceHeartBeat,支持携带 updateVersion 参数,用于检查是否有新任务;若存在则返回包含任务列表的响应,否则返回“无任务”错误。
- V2 接口:deviceHeartBeatV2,支持携带 CPU 标识或 仅 MAC;根据设备 API 版本与是否携带 CPU 决定认证方式;成功后返回心跳配置列表(包含任务检测、黑名单检测、APP 检测、事件上报、设备心跳等配置项),并按需生成设备 Token。
- 版本兼容:当设备 API 版本满足条件且 Token 缺失或过期时,自动生成新 Token 并返回。
图表来源
章节来源
心跳配置响应结构(V2)
心跳接口 V2 返回一系列配置指令,指导设备进行特定行为的周期性检测与上报。典型配置项包括:
- 任务检测:[开关, 间隔分钟]
- 黑名单检测:[开关, 间隔分钟]
- APP 安装列表检测:[开关, 间隔分钟]
- APP 更新检测:[开关, 间隔分钟]
- APP 运行记录检测:[开关, 间隔分钟]
- 事件上报:[开关, 间隔分钟]
- 设备心跳:[开关, 间隔分钟]
章节来源
心跳频率与超时阈值配置
- 配置来源:心跳配置管理页面,支持查看与修改各项配置的“是否开启”和“间隔时长(分钟)”。未配置或未启用的项使用出厂默认配置。
- 建议范围:文档建议心跳间隔为 15-60 秒,避免过短导致服务器压力过大。
- 生效机制:修改配置后需设备重新调用心跳接口获取最新配置。
章节来源
异常检测机制与离线判定
- 在线时间缓存:每次心跳成功后,将设备的最后在线时间写入 Redis 的有序集合,键名对应“DEVICE_LAST_ON_LINE_TIME_KEY”。
- 离线阈值:可通过比较当前时间与缓存中的最后在线时间,计算超过阈值即判定为离线。阈值可在业务侧按需配置。
- 未激活设备:返回特定状态码,提示设备未激活。
章节来源
设备状态更新与活跃度统计
- 设备认证:根据设备 API 版本与是否携带 CPU 决定认证策略,确保不同版本设备的兼容性。
- 活跃明细:首次活跃时初始化活跃明细记录,后续按需更新。
- 统计维度:结合活跃明细与运行时数据,支持按设备、区域、渠道等维度进行活跃度统计与趋势分析。
章节来源
心跳异常处理策略
- 离线检测:基于 Redis 中的最后在线时间与阈值进行离线判定。
- 重连机制:设备端定期重试心跳,直至恢复在线;服务端在认证失败时返回明确错误信 息,便于前端或设备端进行重试与降级处理。
- 告警通知:建议在离线阈值触发时,联动告警系统进行通知与处置。
章节来源
心跳数据存储与分析
- 存储位置:活跃明细与运行时数据存储于 TDengine/ES 等存储系统,便于长期留存与分析。
- 数据清洗:提供心跳数据清洗工具,支持按时间戳特征区分带时间戳与不带时间戳的数据,辅助异常分析与归因。
- 分析应用:结合活跃明细与运行时数据,进行设备活跃度、运行时长、任务执行等趋势分析。
章节来源