1、全链路监控简介
在分布式微服务架构中,系统为了接收并处理一个前端用户请求,需要让多个微服务应用协同工作,其中 的每一个微服务应用都可以用不同的编程语言构建,由不同的团队开发,并可以通过多个对等的应用实例实现水平扩展,甚至分布在横跨多个数据中心的数千台服务器上。单个用户请求会引发不同应用之间产生 一串顺序性的调用关系,如果要对这些调用关系进行监控,了解每个应用如何调用,这就产生了全链路监控。
全链路监控说的是对代码的监控,对代码调用的监控。
2、为什么要进行全链路监控
在微服务架构中,服务会被拆分成多个模块,这些模块可能由不同的开发团队开发、维护,也可能使用不同的编程语言来实现、也有可能分布在多台服务器上,由于服务的拆分,单个用户的请求会经过多个微服务,相互之间形成复杂的调用关系,传统的监控手段已经不能实现如此复杂的链路之间的监控了,因此, 就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。
1. 传统监控工具无法对代码调用监控。
2. 方便出现问题开发能够快速定位到代码之间哪个调用环节有问题。
对代码级别的调用关系进行监控,Prometheus + Alertmanager + grafana监控容器、物理节点、业务组件、自定义一些监控项。
全链路监控工具:zipkin、skywalking、pinpoint。