我们平时开发接口时,遇到接口异常,我们希望能第一时间得知。
以往的经验我们是通过邮件等方式告知相对于的人员。
用邮件的方式得知异常信息。
随着智能手机的发展,现在大多数的告警可以发送到相关的app上了。
目前常用的是发送到 微信 和 钉钉 这两款应用。
下面我们来看看放在钉钉,看看钉钉是怎么通过群机器人来发送告警信息的。
群机器人是钉钉群的高级扩展功能,群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。
借助钉钉机器人,通过调用官方提供的API,我们可以很方便地将异常告警信息通知到到相应的人员 。
群机器人支持Webhook协议的自定义接入,支持更多可能性,我们可以通过自定义机器人聚合到钉钉群实现提醒功能。
下面来看看 java 接入钉钉机器人实现告警通知的步骤。
首先,我们要新建一个钉钉群,群成员至少需要3个人,建立好群后,创建一个机器人。
如图:
建立成功后,这时钉钉会分配给我们一个链接,
/robot/send?access_token=
这个链接包含了access_token相关信息,我们把这个链接拷贝下来,放到我们的程序中来。
import com.alibaba.fast JSON .JSONObject;
import org. apache .http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import java.io.IO Exception ;
/**
* @CreateTime: 2022-01-15 23:40
* @Description: 钉钉机器人风险告警通知工具类
*/public class DingTalkUtil {
public static final String url = "/robot/send?access_token=";
public static void sendDingTalk(String path, String msg) throws IOException {
HttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
httpPost.addHeader("Content-Type", "application/json; charset =utf-8");
JSONObject bodys = new JSONObject();
bodys.put("msgtype", "text");
JSONObject text = new JSONObject();
text.put("content", msg );
bodys.put("text", text);
JSONObject at = new JSONObject();
at.put("isAtAll", false);
bodys.put("at", at);
StringEntity se = new StringEntity(bodys.toJSONString()," utf -8");
httpPost.setEntity(se);
httpClient.execute(httpPost);
}
方法中用来的类,在 pom 文件添加依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version>
</dependency>
在我们需要告警的地方调用DingTalkUtil.sendDingTalk这个方法,就能实现了告警通知。
好了,关于java接入钉钉机器人实现告警通知就先简单写到这里。由于笔者知识及水平有限,文中错漏之处在所难免,如有不足之处,欢迎交流。