程序主动进行电话短信报警,自定义电话、短信、钉钉报警通知
一. 规则说明
这里我们要利用到阿里云的云监控的手段,有一个叫做事件监控的东西,可以通过自定义事件上传来进行监控报警。
流程: 程序发现错误 -> 调用事件上报 -> 阿里云事件中心接受到事件 -> 打电话、发短信、钉钉通知
二. 前置准备
前置条件:
- 阿里云账号
- 阿里云ram账号(带有事件监控权限),生成对应的key和secret
- 创建报警联系人组,购买短信、电话分钟数(需要什么就得买什么)
- 创建报警规则
完成前置条件后,如下图所示,已经配置好了相关事件
这时候我们手上需要三个参数就可以进行事件通知了:ram用户的key和secret 以及 报警规则的 应用组ID。
三. 开始编码
-
添加Maven依赖。
<dependency> <groupId>com.aliyun.openservices</groupId> <artifactId>aliyun-cms</artifactId> <version>0.1.2</version> </dependency> -
上报事件
- java版本
public void uploadEvent() throws CMSException, InterruptedException {
CMSClient cmsClient = new CMSClient(endpoint, accKey, secret);
CustomEventUploadRequest request = CustomEventUploadRequest.builder()
.append(CustomEvent.builder()
.setContent("abc,123")
.setGroupId(101l)
.setName("Event001").build())
.append(CustomEvent.builder()
.setContent("abc,123")
.setGroupId(101l)
.setName("Event002").build())
.build();
CustomEventUploadResponse response = cmsClient.putCustomEvent(request);
List<CustomEvent> eventList = new ArrayList<CustomEvent>();
eventList.add(CustomEvent.builder()
.setContent("abcd,1234")
.setGroupId(101l)
.setName("Event001").build());
eventList.add(CustomEvent.builder()
.setContent("abcd,1234")
.setGroupId(101l)
.setName("Event002").build());
request = CustomEventUploadRequest.builder()
.setEventList(eventList).build();
response = cmsClient.putCustomEvent(request);
}
- kotlin版本
fun main() {
val cmsClient = CMSClient("https://metrichub-cms-cn-beijing.aliyuncs.com", "key", "secret")
var request: CustomEventUploadRequest = CustomEventUploadRequest.builder()
.append(
CustomEvent.builder()
.setContent("abc,123")
.setGroupId(25350)
.setName("test").build()
)
.append(
CustomEvent.builder()
.setContent("abc,123")
.setGroupId(25350)
.setName("test").build()
)
.build()
var response: CustomEventUploadResponse = cmsClient.putCustomEvent(request)
val eventList: MutableList<CustomEvent> = ArrayList<CustomEvent>()
eventList.add(
CustomEvent.builder()
.setContent("abcd,1234")
.setGroupId(25350)
.setName("test").build()
)
eventList.add(
CustomEvent.builder()
.setContent("abcd,1234")
.setGroupId(25350)
.setName("test").build()
)
request = CustomEventUploadRequest.builder()
.setEventList(eventList).build()
response = cmsClient.putCustomEvent(request)
}
阿里云官方文档见 此