微服务下的报警设计

概要

之前我写过一篇文章,介绍微服务框架下如何打印日志 -- 微服务下的日志打印标准_zhanglehes的博客-CSDN博客_微服务日志traceid

虽然通过日志记录,我们可以获取到任何时刻的异常情况。但是打印日志毕竟是一种“被动”行为,当线上服务出现问题时,我们需要一种主动通知的机制。这就是报警。

架构设计

通常有两种报警通知的设计模式。

一是日志收集,在服务器上有个log-agent,通过事先制定的正则表达式去匹配服务打印的每行日志。一旦匹配上,会统计相关参数,发送给消息队列,最后数据被灌入数据库中。

二是metrics上报,服务直接调用metrics函数,通过udp的方式将报警内容发送给本机的一个agent上,agent的作用是聚合metrics指标,避免过多的网络开销。agent会定期将收集到的metrics信息上报到服务器上。

第一种方式实现简单,第二种方式更专业。

指标

最长用的报警指标有也是有两类。

一是计数,如统计上游的调用量,某种错误出现的次数等;

二是RPC,它是专门针对rpc调用设计的,包括返回错误码,latency,caller,callee,function等参数。

公用的参数包括metric_name, tags等。

如何添加报警

介绍一些通用的设计思路,每个服务需要根据其自身的独特性,再进行单独设计。

对接上游

名称 类型 指标
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值