《重新定义Spring Cloud实战》——1.2.7 Spring Cloud与全链路监控中间件
1.2.7 Spring Cloud与全链路监控中间件
众所周知,中大型互联网公司的后台业务系统由众多的分布式应用组成。一个通过浏览器或移动客户端的前端请求到后端服务应用,会经过很多应用系统,并且留下足迹和相关日志信息。但这些分散在每个业务应用主机下的日志信息不利于问题排查和定位问题发生的根本原因。此时就需要利用全链路监控中间件收集、汇总并分析日志信息,进行可视化展示和监控告警。全链路监控中间件应该提供的主要功能包括:
定位慢调用:包括慢Web服务(包括Restful Web服务)、慢REST或RPC服务、慢SQL。
定位各种错误:包括4××、5××、Service Error。
定位各种异常:包括Error Exception、Fatal Exception。
展现依赖和拓扑:域拓扑、服务拓扑、trace拓扑。
Trace调用链:将端到端的调用,以及附加在这次调用的上下文信息,异常日志信息,每一个调用点的耗时都呈现给用户进行展示。
应用告警:根据运维设定的告警规则,扫描指标数据,如违反告警规则,则将告警信息上报到中央告警平台。
全链路监控中间件相关产品发展至今百花齐放,如京东Hydra,阿里Eagleye,这两个中间件都吸收了Dapper/Zipkin的设计思路,但是目前都未开源。近年,社区又发展出很多调用链监控产品,如国内开源爱好者吴晟(原OneAPM工程师,目前在华为)开源并提交到Apache孵化器的产品Skywalking,它同时吸收了Zipkin/Pinpoint/CAT的设计思路,支持非侵入式埋点。如果使用Java技术栈,希望采用非侵入式的监控,推荐使用Pinpoint或者Skywalking。
本书的相关章节介绍了Spring Cloud Sleuth的实战用法,以及如何借助Pinpoint或者Skywalking实现Spring Cloud体系下的全链路监控。
- 点赞
- 收藏
- 关注作者
评论(0)