v1.8.1 — 2026 年 4 月
本版本在警报引擎、通知和设施管理方面引入了新功能,同时为拥有数千条活跃警报的环境带来了显著的性能改进。
新功能
复合警报(AND / OR)
现在可以使用 AND 或 OR 逻辑运算符在单个警报中组合最多 5 个条件。
- 使用场景:仅当多个条件同时满足时才触发警报(例如高温AND低湿度)。
- **配置:**在警报编辑器中,从_Logic_下拉菜单中选择运算符(Single / AND / OR),并通过_+ Add condition_添加条件。
- **约束:**复合警报的所有条件必须属于同一设施的端点。
浏览器推送通知(Monitor)
Monitor 模块现在通过 Firebase Cloud Messaging 支持直接浏览器推送通知,即使标签页在后台也能工作。
- **激活:**顶部栏中的铃铛图标 → Activate notifications → 在浏览器中授予权限。
- 自定义声音以及为打开的警报显示
(OPEN)标签。 - **多租户支持:**每个客户可以注册自己的 Firebase 项目。
- **可用性:**Monitor 模块(该图标在 Manager 中故意隐藏)。
按设施的维护模式
允许临时暂停某个设施上新警报的创建和自动化动作的执行,同时不影响现有活跃警报。
- **访问:**Manager → Facilities → 编辑设施 → Operational Status选项卡。
- “Put in maintenance” 开关会打开一个对话框,您可以在其中:
- 提供一个可选的原因 — 会被记录在历史中。
- 配置以小时为单位的自动恢复超时(
0 = no timeout)。 - 变更历史:“History”部分显示之前的切换记录,包括日期、作者和原因。
- 当设施处于维护模式时:
- 不创建新警报。
- 不触发自动化动作。
- 之前已激活的警报保持打开。
- **自动恢复:**一个计划任务检查超时并在过期时自动将设施恢复为_Active_。
\{SECTOR\_NAME\}通知中的变量
端点所属的扇区描述现在可以作为占位符在任何警报通知模板中使用。
- **可用于:**邮件、短信、语音和 WhatsApp,适用于警报打开和关闭事件。
- **解析:**如果端点关联了扇区,则插入扇区描述。如果没有,则插入空字符串(不影响模板的其余部分)。
按设备分组的警报视图
Manager → Alarms → Alerts屏幕现在按设备分组警报,并提供可视化的严重程度汇总。
- **每台设备:**总数 + 彩色严重程度徽章(High 红色、Medium 橙色、Low 黄色、Information 蓝色)。
- **可展开:**点击设备以查看包含 Endpoint / Alert / Severity / Status 列的警报列表。
- **性能:**该列表支持服务端分页 — 拥有数千条警报的设施可瞬间加载。
“Everyone”组的默认权限
创建新客户时,_Everyone_组将自动获得:
Client.Read(访问 Monitor 模块)Client.ReadAllFacilities(对客户所有设施的读取访问)
**现有客户注意:**该权限会在下次应用程序池重启时自动回填。
如果需要在设施之间严格隔离(用户只能看到特定设施),不要把_Everyone_组分配给该用户;应创建带有按设施权限的自定义组。
性能改进
数据库中分页的警报列表
Manager 中的警报视图现在使用一个分页存储过程在 SQL 中筛选和排序。之前是在内存中完成的,这在大型设施中导致 TTFB > 10 秒。
- **结果:**拥有数千条警报的设施可在亚秒级完成加载。
- **内联搜索:**按描述、地址或 DeviceID 的筛选在数据库中执行。
减少复合警报的查询
复合警报(AND/OR)的条件现在通过一个批量查询加载,而不是每个警报一个查询。之前为 N+1 查询模式。
- **结果:**包含大量复合警报的页面加载速度提升约 40%。
稳定性与加固
- 关键操作中的空值安全:对警报和仪表盘引擎(对遗留数据映射的防御性保护)。
- 跨服务器协调:用于维护缓存失效:状态变化时发布 Redis 消息,确保负载均衡拓扑中的服务器立即刷新本地缓存。
- 令牌文件的自动清理:Camera 小部件缓存中 — 一个新任务移除超过 7 天的
.token文件。 - 对缺失设备的防御性处理:当仪表盘小部件请求已删除的设备时:前端现在收到结构化错误,而不是一般性失败。
支持
如有咨询,请联系 Cloud Studio 团队:contacto@cloud.studio。