ImageVerifierCode 换一换
格式:PDF , 页数:4 ,大小:1.81MB ,
资源ID:3076926      下载积分:10 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wnwk.com/docdown/3076926.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于OpenTelemetry Jaeger的分布式系统调用链路监控方案.pdf)为本站会员(哎呦****中)主动上传,蜗牛文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蜗牛文库(发送邮件至admin@wnwk.com或直接QQ联系客服),我们立即给予删除!

基于OpenTelemetry Jaeger的分布式系统调用链路监控方案.pdf

1、第26卷第9期2023年9月软件工程 S O F T W A R E E N G I N E E R I N GVol.26 No.9Sep.2023文章编号:2096-1472(2023)09-0048-04DOI:10.19644/ki.issn2096-1472.2023.009.009收稿日期:2 0 2 3-0 2-2 2基于O p e n T e l e m e t r y+J a e g e r的分布式系统调用链路监控方案张爱华1,白金峰2 1.大连东软信息学院网络工程系,辽宁 大连 116023;2.欧普杰科技(大连)有限公司,辽宁 大连 ;摘 要:在分布式系统中,由于各个功能

2、模块的通信网络错综复杂,因此对于单一请求的调用链路监控与分析就显得尤为重要。文章在详细调研大部分分布式系统的通用结构和调用链路特征的基础上,设计了一套通用的分布式系统调用链路监控方案。该系统基于O p e n T e l e m e t r y(开源可观察性框架)对服务进行埋点采样及数据整体搜集,使用J a e g e r(分布式跟踪系统)对数据进行整理分析并进行可视化展示。使用该方案对分布式系统进行监控,可以快速发现系统中存在的链路问题并监控服务健康程度,使分布式系统的运行更加稳定,能给用户带来更好的体验。关键词:分布式系统;链路监控;O p e n T e l e m e t r y;J

3、a e g e r中图分类号:T P 3 9 1 文献标志码:AD e s i g n o f D i s t r i b u t e d S y s t e m C a l l L i n k M o n i t o r i n g B a s e d o n O p e n T e l e m e t r y a n d J a e g e rZHANG Aihua1,BAI Jinfeng2 1.Department of Network Engineering,Dalian Neusoft University of Information,Dalian 116023,China;2.

4、OpenJaw Technology(Dalian)Co.,Ltd.,Dalian 116023,C;A b s t r a c t:In distributed systems,monitoring and analyzing the call link of a single request is particularly important due to the complex communication networks of various functional modules.After a detailed investigation of the general structu

5、re and call link characteristics of most distributed systems,the paper proposes to design a universal distributed system call link monitoring scheme.OpenTelemetry(an open source observability framework)is used for buried point sampling and overall data collection of services,and Jaeger(a distributed

6、 tracing system)is used to organize,analyze,and visualize the data.By using this scheme to monitor distributed systems,it is possible to quickly identify link issues in the system and monitor service health,making the operation of the distributed system more stable and providing users with a better

7、experience.K e y w o r d s:distributed system;link monitoring;OpenTelemetry;Jaeger0引言(I n t r o d u c t i o n)随着互联网移动应用的兴起,一种新的计算机应用系统服务架构-分布式架构应运而生。但是,随着分布式架构方案的使用越来越多,该架构的缺点慢慢显现出来,首当其冲的就是调用链路的问题1。随着分布式系统中服务数量的增加,其相互调用的关系网络也变得错综复杂,无论是系统的开发人员,还是维护人员,都因为无法追踪一个请求的调用链路而犯难。本文针对这一情况,提供了一种通用的调用链路监控方案,细化每一

8、个服务接口的粒度。在本方案中,既可以通过可视化界面的方式查询应用接口的调用流程、错误率、负载强度,又可以通过图示的方式查看系统的调用结构。通过使用本文中提供的监控方案,系统开发人员可以快速第 26卷第 9期张爱华等:基于 OpenTelemetry+Jaeger 的分布式系统调用链路监控方案追踪系统中任意服务的调用步骤、执行的命令或者参数,方便快速排查问题;运维人员可以实时查看系统中每一个服务接口的负载压力与错误率,可以提前预判服务状态。1系统需求(S y s t e m r e q u i r e m e n t s)分布式链路监控系统的主要用户为系统的开发人员和维护人员。图1为系统开发人员

9、的需求。系统开发人员希望使用该系统查看应用的调用链路、接口耗时、调用步骤中的应用信息、参数、环境信息等,还需要查看系统的整体调用网络。图1 开发人员需求F i g.1 D e v e l o p e r r e q u i r e m e n t s如图2所示,系统维护人员希望能够查询系统的调用链路,每个接口的负载状况、错误率等信息。图2 运维人员需求F i g.2 O p e r a t o r r e q u i r e m e n t s2系统设计(S y s t e m d e s i g n)2.1技术路线系统服务端采用B/S架构,前端和后端基于H T T P协议进行通信,数据格式使

10、用J S O N。前端使用的是N o d e J S+R e a c t技术,通过N o d e J S查询S e r v e r端数据,然后结合R e a c t构造的模块化页面展示实现动态响应。系统后端使用的是G o l a n g语言,该语言自身的协程设计使其非常适合应用在处理高并发请求环境中,并且构建后的可执行产物体积小、启动方便。服务埋点以J a v a应用为例,使用的是J a v a语言本身支持的J a v a A g e n t方案,通过J a v a A g e n t挂载到应用本身的J a v a虚拟机(J a v a V i r t u a l M a c h i n e,

11、J VM)中。该方案对应用本身没有任何的代码侵入,业务应用不需要任何改造即可轻松集成A g e n t。E l a s t i c S e a r c h是一款分布式的搜索和分析引擎,该引擎可以使链路监控的数据搜集部分与展示部分解耦1。A g e n t在应用层面搜集到的应用运行数据和 日 志 等 信 息 上 报 给E l a s t i c S e a r c h引擎,引擎对数据进行存储和索引,页面展示部分从E l a s t i c S e a r c h中读取并分析数据,然后展示到页面上。O p e n T e l e m e t r y C o l l e c t o r是一款设备无关

12、性的新兴采集器。在以往的分布式系统度量数据采集方案中使用的采集器一般与技术栈绑定,一旦选择了某个技术栈中的一个工具,则后续拓展必须使用该技术栈下的其他工具。例如,在搜集应用日志时,一旦选择了使用f i l e b e a t,则后续的日志存储只能选择E l a s t i c S e a r c h,日 志 展 示 与 分 析 也 只 能 选 择K i b a n a。O p e n T e l e m e t r y C o l l e c t o r的出现打破了这一局限性,它支持从多个输入端采集数据,然后通过自定义的P r o c e s s o r处理,处理后又可以从多个输出端输出数据,

13、方便随时替换度量数据的搜集器和分析器。J a e g e r是 一 款 新 型 的 链 路 分 析 工 具,它 包 含A g e n t、A n a l y z e r、Q u e r y U I等组件。本文使用J a e g e r的A n a l y z e r和Q u e r y U I组件,其中A n a l y z e r用来分析链路数据和服务的网络结构,Q u e r y U I用来查询和展示分析后的链路和调用网络。P r o m e t h e u s是一款存储应用度量数据的工具,它提供了一种基于时间轴的新型数据存储和管理方案,可以很好地记录某一指标随着时间变化而变化的值2;同时

14、,它还提供一套类似于结构化查询语言(S t r u c t u r e d Q u e r y L a n g u a g e,S Q L),通过使用其提供的查询语言可以方便地从各个维度查询度量数据。2.2系统架构2.2.1整体架构系统的整体架构如图 3所示,系统中存在多个业务应用(B u s i n e s s A p p l i c a t i o n),并且每一个业务应用都挂载了一个A g e n t用来收集应用的度量数据和运行时的状态数据3。A g e n t收 集 数 据 后 会 发 送 给O p e n T e l e m e t r y C o l l e c t o r,C o

15、 l l e c t o r对数据进行处理后,根据不同的数据类型分别发送给J a e g e r C o l l e c t o r搜 集 器 和P r o m e t h e u s数 据 库。J a e g e r C o l l e c t o r对数据做筛选,加标签处理后存入E l a s t i c S e a r c h中等待分析和展示,E l a s t i c S e a r c h中的数据会定时由S p a r k J o b获取并计算调用网络,计算后的结果会再次存储至E l a s t i c S e a r c h中。J a e g e r Q u e r y 服 务 负

16、 责 根 据 用 户 的 需 求 将 数 据 从E l a s t i c S e a r c h和P r o m e t h e u s中取出并通过用户界面(U s e r I n t e r f a c e,U I)进行相应的展示。图3 系统整体架构F i g.3 O v e r a l l s t r u c t u r e o f t h e s y s t e m94软件工程2023年9月2.2.2高可用节点集群方案为保证系统处于高可用状态(如图 4所示),系统中的O p e n T e l e m e t r y C o l l e c t o r、J a e g e r C o

17、l l e c t o r和J a e g e r Q u e r y等组件都可以使用集群化部署,根据系统压力进行水平扩容4。图4 高可用节点集群F i g.4 H i g h a v a i l a b i l i t y n o d e c l u s t e r同时,开源组件E l a s t i c S e a r c h和P r o m e t h e u s也支持高可用的集群化部署,多节点通过访问单一存储系统实现数据一致性,开源组件高可用方案如图 5所示5。图5 开源组件高可用方案F i g.5 H i g h a v a i l a b i l i t y s o l u t i

18、 o n f o r o p e n s o u r c e c o m p o n e n t s3系统实现(S y s t e m i m p l e m e n t a t i o n)3.1节点分配如表1所示,搭建一个最小集群共需要6台机器,可以选择在虚拟机中创建这些机器并分配为固定I P。其中,用来部署E l a s t i c S e a r c h的机器需要分配足够的内存(建议不小于8 G B)和存储(不小于5 0 G B);用来部署P r o m e t h e u s的机器需要分配足够的存储(不小于5 0 G B);用来部署C o l l e c t o r的两台机器需要分配

19、足够的C P U(不小于双核),以满足运算需要。表 1 系统机器分配列表T a b.1 S y s t e m m a c h i n e a l l o c a t i o n l i s t机器I P机器用途备注1 9 2.1 6 8.1 0.1O p e n T e l e m e t r y C o l l e c t o rC P U需要多分配1 9 2.1 6 8.1 0.2J a e g e r C o l l e c t o rC P U需要多分配1 9 2.1 6 8.1 0.3J a e g e r Q u e r y无特殊要求1 9 2.1 6 8.1 0.4E l a

20、s t i c S e a r c h存储、内存多分配1 9 2.1 6 8.1 0.5P r o m e t h e u s存储多分配1 9 2.1 6 8.1 0.6U I&S p a r k J o b无特殊要求3.2应用的配置与部署由于开源组件E l a s t i c S e a r c h和P r o m e t h e u s的部署方案在官网 或 者 网 络 上 有 很 多 相 关 资 料,故 在 此 不 做 赘 述。O p e n T e l e m e t r y C o l l e c t o r的部署重点是配置文件的编写,需要配置C o l l e c t o r的输入监

21、听、数据处理器和输出监听。输入监听使用的是J a e g e r格式数据的监听方案,数据处理器使用S p a n M e t r i c s方案将度量数据与链路数据进行拆分,输出监听分别需要P r o m e t h e u s 和J a e g e r C o l l e c t o r。配置文件的具体内容如图 6所示。图6 O p e n T e l e m e t r y c o l l e c t o r 配置文件F i g.6 C o n f i g u r a t i o n f i l e o f O p e n T e l e m e t r y c o l l e c t o

22、 rJ a e g e r C o l l e c t o r可以使用官网上的二进制文件,然后通过命令行参数的方式直接启动该应用即可,主要的命令行参数包括指定存储类型、索引前缀名称等。将下载好的二进制文件放在/o p t/a p p/j a e g e r/j a e g e r-c o l l e c t o r中,则可以使用图7中的命令启动J a e g e r C o l l e c t o r。图7 J a e g e r 收集器命令行启动参数F i g.7 S t a r t u p p a r a m e t e r s o f J a e g e r c o l l e c t

23、o r c o mm a n d l i n eJ a e g e r Q u e r y 和J a e g e r U I的启动方式与J a e g e r C o l l e c t o r的启动方案类似,这里不再赘述。3.3业务服务A g e n t配置以J a v a应用为例,使用J a v a A g e n t的方案进行配置6。该方案需要准备收集数据的A g e n t.j a r和应用相关的参数配置文件,应用配置文件内容详解如图 8所示。更新参数配置文件后,需要对业务服务的启动命令进行改造,将a g e n t和a g e n t使用的应用参数配置文件加入启动命令中,应用启动参数

24、的修改如图 9所示。05第 26卷第 9期张爱华等:基于 OpenTelemetry+Jaeger 的分布式系统调用链路监控方案图8 A g e n t 应用相关参数配置F i g.8 A g e n t a p p l i c a t i o n r e l a t e d p a r a m e t e r c o n f i g u r a t i o n图9 应用启动参数的修改F i g.9 M o d i f i c a t i o n o f a p p l i c a t i o n s t a r t u p p a r a m e t e r s4系统测试(S y s t e

25、 m t e s t i n g)4.1服务应用A g e n t测试系统采用的是A g e n t挂载到业务应用上的启动方案,所以对A g e n t的测试可通过应用打印的启动日志进行查看7。在应用启动的过程中,可以通过观察应用的输出日志判断A g e n t是否成功挂载到应用上。经测试,A g e n t已经成功挂载到应用上。4.2链路监控系统测试对链路监控系统的测试,可以通过访问应用接口和提升应用接口压力的方案实现。通过访问业务应用的接口,然后在本系统中查看追踪到的链路即可确认链路上报与监控功能是否可用8。经测试,系统的链路监控功能可用,链路监控页面测试结果如图1 0所示。图1 0 链路

26、监控页面测试结果F i g.1 0 T e s t r e s u l t s l i n k m o n i t o r i n g p a g e4.3指标展示测试对系统的指标展示的测试,可以通过给指定应用增加访问压力迫使指标数据出现波动的方案实现。经测试,系统指标展示功能可用。系统指标数据页面测试结果如图1 1所示。图1 1 指标数据页面测试结果F i g.1 1 T e s t i n g r e s u l t s o f i n d i c a t o r d a t a p a g e4.4其他测试除了上述几项重要功能测试,本文还对系统的其他分支功能如链路步骤查询、链路标签查询、

27、链路中某一步骤参数与结果分析、链路对比、服务网络分析等进行测试,测试结果均正常,各项功能均可用。4.5测试结果总结系统共设计了功能性测试用例共3 5个,执行成功3 5个;设计了非功能性测试1 2个,成功执行了1 2个;设计了性能测试共3项,在单节点状态下,服务接口成功率达9 9.9 7%,系统资源占用稳定,没有内存泄漏和C P U占用率过高的情况。5结论(C o n c l u s i o n)本文提出的链路监控方案与传统的链路监控方案相比,对业务应用的侵入几乎可以忽略不计,对业务应用的性能影响非常小。同时,提供了更全面、详细的各项链路指标,方便系统的开发和维护人员快速排查、定位问题。同时,系

28、统的可拓展性非常强,既可以兼容现有比较主流的链路监控插件,也可以支持个性化的链路监控指标配置。参考文献(R e f e r e n c e s)1 李传根.E l a s t i c s e a r c h数据存储策略研究D.重庆:重庆邮电大学,2 0 1 9.2 刘小磊,程伟华,章路进.基于P r o m e t h e u s的云计算资源全链 路 监 控 系 统 J.电 子 设 计 工 程,2 0 2 3,3 1(2):1 7 0-1 7 4.3 张华兵,周英耀,徐磊,等.基于微服务架构的电力信息系统全链路监控技术J.沈阳工业大学学报,2 0 2 2,4 4(4):4 0 9-4 1 4.

29、4 张智强,郭龙,赵雷,等.分布式软件开发与系统集成平台的研究J.物联网技术,2 0 2 0,1 0(6):6 7-7 0,7 5.5 夏刚.数据中心基础设施高可用提升研究与实践J.中国金融电脑,2 0 2 2(5):8 3-8 5.6 李庆民.基于j a v a的软件a g e n t开发环境的分析J.数字技术与应用,2 0 1 7(1):1 8 9.7 K A D A B,KHA L I D M,S HA I KH M S.D i s t r i b u t e d c o o p-e r a t i v e c o n t r o l o f a u t o n o m o u s m

30、u l t i-a g e n t U A V s y s t e m s u-s i n g s m o o t h c o n t r o lJ.J o u r n a l o f S y s t e m s E n g i n e e r i n g a n d E l e c t r o n i c s,2 0 2 0,3 1(6):1 2 9 7-1 3 0 7.8 P O S H T K OH I A,G HA Z N A V I-G HO U S H C H I M B.I m-p l e m e n t i n g p a r a l l e l a n d d i s t r i b u t e d s y s t e m sM.B o c a R a-t o n:C R C P r e s s,2 0 2 2:1 6-2 2.作者简介:张爱华(1 9 8 1-),女,硕士,讲师。研究领域:D e v O p s,网络工程,软件开发。白金峰(1 9 9 7-),男,本科,工程师。研究领域:L i n u x,分布式系统,D e v O p s。15

copyright@ 2008-2023 wnwk.com网站版权所有

经营许可证编号:浙ICP备2024059924号-2