在没有线上监控的情况下放肆裸奔
乙醇 创建于 8 months 之前
最后更新: less than a minute 之前
阅读数: 572
如果你的产品出现了一个线上问题,你会是怎么样的反应?
也许会跟下面这张图一样。
哇!有一个线上bug,好慌呀!!
咦,问题似乎自动解决了? 渐渐冷静。
不对!!! 这个问题竟然突然自己就好了??? 更慌了!!!
很多测试同学应该有上面这样的心路历程。线上bug不经意间出现,却又突然消失无踪,这会让我们精神紧张,心里各种没底,寝食难安。
这时候可能就需要做一些线上监控和告警了。
其实我之前有分享过,监控可以分为3个层次。
- 基础监控。线上机器的内存,cpu,硬盘,网卡等核心指标的监控和告警。
- 服务监控。服务监控程度的监控,比如接口的调用成功率,相应时间,错误码分布等。
- 业务监控。定义核心的业务指标,比如电商的核心指标就是订单数,对业务指标进行监控和告警,一旦业务指标有异常,立即告警。
基础监控和服务监控大家都比较好理解。这里稍微具体讲一下业务监控。
以电商的核心业务指标订单为例,假设我们通过各种方式计算出在每天下午2点的时候,大概一小时会有1万单,那么如果哪天下午2点左右订单数掉到5000了,那么可能是下单链路上某个环节出问题了,就需要立即排查。
另外业务监控也可以用自动化的方式辅助去做,这样监控的路径会更长一些,排查问题也能迅速一点。
还是以下单为例,我们可以在线上用一个特殊用户不停的买一些特殊商品(当然了,有影子库和特殊策略就更好了),如果下单流程失败,另外数据又监控到订单数环比确实有异常,那么就可以根据自动化用例的报错迅速定位到问题。
最近我们线上出了一次比较严重的事故,当然导致事故的核心原因是开发流程没有正确进行,不过没有线上监控而放肆裸奔也是求生欲不够强的表现,如果一些核心数据可以被监控和告警的话,我们可能在上线之后就能迅速定位到问题,而不会等到用户投诉再去处理了。
我们在线上监控很多时候都是通过阈值去感知变化的离散程度的,合理的阈值会让告警更加精准。不过由于一些突发性的原因,这些阈值可能会在短时间被突破,但是过完一个时间周期之后自动恢复正常,在这种情况下,为了减少误报,我们可能不仅要报异常情况,还要报问题自动恢复的情况。
关于监控工具,目前市面上有很多开源免费的监控工具,都非常好用,比如
- prometheus。普罗米修斯,github star超30k,部署简单,功能强大,小白入坑无脑选择的最佳推荐;
- open-falcon。小米开源的企业级监控平台,国内很多企业都在使用。高可用易扩展,可以分布式部署,自带dashboard,最关键的是有中文文档,英文拙计的同学可以试试;
2020年大家可以给自己定一个小目标,那就是生产环境的业务监控先跑起来,不要再放肆裸奔了吧。