谈谈系统监控应该怎么做

文章首发于公众号 松花皮蛋的黑板报
作者就职于京东,在稳定性保障、敏捷开发、高级JAVA、微服务架构有深入的理解


        什么样的系统才算成功的呢?很显然,能让系统关联方都满意的系统才算是成功的,想要做好这点,必须做好监控。监控是系统的眼睛,它能让我们及时发现问题,不至于被动地等着用户来反馈,但是监控不能过多过杂。否则,当真的发生异常时反而会使重要的信息石沉大海,不管是在告警列表里还是在系统日记中。


        一个系统关联方可能有外部用户、运营人员、研发、运维、客服等等,想让他们能满意,我们可以以总分总的思想方针尽量做到下面几点,总分总的意思就是将目标分成子目标,每个子目标的实现方法、验证方法可能是有交集的。刚刚说的关键点如下,保证外部用户随时可以看到非错误页面、操作总是可用的,保证运营人员关心的数据是无安全问题的、流转是实时的、计算是准确的,保证运维关心的应用服务、数据库是正常的,保证客服反馈给产品或者运营的问题能够准确及时得到响应。


        我们有很多方法能验证自己的系统能否让系统关联方都满意。其一,可以通过可用率监控验证我们是否能提供一个高可用的平台,这个可用率监控针对点可以是概括性的,也可以针对某个URL页面访问进行监控,还可以针对重要流程节点都进行监控。不过随着微服务架构的盛行,一个完整流程功能可能分别部署到不同的节点上,那我们就需要有一个大屏监控,保证能及时发现节点问题。其二,可以通过调用次数(成交量)监控验证功能是否总是可用的,验证依赖上游出现问题时托底方案是否生效。其三,前面有说到数据要具备安全性、实时性、准确性,那我们可以实现具备审批流、对账、补账的系统,通过检查正确度、准确度验证这些功能是否生效。当然,性能监控也是不可或缺的。


        不过我不得不泼冷水,想要实现让关联方都满意的系统很难,但是我们可以使用归纳法查漏补缺慢慢实现这个远大的目标,当出现问题时,同问题反馈方积极沟通,了解清楚复现步骤,然后进行工单分析处理,最后再做问题复盘。

文章来源:www.liangsonghua.me

作者介绍:京东资深工程师-梁松华,在稳定性保障、敏捷开发、JAVA高级、微服务架构方面有深入的理解



全部评论

相关推荐

02-01 12:05
复旦大学 Java
腾讯的提前批大概率应该是没有笔试的,但是这个时候有相当部分的同学简历估计都没有准备好,没准备好的同学也不用急,大部分都是3月之后开,这个时候开的绝大多数都是神仙打架,问的东西也比较难,打算投递的同学也多看下计算机网络和操作系统,腾讯对这部分的知识问的比较多。另外多刷下牛客的热门题库,刷题注意刷ACM模式,和牛客的周赛题,腾讯有的部门会从这里面出原题。我是@程序员花海关注我,带你了解更多校招资讯!
程序员花海:还没有来得及准备的同学可以看下学习路线:https://www.nowcoder.com/discuss/824693499982315520?sourceSSR=users算法题:https://www.nowcoder.com/feed/main/detail/20e7a999fa04485b88340a274411ca0d?sourceSSR=users八股文:https://www.nowcoder.com/discuss/833102362771251200?sourceSSR=users简历书写方式:https://www.nowcoder.com/discuss/839907820706205696?sourceSSR=users都是以前在牛客发的文章~
软开人,秋招你打算投哪些...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务