分布式追踪系统应用调研
作者:互联网
分布式追踪系统应用调研(Doing...)
部门:运维技术部
时间:2021年6月8号
作者:敦岳
文章有引用部分内容未找到具体的作者所以未标注作者,请见谅 一、序言 业务不断的增加,模块的不断拆分,系统间业务调用就变得越复杂,对定位线上故障带来很大困难。整个调用链不透明,犹如系统被蒙上一块黑纱,当线上遇到故障时,整个技术部就陷入痛苦的漩涡。一次请求往往需要涉及到多个服务,因此服务性能监控和排查就变得更复杂,这时候分布式追踪系统应运而生,如揭开了黑纱,让阳光照进黑暗。 二、调研主题 APM的原理、流行部署架构、部署方案、系统已有的问题点和风险点把控 三、原理简介 1、APM(应用性能管理)与Dapper原理介绍 什么是APM APM (Application Performance Management) 即应用性能管理(应用性能监控) APM主要是针对企业 关键业务的IT应用性能和用户体验的监测、优化,提高企业IT应用的可靠性和质量。 旨在确保最终用户获得高质量的体验,降低IT总拥有成本(TCO) TCO (Total Cost of Ownership ),即总拥有成本,包括产品采购到后期使用、维护的成本。 这是一种公司经常采用的技术评价标准。 APM介绍 目前市面的系统基本都是参考 Google 的 Dapper(大规模分布式系统的跟踪系统)来做的。 跟踪业务请求的处理过程,完成对应用系统在前后端处理、服务端调用的性能消耗跟踪,提供可视化的界面来展示对跟踪数据的分析。 通过汇聚业务系统各处理环节的实时数据,分析业务系统各事务处理的交易路径和处理时间,实现对应用的全链路性能监测。 APM工具与传统的性能监控工具的区别在于,不仅仅提供一些零散的资源监控点和指标,其主要关注在系统内部执行、系统间调用的性能瓶颈分析,这样更有利于定位到问题的具体原因。 APM致力于检测和诊断应用性能问题,从而能提供应用预期的服务水平。 APM三大特征
文章有引用部分内容未找到具体的作者所以未标注作者,请见谅 一、序言 业务不断的增加,模块的不断拆分,系统间业务调用就变得越复杂,对定位线上故障带来很大困难。整个调用链不透明,犹如系统被蒙上一块黑纱,当线上遇到故障时,整个技术部就陷入痛苦的漩涡。一次请求往往需要涉及到多个服务,因此服务性能监控和排查就变得更复杂,这时候分布式追踪系统应运而生,如揭开了黑纱,让阳光照进黑暗。 二、调研主题 APM的原理、流行部署架构、部署方案、系统已有的问题点和风险点把控 三、原理简介 1、APM(应用性能管理)与Dapper原理介绍 什么是APM APM (Application Performance Management) 即应用性能管理(应用性能监控) APM主要是针对企业 关键业务的IT应用性能和用户体验的监测、优化,提高企业IT应用的可靠性和质量。 旨在确保最终用户获得高质量的体验,降低IT总拥有成本(TCO) TCO (Total Cost of Ownership ),即总拥有成本,包括产品采购到后期使用、维护的成本。 这是一种公司经常采用的技术评价标准。 APM介绍 目前市面的系统基本都是参考 Google 的 Dapper(大规模分布式系统的跟踪系统)来做的。 跟踪业务请求的处理过程,完成对应用系统在前后端处理、服务端调用的性能消耗跟踪,提供可视化的界面来展示对跟踪数据的分析。 通过汇聚业务系统各处理环节的实时数据,分析业务系统各事务处理的交易路径和处理时间,实现对应用的全链路性能监测。 APM工具与传统的性能监控工具的区别在于,不仅仅提供一些零散的资源监控点和指标,其主要关注在系统内部执行、系统间调用的性能瓶颈分析,这样更有利于定位到问题的具体原因。 APM致力于检测和诊断应用性能问题,从而能提供应用预期的服务水平。 APM三大特征
- 多级应用性能监控:覆盖通讯协议1-7层,通过事务处理过程监控、模拟等手段实现端到端应用监测。
- 应用性能故障快速定位:对应用系统各个组件进行监测,迅速定位系统故障,并进行修复或提出修复建议。
- 应用性能全面优化:精确分析各组件占用系统资源的情况,并根据应用系统性能要求给出专家建议。
- DEM-Digital experience monitoring:数字体验监控,浏览器及移动设备用户体验监控及利用主动拨测的实现的业务可用性及性能监控。
- ADTD-Application discovery, tracing and diagnostics:应用自动发现、追踪和故障诊断,自动发现应用之间的逻辑关系,自动建模、应用组件的深入监控及性能关联分析。
- AA-Application analytics:应用分析,通过机器学习,进行针对JAVA及.NET等应用的根源分析。
- 低消耗,高效率:被跟踪的系统为跟踪所付出的系统资源代价要尽量小,现在主流的APM对于系统资源的消耗在2.5%-5%左右,但是这个数值应该越小越好,因为在大规模的分布式系统下,一个单节点的资源是无法把控的,可能是超强配置,也可能是老爷机,只跑几个小服务,但是本身性能已经十分吃紧了,如果这时候跟踪应用再一跑,很可能这个节点就挂掉了,得不偿失。
- 低侵入性,足够透明:作为跟踪系统,侵入性是不可能不存在的,关键这种侵入性要在哪个层面,如何在越底层的层面上侵入,对于开发者的感知和需要配合跟踪系统的工作就越少,如果在代码层面就需要进行侵入,那对于本身业务就比较复杂的应用来说,代码就更加冗余复杂了,也不利于开发者快节奏的开发。
- 灵活的延展性:不能随着微服务和集群规模的扩大而使分布式跟踪系统瘫痪,要能够充分考虑到未来分布式服务的规模,跟踪系统至少要在未来几年内完全吃得消。
- 跟踪
- 数据可视化
- 和迅速反馈:要有可视化的监控界面,从跟踪数据收集、处理到结果的展现尽量做到快速,就可以对系统的异常状况作出快速的反应
- 持续的监控: 要求分布式跟踪系统必须是7x24小时工作的,否则将难以定位到系统偶尔抖动的行为
- 分布式上下文传递
- 分布式事务监控
- 根本原因分析
- 服务依赖分析
- 性能、延迟优化
- jaeger-agent
- jaeger-collector
- jaeger-query
- jaeger-standalone
- jaeger-ingester
- 1、启动collector
- 2、启动agent
- 3、启动query
- 4、官方自带测试例子部署运行:
- 5、jaeger前端UI
- 6、测试数据触发生产测试数据
- 7、ES测试数据查询
标签:http,监控,性能,jaeger,分布式,应用,APM,追踪,调研 来源: https://blog.51cto.com/tobeawhole/2891715