ThingsPanel v1.2.0 发布 — 遥测聚合能力上线,实时推送稳定性大幅提升

发布日期:

版本范围:v1.1.15 → v1.2.0

v1.2.0 是 ThingsPanel 进入 1.2 里程碑的第一个版本,也是这个版本系列目前改动最深的一次。这次更新同时推进了三条主线:遥测数据聚合分析能力从无到有、设备看板统计维度进一步完善、Redis 实时推送的稳定性得到系统性加固。与此同时,告警缓存清理、命令下发校验、市场联动初始化流程也一并完成了整体补强。

对于正在用 ThingsPanel 做长周期数据分析、实时监控或多设备看板展示的团队,这个版本值得仔细看。



这次更新重点看什么

方向这次变化更直接的价值
遥测聚合查询新增 avg / max / min / sum / diff 聚合能力,支持时间窗口查询历史数据分析不再只能看原始点,可直接出统计图表
设备看板统计新增离线设备数;趋势查询支持时间范围;自然小时聚合看板同时展示总数/在线/离线,趋势分析更灵活
Redis 实时推送指数退避重连机制;抑制冗余日志;降级发布失败日志级别Redis 短暂故障后自动恢复推送,不再产生大量错误日志
告警与自动化缓存删除/更新告警或自动化规则时同步清理相关缓存删除操作后不再出现缓存脏数据导致的告警异常执行
命令下发校验增强 value 参数 JSON 合法性校验;序列化失败返回明确错误非法指令在入口被拦截,不会下发到设备
设备详情告警状态设备详情接口新增 warn_status 字段查设备详情时无需额外请求即可知道当前是否有告警
市场与初始化流程市场回流后超管初始化链路优化;错误分类更清晰新实例部署和市场对接时初始化成功率更高
前端稳定性修复物模型分页、设备类型锁定、ThingsVis 上下文、告警状态颜色等多项修复多个日常使用场景的操作问题得到修复


遥测数据聚合:从"看点"到"看趋势"

这次 v1.2.0 最值得单独说的新能力,是遥测数据聚合查询的正式上线。

在此之前,ThingsPanel 的遥测查询基本只能返回原始数据点。对于短时间范围、高频采集场景这没有问题,但一旦要做日/周/月级别的趋势分析,原始点的数据量会非常庞大,而且直接展示没有意义。用户往往需要自己在前端或外部系统里做二次聚合,增加了很多额外开发量。

这次在后端层面补齐了这个能力:

  • 支持按时间窗口对设备遥测数据进行 avg(均值)、max(最大值)、min(最小值)、sum(求和)、diff(差值)五种聚合计算
  • 聚合查询使用参数化 SQL 构造,并对空值和异常超大数值做了过滤,避免单个脏数据拖垮整个聚合结果
  • 长时间范围查询稳定性显著提升,不再因异常历史值导致统计结果失真

对于做能耗分析、设备健康度趋势、生产指标统计的团队来说,这个能力意味着之前必须外挂数据处理层的场景,现在可以直接调用平台的聚合接口完成。



设备看板统计:离线数量、时间范围、小时聚合

这次对设备看板的统计维度做了几项针对性增强:

离线设备数量现在是设备概览接口的标准字段(device_offline),看板可以同时展示设备总数、在线数和离线数,不再需要用"总数 - 在线数"来间接推算。对运维场景来说,这个数字直接放到大屏上,一眼就知道当前有多少设备失联。

设备趋势查询支持了 start_time / end_time 时间范围参数,默认查询最近 48 小时。趋势数据按自然小时聚合,并限制最大查询范围为 30 天,避免时间窗口过大影响查询响应速度。

这些改动配合上面的遥测聚合能力,可以在不引入外部数据分析工具的前提下,直接在 ThingsPanel 的看板上呈现较为完整的设备运行趋势。



Redis 实时推送:稳定性从"依赖 Redis 永远不挂"到"能自动恢复"

之前 ThingsPanel 的 SSE 和 WebSocket 实时推送依赖 Redis Pub/Sub,在 Redis 短暂不可用(比如重启、网络抖动)的情况下,推送连接可能无法自动恢复,并且会产生大量错误日志,给运维人员造成不必要的告警噪音。

v1.2.0 针对这个问题做了几个层面的改进:

  • Redis Pub/Sub 监听增加指数退避重连机制,Redis 短暂故障后推送服务可以自动重建订阅,不需要人工介入
  • 禁用了 go-redis 内部的冗余日志输出,并限制了 Redis 重试次数,减少 Redis 异常期间的日志噪音
  • Redis 发布失败时降低日志级别,非阻塞流程不再产生高优先级错误日志

这类基础设施层的改动不会在功能列表里显眼,但对于生产环境长期运行的实例来说,它直接决定了"Redis 重启后推送是否自动恢复"这件事能不能做到,是系统可靠性的重要保障。



告警与自动化:删除操作终于能清干净

之前删除告警配置或自动化规则时,相关的缓存数据不会被同步清理。这意味着:你在界面上删掉了一条告警规则,但如果告警引擎在下次触发前还读到了旧缓存,就可能产生"已删除的告警仍然执行"的问题。

这次 v1.2.0 在删除路径上做了系统性的缓存清理:

  • 删除告警配置时,自动清理告警名称缓存、告警设备缓存和相关告警历史记录
  • 更新告警配置后清理告警名称缓存,确保后续读取到最新配置
  • 删除自动化规则时同步清理自动化缓存及关联告警缓存

对于告警规则频繁调整的运营场景,这类修复的价值很直接:删除就是删除,不会留下"幽灵规则"继续触发。



命令下发:非法参数在入口拦截

命令下发接口对 value 参数增加了 JSON 合法性校验。之前如果传入非法 JSON 格式的指令数据,平台会继续尝试封装并下发,最终在设备侧才发现报文格式有问题。现在非法 JSON 会在接口入口被拦截,并返回明确的参数错误,不会到达设备。

序列化失败时也改为返回明确的参数错误码,而不是通用错误,方便开发者快速定位问题原因。



前端修复:几个日常使用场景的体验问题

v1.2.0 的前端更新以修复为主,几个改动都落在日常使用频率较高的地方:

  • 物模型定义页重复分页:修复了物模型定义列表在特定情况下出现重复分页的问题
  • 编辑设备配置时设备类型可修改:已有设备配置的设备类型本不应该再被修改,之前这个限制没有在编辑态生效,现已修复
  • ThingsVis 嵌入未使用当前设备上下文:修复 ThingsVis 嵌入组件未正确读取当前设备上下文的问题,嵌入看板能正确展示当前设备数据
  • 设备详情图表 Tab 样式:移除图表面板的多余边框,视觉更整洁
  • 登录密码校验:修复登录流程对密码做了 6 位最低长度限制的问题(只需非空即可)
  • 设备告警历史状态颜色:修复告警历史列表中告警状态颜色显示错误的问题
  • 遥测页下拉框样式:优化下拉框的样式和交互对齐,与整体风格保持一致


哪些团队会直接受益

  • 做长周期数据分析的团队:遥测聚合接口上线后,日/周/月趋势分析可以直接调用平台接口,不再需要外部聚合层
  • 依赖看板展示设备实时状态的团队:离线设备数统计、设备趋势时间范围查询,让看板信息更完整
  • 生产环境长期运行、对 Redis 稳定性有要求的团队:推送服务的自动恢复能力直接降低了 Redis 短暂故障时的运维压力
  • 频繁调整告警和自动化规则的运营团队:删除操作的缓存清理彻底解决了"幽灵规则"问题


升级注意事项

从 v1.1.15 升级到 v1.2.0,建议在升级前确认以下几点:

  1. 遥测聚合接口为新增接口,无需改动现有调用,可直接使用;如有自定义前端图表,可按需接入
  2. 设备概览接口新增了 device_offline 字段,下游看板如需展示离线数,可直接读取该字段
  3. 设备趋势查询参数有变动,如有自定义调用该接口的代码,建议确认 start_time / end_time 参数格式
  4. 市场服务地址默认改为 HTTPS,部署环境如有网络策略限制,确认 HTTPS 出口是否可用
  5. HTTP/服务插件配置中的服务地址有修复,容器化部署场景下建议确认服务连通性


获取本次更新

如有问题,欢迎通过 GitHub Issues 或微信交流群反馈。

Github
Gitee
微信交流群
QQ交流群
商务咨询
北京极益科技有限公司 版权所有 ICP:京ICP备15045763号-12