如何在FIWARE NGSI实体中定义告警事件及处理告警恢复场景
FIWARE告警事件数据模型通用实践说明
FIWARE生态下已有成熟的告警定义通用规范,核心对齐官方Smart Data Models中的Alert标准,不需要自行搭建全新规则。
1. 单设备告警属性(如currentTooHigh)的通用定义
你给出的结构是符合行业实践的,常规配置为:属性类型使用Text或Boolean,value常用取值为active/off、triggered/OK,metadata中默认携带告警首次触发时间、最近状态变更时间,标准示例如下:
"currentTooHigh": { "type": "Text", "value": "off", "metadata": { "dateStarted": { "type": "DateTime", "value": "2021-09-18T12:02:49.00Z" }, "dateUpdated": { "type": "DateTime", "value": "2021-09-18T16:02:49.00Z" } } }
2. 告警等级(severity)配置规范
在metadata中添加severity属性是通用标准实践,属于Alert模型的核心可选字段,通用等级按严重程度从低到高划分为info、warning、error、critical,你提到的failure可对应至critical层级,配置示例如下:
"metadata": { "dateStarted": { "type": "DateTime", "value": "2021-09-18T12:02:49.00Z" }, "severity": { "type": "Text", "value": "error" } }
3. 告警恢复为OK状态的处理方案
当指标回归正常值时,按以下流程处理即可满足全量日志留存需求:
- 上下文实体侧更新:将告警属性的value更新为
OK/off,同步更新metadata中的dateUpdated为恢复时间,也可新增dateCleared字段单独存储明确的恢复时间戳,方便后续统计告警持续时长 - 日志留存侧处理:通过NGSI API订阅该告警属性的所有变更事件,每次状态变更(首次触发、等级调整、恢复)都全量写入时序数据库或日志存储,不要仅保留上下文代理中的最新状态
- 日志关联生成:通过设备ID+告警属性名/告警ID,关联同一条告警的触发和恢复记录,即可生成包含告警类型、触发时间、恢复时间、告警等级、持续时长的完整告警日志,效果如下:

内容的提问来源于stack exchange,提问作者Green1234
相关产品推荐
相关产品推荐

