Node.js接入预警通知API:axios异步发送示例

Node.js后端用axios发告警 Node.js服务常跑在BFF或网关层,告警中间件需要在接口异常、队列积压、Pod重启、下游超时率升高时主动通知值班。互亿无线预警通知API是HTTPS POST,Node.js用axios即可异步调用…

Node.js后端用axios发告警

Node.js服务常跑在BFF或网关层,告警中间件需要在接口异常、队列积压、Pod重启、下游超时率升高时主动通知值班。互亿无线预警通知API是HTTPS POST,Node.js用axios即可异步调用,标准HTTP请求无需引入第三方依赖。本文给出示例。

接口与参数

短信 https://api.ihuyi.com/sms/Submit.json,语音 https://api.ihuyi.com/voice/vm,闪信 https://api.ihuyi.com/flash/Submit.json。必填account、password、mobile、content,成功返回code=2与smsid。

axios发送示例

const axios = require("axios");

const AUTH = { account: "API_ID", password: "API_KEY" };

async function sendSms(mobile, content) {
  const { data } = await axios.post(
    "https://api.ihuyi.com/sms/Submit.json",
    new URLSearchParams({ ...AUTH, mobile, content }),
    { timeout: 10000 }
  );
  if (data.code === 2) console.log("已提交", data.smsid);
  else console.error("发送失败", data);
  return data;
}

sendSms("13800138000", "【告警】订单队列积压1200条,请值班关注。");

多通道封装

async function alert(level, mobile, text) {
  if (level === "P0") {
    // 三合一:语音强提醒,模板同步短信+闪信
    await axios.post("https://api.ihuyi.com/voice/vm",
      new URLSearchParams({ ...AUTH, mobile, content: text }));
  } else if (level === "P1") {
    await sendSms(mobile, text);
    await axios.post("https://api.ihuyi.com/voice/vm",
      new URLSearchParams({ ...AUTH, mobile, content: text }));
  } else {
    await sendSms(mobile, text);
  }
}

接入中间件的思路

  1. 在Express/Koa错误中间件里捕获未处理异常
  2. 按异常类型映射到P0/P1/P3级别
  3. 调用alert()发送,避免阻塞主流程,用await+try/catch
  4. 把smsid写入日志,便于回执对账

与监控告警平台配合

Node.js服务常配合Prometheus、Grafana使用,告警到了Webhook后由BFF转发到预警通知API。在Webhook处理里把告警级别映射到alert()函数:P0三合一群呼,P1双呼,P3短信。注意用try/catch包裹,通知失败不能反过来拖垮监控链路。

5秒首发失败自动换通道,避免单通道抖动漏掉P0。短信回执可查送达状态,语音可查接听时长。smsid写入日志后可与Grafana告警ID关联,事后复盘。

Webhook处理里建议加一层去重:同一告警ID在5分钟内只发一次,避免多个实例同时触发打爆值班手机。

互亿无线提供11种语言代码示例,按成功计费。Node.js团队若想补齐告警触达,注册免费试用,拿测试条数先跑通一条异步告警。

立即开始免费测试

注册即送免费测试条数,30分钟快速接入多通道预警API

免费注册,开始测试
咨询热线:400-118-6878
高新技术企业

高新技术企业

专精特新企业

专精特新企业

ISO9001认证

ISO9001 认证

安全等级认证

安全等级认证

AAA信用企业

AAA 信用企业