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,建议在升级前确认以下几点:
- 遥测聚合接口为新增接口,无需改动现有调用,可直接使用;如有自定义前端图表,可按需接入
- 设备概览接口新增了
device_offline字段,下游看板如需展示离线数,可直接读取该字段 - 设备趋势查询参数有变动,如有自定义调用该接口的代码,建议确认
start_time/end_time参数格式 - 市场服务地址默认改为 HTTPS,部署环境如有网络策略限制,确认 HTTPS 出口是否可用
- HTTP/服务插件配置中的服务地址有修复,容器化部署场景下建议确认服务连通性
获取本次更新
- 后端:thingspanel-backend-community v1.2.0
- 前端:thingspanel-frontend-community v1.2.0
- 官网:https://www.thingspanel.cn
- 文档:https://docs.thingspanel.cn
如有问题,欢迎通过 GitHub Issues 或微信交流群反馈。





