背景:近期为app开发写了不少接口,上线之前设计的监控模式是内部监控,即在接口调用层面,当远程服务无响应的时候记录失败信息,并定时将失败信息报警。这种机制一定程度上起到了监控的作用,但当监控系统运行环境出现问题导致监控失败时,极有可能就丧失了监控的功能。

为了避免这种情况,考虑增加一个外部监控,即使用一个第三方的监控系统,模拟接口请求,定时调用api接口,如果请求状态正常,则认定api运行正常;如果请求状态失败,则考虑将失败信息纳入失败队列,定期处理失败队列并进行报警。

当然,这种第三方的监控仍然无法避免自身宕机时导致无法监控的情况,但与api业务剥离后,本身不会受生产环境不可控制的因素导致系统无法运行的影响,因此是个重要的补充监控手段。

此外,在这种第三方监控中,也可以考虑加入一个阀值,当监控程序检测到某段时间内失败次数超出某个阀值的时候,就进行报警。