全链路监控
随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求 往往需要涉及到多个服务。这些服务可能不同编程语言开发,不同 团队开发,可能部署很多副本。因此,就需要一些可以帮助理解系 统行为、用于分析性能问题的工具,以便发生故障的时候,能够快 速定位和解决问题。全链路监控组件就在这样的问题背景下产生了。
全链路性能监控 从整体维度到局部维度展示各项指标,将跨应用的 所有调用链性能信息集中展现,可方便度量整体和局部性能,并且 方便找到故障产生的源头,生产上可极大缩短故障排除时间。
全链路监控解决什么问题
• 请求链路追踪:通过分析服务调用关系,绘制运行时拓扑信息,可视化展示
• 调用情况衡量:各个调用环节的性能分析,例如吞吐量、响应时间、错误次数
• 容器规划参考:扩容/缩容、服务降级、流量控制
• 运行情况反馈:告警,通过调用链结合业务日志快速定位错误信息
全链路监控选择依据
全链路监控系统有很多,应从这几方面选择:
• 探针的性能消耗
APM组件服务的影响应该做到足够小,数据分析要快,性能占用小。
• 代码的侵入性 即也作为业务组件,应当尽可能少入侵或者无入侵其他业务系统, 对于使用方透明,减少开发人员的负担。
• 监控维度 分析的维度尽可能多。
• 可扩展性 一个优秀的调用跟踪系统必须支持分布式部署,具备良好的可扩展 性。能够支持的组件越多当然越好。
主流系统:zipkin、skywalking、pinpoint
Pi