单元 4:配置告警¶
为监测设备的性能,你可以为任何设备异常自定义告警级别,告警类型,告警内容和告警规则。本单元展示如何启用告警以监控水表的数据。详细步骤如下。
步骤 1:创建告警源¶
由于水表的数据为非 EnOS 标准数据格式,本步骤将创建告警源以监控 Kafka 消息,并自定义转换方式,使用数据映射 JAR 包构建告警指标。
数据映射 JAR 包¶
JAR 包将实现 StandardMetricResolver
方法,该方法将在创建告警源时定义,以取出 Kafka 消息中的 flow 值并将其转换为告警数据。
更多信息,参见 告警源。
添加以下依赖。
<dependency> <groupId>com.envisioniot.enos</groupId> <artifactId>alert-engine-share</artifactId> <version>0.1.10-SNAPSHOT</version> <exclusions> <exclusion> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency>
使用以下示例代码创建一个实现
StandardMetricResolver
的解析类。package com.example.alertsource; import com.envisioniot.enos.alert_engine.core.share.datasource.dto.codec.StandardMetricResolver; import com.envisioniot.enos.alert_engine.core.share.metric.dto.Metric; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import lombok.extern.slf4j.Slf4j; import java.util.Map; @Slf4j public class CodecAlertData implements StandardMetricResolver { private static final String METRIC = "flow"; private static final String ORG_ID = "yourOrgId"; private static final String INSTANCE = "XolflP2C"; private static final String TIMEZONE = "+08:00"; private static final Gson GSON = new Gson(); @Override public void init() { // do nothing } @Override public Metric decode(String msg, Map<String, String> context) { log.info("consume msg: {}, context: {}", msg, context); Metric metric = new Metric(); try { Map<String, Object> inputData = GSON.fromJson(msg, new TypeToken<Map<String, Object>>() {}.getType()); final long timestamp = System.currentTimeMillis(); metric.setMetric(METRIC); metric.setOrgId(ORG_ID); metric.setInstance(INSTANCE); metric.setTimezone(TIMEZONE); metric.setTimestamp(timestamp); metric.setValue(String.valueOf(inputData.get(METRIC))); log.info("output metric: {}", metric); return metric; } catch (Throwable t) { log.error("process data error, ", t); return metric; } } }
创建一个 JAR 文件。
步骤 2:创建告警级别¶
在 EnOS 管理控制台 中选择 告警管理 > 告警级别。
点击 新增级别,在 添加级别 页面配置下列信息。
- 级别编号:WaterMeterWarning
- 级别描述:警告
点击 确认 创建该告警级别。
更多信息,参见 告警级别。
步骤 3:创建告警类型¶
在 EnOS 管理控制台 中选择 告警管理 > 告警类型。
点击 新建类型,在 添加类型 页面配置下列信息。
- 类型编号:FlowOverThreshold
- 类型描述:流量超过阈值
点击 确认 创建该告警类型。
更多信息,参见 告警类型。