钉钉和微信-全局异常实时通知【详细✰】

✎…钉钉机器人之异常监控


  • 看到有同学在网上说可以给自己的项目或者公司的项目接入异常通知机器人🤨

试想在周末休息或者晚上正在嗨的时候,突然公司运营或产品电话怼过来说系统有个紧急的BUG需要处理,这时候你正在嗨又不想去看这些问题,何不在发现之前就把它处理掉呢!

接入方式
一、钉钉接入
  • 先说说钉钉接入,钉钉 官方文档他这个有几种方式(text、link、markdown、整体跳转ActionCard、独立跳转ActionCard、FeedCard类型)这里作者演示的是markdown类型
  1. 注册钉钉机器人 创建access_token
    创建机器人

  2. 选择自定义机器人
    创建机器人

  3. 添加机器人
    创建机器人

  4. 设置机器人名字随便叫,群组就选择你拉的群组 大于2个人开可以拉群,安全设置里面关键字可以加也可以不加,我这边加了一个 收到这个关键字就是转发到群里
    创建机器人

  5. 最后效果就是:
    创建机器人

  6. 点击机器人设置拿access_token
    创建机器人

  • 有了access_token 开始通过程序接入机器人(这边使用的是JAVA语言)

    直接使用http调用发送模板数据就可以了 这边使用的是markdown类型


package com.cloud.food.config;

import cn.hutool.core.map.MapUtil;
import cn.hutool.http.HttpUtil;
import com.cloud.food.Json;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;

/**
 * *********************************************************
 *
 * @Author <a href="mailto:xyqierkang@gmail.com">ErKang Qi</a>
 * @Date Created in 2020/8/11 18:04
 * @Title TalkExceptionUtil.java
 * <p>Description: [ 全局 异常通知 ] </p>
 * <p>Blog: https://www.qekang.com</p>
 * <p>Inc:  </p>
 * <p>Copyright:    </p>
 * <p>Department: Product development </p>
 * *********************************************************
 */
@Slf4j
@Component
public class TalkExceptionUtil {

private static String env = "dev";

@Value("${spring.profiles.active}")
    public void setEnv(String env) {
        TalkExceptionUtil.env = env;
    }
    
/**
     * Description: [ 钉钉异常通知 ]
     *
     * @param
     * @param context
     * @return void
     * @Author <a href="mailto:xyqierkang@gmail.com">ErKang Qi</a>
     * @Date Created in 2020/8/11 18:05
     * <p>File:  </p>
     */
    public static void DingTalk(String text, String context) {
        Map<String, Object> mes = new HashMap<>();
        mes.put("title", text);
        mes.put("text", "#### **【系统" + text + "「" + env + "」】** [通知到位](https://www.qekang.com/) \n >" + context.replaceAll("#", ""));
        HashMap<String, Object> params = MapUtil.of("msgtype", "markdown");
        params.put("markdown", mes);
        System.out.println(Json.toString(params));
        String result = HttpUtil.post("https://oapi.dingtalk.com/robot/send?access_token=xxx", Json.toString(params));
        log.info(result);
    }
}
  • 我在这边加了个 环境获取 一般情况我们分为dev-test-prod环境 当然你也可以在机器人设置里面指定服务器IP接收数据 如果是dev或者test不发送数据

    在钉钉文档也说道了 markdown语法支持有限制目前只支持md语法的子集,具体支持的元素如下:

标题
  # 一级标题
  ## 二级标题
  ### 三级标题
  #### 四级标题
  ##### 五级标题
  ###### 六级标题
  
  引用
  > A man who stands for nothing will fall for anything.
  
  文字加粗、斜体
  **bold**
  *italic*
  
  链接
  [this is a link](http://name.com)
  
  图片
  ![](http://name.com/pic.jpg)
  
  无序列表
  - item1
  - item2
  
  有序列表
  1. item1
  2. item2


效果就是这样:
创建机器人创建机器人

到这里钉钉接入就完成了!捕获全局异常 就可以使用啦 线上排查问题很方便!

二、微信接入
  • 这种方式接入很简单 目前使用的是 方糖:Server酱
    具体接入方法和钉钉类似先注册 然后微信扫码绑定 线上出问题就会以公众号方式推送过来Api测试创建机器人

    具体代码如下(这里发送的也是markdown格式):


package com.cloud.food.config;

import cn.hutool.core.map.MapUtil;
import cn.hutool.http.HttpUtil;
import com.cloud.food.Json;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;

/**
 * *********************************************************
 *
 * @Author <a href="mailto:xyqierkang@gmail.com">ErKang Qi</a>
 * @Date Created in 2020/8/11 18:04
 * @Title TalkExceptionUtil.java
 * <p>Description: [ 全局 异常通知 ] </p>
 * <p>Blog: https://www.qekang.com</p>
 * <p>Inc:  </p>
 * <p>Copyright:    </p>
 * <p>Department: Product development </p>
 * *********************************************************
 */
@Slf4j
@Component
public class TalkExceptionUtil {

private static String env = "dev";

@Value("${spring.profiles.active}")
    public void setEnv(String env) {
        TalkExceptionUtil.env = env;
    }
    
/**
     * Description: [ 微信异常通知 ]
     *
     * @param
     * @param context
     * @return void
     * @Author <a href="mailto:xyqierkang@gmail.com">ErKang Qi</a>
     * @Date Created in 2020/8/11 18:05
     * <p>File:  </p>
     */
    public static void WeChat(String context) {
        Map<String, Object> mes = new HashMap<>();
        mes.put("text", "异常监控「" + env + "」");
        mes.put("desp", "#### **【系统异常监控「" + env + "」】**  [通知到位](https://www.qekang.com/) \n ```" + context + " ```");
        HttpUtil.post("https://sc.ftqq.com/xxx.send", mes);
    }
}

具体效果:

创建机器人创建机器人

PS:这时候线上出问题你可以提前预知进行修复,不需要等到别人的通知!像之前发邮件的会有视觉疲劳,一天几十封看着就会头大
✎…欢迎留言✔️
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薯条大爹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值