知识卡片
服务监控与服务跟踪解决的是宏观和微观两个不同问题
内容
服务监控和服务跟踪常被混为一谈,实际针对完全不同粒度的问题。服务监控关注聚合统计——某接口调用总次数、平均响应时间、错误码分布,判断”系统整体是否健康”;服务跟踪关注单次请求的完整链路——某次调用的发起时间、经过的每个节点、每一跳的响应内容,回答”这一次请求为什么慢/为什么错”。因每次请求的完整链路数据量极大,跟踪无法用监控那套聚合方式实现,两者互补而非替代,需各自独立建设。
参考来源
- 位置:《从0开始学架构》第41章《36|微服务架构最佳实践-基础设施篇》"服务监控""服务跟踪"两节(源文件:_epub-src/OEBPS/Text/part0040_split_010.html、part0040_split_011.html)
- 结论依据:原文明确"服务监控和服务跟踪的区别可以简单概括为宏观和微观的区别。例如,A服务通过HTTP协议请求B服务10次……服务监控会记录请求次数、响应时间平均值、响应时间最高值、错误码分布这些信息;而服务跟踪会记录其中某次请求的发起时间、响应时间、响应错误码、请求参数、返回的JSON对象等信息",并说明"如果每个服务的完整请求链信息都实时发送给服务监控系统,数据量会大到无法处理"。
- 原始内容:服务监控和服务跟踪的区别可以简单概括为宏观和微观的区别……服务监控会记录请求次数、响应时间平均值、响应时间最高值、错误码分布这些信息;而服务跟踪会记录其中某次请求的发起时间、响应时间、响应错误码、请求参数、返回的JSON对象等信息。