微服务环境如何设计用户友好的监控系统?( 三 )
这一层是整个监控体系基石 , 需在该层发现系统大多数异常 。 该层也比较容易对业务设计形成反馈 。 若系统经常故障 , 可以确认故障是否集中 , 是否存在系统的短板服务 , 抑或系统整体设计是否合理 。 如服务告警容易漏报 , 确认监控系统设计能否覆盖该类型异常数据 , 或该服务数据上报是否规范 。
第三层: 逻辑监控层 , 该层跟测试关系比较密切 , 采用方法是白盒和黑盒之间类似灰色 , 即了解系统实现逻辑 , 做一些针对性验证 。 比如针对游戏营销中限量服务旁路验证 , 对涉及支付类业务对账 。 这一层实现难度比较大 , 具体实现往往带有策略 。
第四层: 业务监控层 , 该层对系统输出关键指标 (比如流量变化 , 在游戏营销场景下道具发放量) 进行监控 , 一般采用方法通常是黑盒法 。 检测方法有一定通用性 。
该层和系统监控层形成互补 。 如: 业务不上报异常数据 , 系统监控层不能发现业务异常 。 但比较严重异常 , 业务输出关键指标往往会突然变化 , 这时业务监控层就能不依赖业务上报轻松发现系统异常 。 反过来 , 如果业务系统有机器宕机或者灰度新版本等引起异常 , 这是往往有可能系统关键指标变化不明显 , 但是业务上报异常数据往往能有从零到一定数量突增 , 系统监控层就能发现这个异常 。 这一层相当部分工作是数据分析 。
第五层:综合监控层 , 这一层主要通过获取用户反馈发现异常 , 或周边相关系统告警 。
现网故障往往是因变化引起:如业务版本更新 , 外部流量变化 , 业务资源调整 。 监控需主动接入各种变更信息 。 监控最主要工作就是检测系统变化 , 并判断是不是异常 。 主动规范变更流程: 在一些时间点 , 如假期或 (吃) 饭点尽量减少系统特性变更 , 如需变更尽量事先通知相关同事 。
告警根因分析也需通过告警信息总线将各种变更信息和各层告警信息汇总 。 如业务监控层和综合监控层一般是不能单独给出根因分析 , 必须结合其它几层以及变更信息才能给出告警合理分析 。
监控作为现网运营系统 , 也存在失效可能性 , 即监控系统不工作 。 通常有以下情况:
- 监控自身异常以及监控 (发布) 变更引起
- 监控所用基础服务异常
- 外部变更引起 , 如业务大促引起流量陡增等
元监控指对监控系统进行监控的系统 , 可以用实现机理和部署环境不同的一个独立监控系统 , 对监控系统进行监控 。 元监控也可用独立第三方监控系统 。 元监控需支持监控系统上报心跳 , 对监控系统主动查询 , 以及查询 。 通过一些简单指标查询 , 能确认当前监控系统正常工作 。 业务系统异常通过 (立体) 监控体系收敛 , (立体) 监控体系收敛到元监控 , 元监控收敛到人 (监控系统运营开发人员) 。
监控即使健壮 / 智能也离不开人的主动查询 。 理想的监控系统需要人查询发现系统异常概率很低 , 即监控系统异常能主动发出告警通知相关人员 , 开发运营人员只要很低频的查询监控系统 , 以确定监控系统正常运营 。 系统监控层 / 逻辑监控层 / 业务监控层除了互补 , 本身也有冗余防止单层失效 。
监控系统设计除了需要建设立体监控体系 , 同时也需设计合理的用户交互 。 没有合理用户交互设计 , 有可能使强大的监控体系不能发挥理想作用 。 伴随监控系统演进 , 与用户的交互也在不断演化 。 下面结合运营实践讨论几个相关设计原则 。
1. 整体设计原则 , 避免打补丁式增加功能 。 如:在系统运营中时有告警没及时处理 , 造成现网故障 。 一种常见建议: 如异常还在 , 每隔一定时间持续告警 。 这种方案相对容易实现 。 但对监控系统整体设计可能不理想 。 一方面会骚扰那些及时处理异常用户 , 另一面多出告警有可能淹没其它重要告警 。 会陷入告警多收敛 , 处理不及时增加告警……收敛告警……增加告警…… 。 这种场景因分析告警不及时处理原因 。
- 无边界办公——WebDAV文件共享服务构建
- C语言开发环境
- 第2天 | 12天搞定Python,运行环境(详细步骤)
- Chiplet如何开拓半导体技术的未来
- 苹果服务业务也赚钱:第四季度仍将保持两位数增速
- 如何编写JAVA小白第一个程序
- Nginx服务器屏蔽与禁止屏蔽网络爬虫的方法
- 阿里云数智服务创新挑战赛落幕 南京大学夺冠
- 如何进行不确定度估算:模型为何不确定以及如何估计不确定性水平
- 学大数据是否有前途 如何系统掌握大数据技术