场景:监控联动语音告警 监控发现服务异常、接口超时或磁盘告警时,需要第一时间电话通知值班人。短信易被忽略,语音能直接拨通到人。用定时任务轮询指标,触发时调用语音接口形成告警闭环。 一、定时任务与接口调用 const https=requir…
场景:监控联动语音告警
监控发现服务异常、接口超时或磁盘告警时,需要第一时间电话通知值班人。短信易被忽略,语音能直接拨通到人。用定时任务轮询指标,触发时调用语音接口形成告警闭环。
一、定时任务与接口调用
const https=require('https'),qs=require('querystring');
function callVoice(mobile,content){
const post=qs.stringify({account:process.env.IHY_ACCOUNT,
password:process.env.IHY_KEY,mobile,content});
const req=https.request({hostname:'api.ihuyi.com',
path:'/voice/vm',method:'POST',
headers:{'Content-Type':'application/x-www-form-urlencoded'}},
r=>{let b='';r.on('data',d=>b+=d);r.on('end',()=>console.log(b))});
req.end(post);
}
setInterval(()=>{if(checkAlert())callVoice('13800138000','服务异常请处理');},60000);
二、告警策略设计
- 用 setInterval 或 node-cron 按周期检查监控指标;
- 设告警阈值与静默时间,避免同一问题重复拨打;
- code 为 2 表示受理成功,否则记录错误并重试;
- 未接听可开启失败自动补呼,自定义次数与间隔;
- 语音加短信双呼,到达率可达 95% 以上。
三、上线建议
- 凭证放环境变量,不要提交到代码仓库;
- 对告警频次限频,防止频繁外呼;
- 记录通话时长复盘响应时效。