微服务 全链路监控
1.什么是全链路监控?
在分布式微服务架构中,系统为了接收并处理一个前端用户请求,需要让多个微服务应用协同工作,其中的每一个微服务应用都可以用不同的编程语言构建,由不同的团队开发,并可以通过多个对等的应用实例实现水平扩展,甚至分布在横跨多个数据中心的数千台服务器上。单个用户请求会引发不同应用之间产生一串顺序性的调用关系,如果要对这些调用关系进行监控,了解每个应用如何调用,这就产生了全链路监控。
不同的微服务项目之间会发生互相调用,这些应用会调用消息服务器和数据库。
所谓的全链路监控就是对代码的调用进行监控 。出现问题就会在可视化界面进行显示,这样利于排错。
Prometheus监控的是宏观的一些组件,守护进程,容器等。全链路是对代码调用进行监控。
2.为什么要进行全链路监控?
在微服务架构中,服务会被拆分成多个模块,这些模块可能由不同的开发团队开发、维护,也可能使用不同的编程语言来实现、也有可能分布在多台服务器上,由于服务的拆分,单个用户的请求会经过多个微服务,相互之间形成复杂的调用关系,传统的监控手段已经不能实现如此复杂的链路之间的监控了,因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。可以对代码级别调用关系进行监控。
1. 传统监控工具无法对代码调用监控
2. 方便出发问题开发能够快速的定位到代码之间哪个调用环节有问题
Prometheus+alertmahager+grafana 监控容器、物理节点、业务组件、k8s(pod数量)自定义的一些监控项。
全链路监控工具zipkin、skywalking、pinpoint∶监控代码,代码之间的调用、应用程序之间的调用。
3.全链路监控能解决哪些问题?
1. 请求链路追踪,故障快速定位:可以通过调用链结合业务日志快速定位错误信息。
2. 可视化: 根据各个阶段耗时,进行性能分析优化。
3. 依赖优化:各个调用环节的可用性、梳理服务依赖关系以及优化。
4. 数据分析,优化链路:可以得到用户的行为路径,汇总分析应用在很多业务场景。
目录 返回
首页