六、服务调用跟踪
众所周知,trace架构基本都源自Google Dapper。
下图为高德在基于trace基础上做的场景应用,比如服务状态自我诊断、监控追溯等。
上图为支付宝app通过无线网关的trace示意图,包括应用链路,文件存储。应用链路包括rpc调用和消息服务。《分布式服务框架》一书,林峰特别对服务调用链价值进行了汇总,体现了对于不同角色,服务调用链路跟踪的价值所在。
开发:
架构优化
消除不合理依赖
性能优化
还可以补充容量评测、设计变更分析等
测试:
识别调用流程
优化测试用例
关键路径覆盖率
还可以补充自动化端到端测试
运维:
故障定界
故障定位
提前预警
易故障点识别
七、不能承受之重:监控
7.1 监控预警的疑难问题
监控最大的问题是消息很多,我来不及看。漏报伤不起,误报也很烦,说不想半夜三更好好的睡睡觉。总结监控预警的疑难问题,大致可以分为几类:
-
报警多到没朋友、长期容易懈怠
-
不容易觉察的阴跌或者缓慢性问题
-
周期性波动导致的误报或漏报
报警多到没朋友、长期容易懈怠
对于固定阈值的报警,没有可调适性,可以形成动态阈值方案,在动态阈值上限、下限范围内都属于业务正常。
不容易察觉的阴跌或者缓慢性问题
Service耗时在不断的增加,一直到濒临临界点爆发。采取常规固定阈值或者同环比的监控,比较难发现问题。
对于上图,绿色线为观测时间,通过变点检测方法,相比传统阈值报警发现时间可以做一定的提前。