hello,大家好
webfunny前端监控系统提供了多种警报方式,如:钉钉,微信,邮箱等;但是依然不能够满足很多小伙伴的警报需求,我们未来会逐步添加支持的。虽然我们没有提供,你们也可自己配置一个警报方式,非常简单,肯定不会难倒如此优秀的的你。
好了,我们来看看如何创建自定义的警报方式吧。
一、首先来看看webfunny是怎么发出警报的吧
大家进入项目根目录下,找到alarm/index.js文件,内容如下:
      // 生成警报内容
      const contentStr = type + "警报!" +
          "您的" + projectType + "项目【" + projectName + "】发出警报:" +
          type + "数量 " + compareStr + " " + limitValue + " 已经发生" + happenCount + "次了,请及时处理。"
      dingDing.config.text.content = contentStr
      weiXin.config.text.content = contentStr
      
      /**发起警报方式 */
      // 1. 通知钉钉机器人
      Utils.postJson(dingDing.url, dingDing.config)  // 钉钉机器人
  
      // 2. 通知微信机器人
      Utils.postJson(weiXin.url, weiXin.config)  // 微信机器人
  
      // 3. 发送邮件通知
      if (users && users.length && accountInfo.emailUser && accountInfo.emailPassword) {
          users.forEach((user) => {
              const email = user.emailName
              sendEmail(email, AlarmNames[type] + "警报!", contentStr, accountInfo.emailUser, accountInfo.emailPassword)
          })
      }
如代码中所示,第一行可以看到 contentStr 这个变量,它是警报的内容。
再往下看,可以看到发起警报的方式,有3种分别为:钉钉、微信、邮件。
二、那么如何增加其他的通知方式呢
我们可以选择钉钉警报方式看下,进入alarm/dingding.js文件看一下,你也可以写一个这样的配置文件,增加一个警报方式就可以了。
module.exports = {
    url: "www.xxx.com", // 钉钉机器人的URL
    config: {
        "msgtype": "text",
        "text": {
            "content": ""
        },
        "at": {
            "atMobiles": [    // 想要@的成员列表
                "000"
            ], 
            "isAtAll": false  // 是否@所有人
        }
      }
  }
三、直接调用你们自己公司的接口
在alarm/index.js文件中,你已经可以拿到警报信息了,直接把警报内容通知给你们公司的接口不就行了吗。就跟邮件通知一样。