CN117312104B - 一种基于机场生产运营系统的可视化链路追踪方法及系统 - Google Patents
一种基于机场生产运营系统的可视化链路追踪方法及系统 Download PDFInfo
- Publication number
- CN117312104B CN117312104B CN202311617307.1A CN202311617307A CN117312104B CN 117312104 B CN117312104 B CN 117312104B CN 202311617307 A CN202311617307 A CN 202311617307A CN 117312104 B CN117312104 B CN 117312104B
- Authority
- CN
- China
- Prior art keywords
- link
- agent
- service
- airport
- skywalking
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 98
- 238000004519 manufacturing process Methods 0.000 title claims abstract description 27
- 230000000007 visual effect Effects 0.000 title claims abstract description 27
- 239000003795 chemical substances by application Substances 0.000 claims description 52
- 230000008569 process Effects 0.000 claims description 49
- 239000000523 sample Substances 0.000 claims description 45
- 230000004044 response Effects 0.000 claims description 28
- 238000007405 data analysis Methods 0.000 claims description 13
- 230000002776 aggregation Effects 0.000 claims description 9
- 238000004220 aggregation Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 9
- 238000005516 engineering process Methods 0.000 claims description 7
- 238000005259 measurement Methods 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000002347 injection Methods 0.000 claims description 6
- 239000007924 injection Substances 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 3
- 238000009826 distribution Methods 0.000 claims description 2
- 230000001360 synchronised effect Effects 0.000 claims description 2
- 230000001939 inductive effect Effects 0.000 claims 1
- 238000003745 diagnosis Methods 0.000 abstract description 3
- 238000004590 computer program Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006698 induction Effects 0.000 description 2
- 230000008092 positive effect Effects 0.000 description 2
- 229920001872 Spider silk Polymers 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
- H04L43/045—Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0847—Transmission error
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Environmental & Geological Engineering (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于互联网链路追踪技术领域,公开了一种基于机场生产运营系统的可视化链路追踪方法及系统。该方法利用dubbo框架,集成SkyWalking自动追踪链路的特性,基于机场业务制定特定的链路追踪方案。本发明为应用的开发者和维护者提供完整的可视化的调用链路还原,能够直观的显示出此次调用每个步骤的耗时情况,可以帮助开发者快速分析和诊断系统架构下的性能瓶颈,提高故障诊断效率。本发明通过将SkyWalking集成到机场生产运营系统,解决了机场旧框架系统较难使用链路追踪的问题,为机场系统的稳定和性能提供保障。
Description
技术领域
本发明属于互联网链路追踪技术领域,尤其涉及一种基于机场生产运营系统的可视化链路追踪方法及系统。
背景技术
随着航空业迅速发展,当现场系统遇到问题需要排查时,例如系统异常或者系统性能问题,传统的问题排查手段,通常都是从系统记录的日志文件中找出蛛丝马脚。日志文件的分散且信息量大,想从日志中查找问题工作量很大,并且日志中不一定包含必要的信息,对于用户某一次请求调用后端哪些服务,每个服务执行情况,想从日志中获得更是不可能的事。
对于传统的监控告警平台也仅仅对平台资源的监控包括CPU、内存、网络带宽情况等,对业务微服务应用的指标(平均响应时间、慢端点情况等)的监控显得无从下手。链路追踪系统可以记录请求范围内的信息,例如一次远程方法调用的执行过程和耗时,是排查系统问题和系统性能的重要工具。
目前基于SkyWalking的链路追踪,对于springboot等项目集合起来非常方便,但是对于机场系统使用较旧框架,集成起来非常麻烦,这是目前市场上机场生产运营系统大多没有链路追踪应用的技术难题。
通过上述分析,现有技术存在的问题及缺陷为:现有技术对调用链路调用中每个步骤的耗时情况不能及时直观的显示,以及不能对故障节点快速进行诊断。
发明内容
为克服相关技术中存在的问题,本发明公开实施例提供了一种基于机场生产运营系统的可视化链路追踪方法及系统。本发明使用了较成熟的SkyWalking中间件,创新点在于在其基础上进行了封装,提出了适配与机场系统的链路系统。
所述技术方案如下:基于机场生产运营系统的可视化链路追踪方法,利用dubbo框架和集成SkyWalking自动追踪链路,基于机场业务制定链路追踪方案;具体包括以下步骤:
S1:前端通过SkyWalking的Agent探针收集链路信息,并传递给后端服务器;
S2:后端服务器使用Agent探针,进行后端服务中jboss容器的启动;
S3:后端服务器使用的缓存A,将链路信息和性能指标发送给Skywaling的后台服务;
S4:后端服务器将链路信息和性能指标发送给Skywaling的后台服务;
S5:后端服务器的中间件,利用Agent探针将链路信息和性能指标发送给Skywaling的后台服务;
S6:对于使用的缓存B、数据库B的微服务,通过Agent探针将信息发送到SkyWalking的后台服务;
S7:SkyWalking OAP接收Agent发送的数据信息,进行数据聚合、数据分析,并将结果存储到外部存储器;
S8:利用外部存储器进行查询;
S9:利用SkyWalking UI提供控制台界面,查看链路及管理SkyWalking数据。
在步骤S1中,前端通过SkyWalking的Agent探针收集链路信息,包括:Agent探针基于语言的原生代理,在jboss启动命令中添加基于语言的远程代理-javaagent,启动时代理用户代码,运行时实时抓取数据;
所述javaagent用于指定在启动Java应用程序时加载代理程序,在Java应用程序启动命令中,使用-javaagent选项指定代理程序的路径;JVM根据指定的路径加载代理程序,并在应用程序启动之前执行代理程序的premain方法;代理程序使用字节码注入技术,修改应用程序的字节码,以实现抓取数据的功能;所述字节码注入技术在程序执行过程中,向程序的字节码中插入额外的指令或代码。
进一步,Agent探针收集链路信息包括:链路追踪和性能指标,将Trace和Span按照SkyWalking定时的格式进行格式化,发送给后端服务器。
进一步,所述前端使用OSGI架构,将OSGI的父加载器设置为AppClassLoader,启动时代理各个bundle;
所述OSGI架构使用模块化架构,将各个应用程序分解为独立的模块,定义为bundles;
各个独立的模块使用单独的类加载器进行加载,使用-Dorg.osgi.framework.bundle.parent=app配置时,使用一个app的主bundle当做整个应用程序的入口点,OSGI的父加载器设置为AppClassLoaderOSGI,使整个OSGI架构能被统一代理。
进一步,在jboss启动命令中添加基于语言的远程代理-javaagent。
在步骤S4和步骤S6中,使用数据库获取唯一时间准确无误差的情况下,结合机场时钟同步系统,实现各个调用过程的时间戳准确性,进而实现整个调用过程内的网络、建立链接无法通过系统记录的过程追踪;
其中,所有组件接入机场时钟同步系统,通过NTP网络协议实现时钟同步,从而保证过程中每个组件的时间戳一致。
在步骤S7中,SkyWalking OAP接收Agent发送的数据信息包括:链路追踪数据、度量指标数据;
链路追踪数据为各个端点的链路信息,包括接口名称、执行耗时,度量指标数据包括每个端点的调用总数、耗时平均时长、不同时长占比;
所述进行数据聚合、数据分析包括:SkyWalking将原始数据进行计算和合并,以生成有用的性能指标、统计信息和报告;数据聚合包括:根据各个span的tracingId生成同一链路的数据;
数据分析包括:计算每个应用程序或服务的吞吐量、响应时间、错误率,生成跨服务请求链路的性能报告,包括成功率、延迟分布。
进一步,所述前端通过将探针集成到OSGI框架中,使得OSGI的各个模块能够统一被代理,将前端的链路信息及性能指标信息上报到SkyWalking的服务中。
进一步,所述后端服务器通过将SkyWalking探针集成到jboss容器中,自动对服务开始至结束整个过程各个阶段耗时进行记录,结合机场实际业务需求,对SkyWalking原生记录信息进行归纳调整;
自动对服务开始至结束整个过程各个阶段耗时进行记录包括:SkyWalking探针,相当于系统代码的一层代理,当调用系统服务开始和结束时,都经过这层代理,记录下开始和结束的时间;
对SkyWalking原生记录信息进行归纳调整包括:
SkyWalking会记录所有接口的信息,需要结合机场实际业务过滤是否都需要,边缘业务并不需要链路信息,对响应时间要求高的业务则需要在耗时超过一定阈值时,进行预警;
所述对响应时间要求高的业务根据请求频率判断,对于人工操作频繁的业务,响应时间应在100ms内,保证及时响应;
所述阈值范围根据现场接口耗时平均值核定,不同的接口,响应阈值不同。
本发明的另一目的在于提供一种基于机场生产运营系统的可视化链路追踪系统,该系统通过所述的基于机场生产运营系统的可视化链路追踪方法实现,该系统包括:
dubbo微服务框架单元,用于结合dubbo的负载均衡、OSGI架构、jboss容器框架特性,通过将SkyWalking的Agent探针集成到各个端点,对服务调用、数据缓存、数据库访问、前端响应整个调用各个过程完成链路信息和度量指标的收集,最终完成调用完整过程的全记录,并监控各端点的性能指标信息;
数据库,用于结合时钟同步系统,实现各个调用过程的时间戳准确性,实现整个调用过程内的网络、建立链接无法通过系统记录的过程追踪;
服务端,用于通过将SkyWalking探针集成到jboss容器中,自动对服务开始至结束整个过程各个阶段耗时进行记录,结合机场实际业务需求,对SkyWalking原生记录信息进行归纳调整;
请求端,在完成基于SkyWalking完成请求端调用全过程记录的基础上,丰富服务端dubbo协议响应头内容,增加服务端请求链路信息,最终实现请求端完整记录请求全流程链路
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明的目的是为应用的开发者和维护者提供完整的可视化的调用链路还原,能够直观的显示出此次调用每个步骤的耗时情况,可以帮助开发者快速分析和诊断系统架构下的性能瓶颈,提高故障诊断效率。
本发明通过将SkyWalking集成到机场生产运营系统,解决了机场旧框架系统较难使用链路追踪的问题,为机场系统的稳定和性能提供保障。本发明通过链路追踪,用户可以深入了解每个请求的执行流程,从而更好地理解请求在不同组件之间的传递和处理情况。
本发明在接口性能分析及优化上,通过收集和分析性能数据,SkyWalking可以发现潜在的性能问题,并提供优化建议,帮助提高应用程序的性能。当发现平均响应耗时较高或者错误率较高请求时,可以定位到耗时较高的单条链路,从而进行性能优化。
本发明在应用程序性能指标功能上,为监控和分析应用程序的性能表现,通过指标展示应用程序在运行过程中的性能状况,以便快速发现和解决性能问题。可展示请求处理时间、吞吐量、错误率、调用次数、CPU使用率、内存使用率等,帮助了解应用程序的性能表现,识别潜在的性能问题,并优化系统的性能和可靠性。
本发明的链路追踪可以跨越多个服务,例如客户端、后台服务、数据库、缓存等,通过分析过程中的耗时情况,可以分析每个步骤中的性能瓶颈。可按需采样,只记录关键请求和耗时长的接口,并可与其他监控系统集成,以便快速响应和解决问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理;
图1是本发明实施例提供的基于机场生产运营系统的可视化链路追踪方法流程图;
图2是本发明实施例提供的基于机场生产运营系统的可视化链路追踪系统图;
图3是本发明另一实施例提供的基于机场生产运营系统的可视化链路追踪方法图;
图中:1、dubbo微服务框架单元;2、数据库;3、服务端;4、请求端。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施的限制。
本发明实施例基于机场生产运营系统的可视化链路追踪方法创新点在于:目前大多数系统会使用消息中间件的方式,使得模块之前可以解耦合,实现异步调用及消息持久化等功能。但是传统的链路追踪方式,只能追踪RPC调用,当涉及消息中间件时,无法监控构建消息发送方和消息接口方的链路信息。本发明能够打破这一困境,实现消息链路的追踪,当系统设计消息中间件时,依旧能够监控整体消息的链路信息。
SkyWalking是现有的开源中间件,对于机场使用的系统,架构较老,集成SkyWalking较难,这也是目前机场使用的系统较少使用链路追踪的原因,本发明可以打破这一困境。
链路追踪技术本身已经比较成熟,对于新兴系统接入非常简单。但是对于机场等旧框架的系统,加入非常复杂,本发明的创新点在于对旧框架的机场系统进行链路追踪。解决旧框架下系统难以进行链路追踪的难题,同时结合机场业务,对机场重点关注的场景进行适配,重点追踪和预警等。
本发明采用SkyWalking及dubbo等技术,利用dubbo框架,集成SkyWalking自动追踪链路的特性,基于机场业务制定特定的链路追踪方案。
实施例1,本发明实施例提供的基于机场生产运营系统的可视化链路追踪方法包括:
针对机场各系统使用的dubbo微服务框架,结合dubbo的负载均衡、OSGI架构、jboss容器框架特性,通过将SkyWalking的探针集成到各个端点,对服务调用、数据缓存、数据库访问、前端响应等整个调用各个过程完成链路信息和度量指标的收集,最终完成调用完整过程的全记录,并可监控各端点的性能指标等信息。
实现数据库获取唯一时间准确无误差的情况下,结合时钟同步系统,实现各个调用过程的时间戳准确性,进而实现整个调用过程内的网络、建立链接等无法通过系统记录的过程追踪。
针对服务端,通过将SkyWalking探针集成到jboss容器中,自动对服务开始至结束整个过程各个阶段耗时进行记录,结合机场实际业务需求,对SkyWalking原生记录信息进行归纳调整。
针对请求端,在完成基于SkyWalking完成请求端调用全过程记录的基础上,丰富服务端dubbo协议响应头内容,增加服务端请求链路信息,最终实现请求端完整记录请求全流程链路。
针对jboss容器,为使用SkyWalking探针,因jboss会预先加载日志模块,因此为使用探针,必须将日志模块禁用并在探针植入后,再重新使用日志模块。
针对OSGI框架,因各个模块使用单独的类加载器进行加载,因此不能统一代理各个模块。所以需要使OSGI框架用一个app的主bundle当做整个应用程序的入口点,OSGI的父加载器设置为AppClassLoaderOSGI,也就保证了整个OSGI架构能被统一代理。
另外针对机场业务,可针对不同的场景设置不同的阈值,以便及时预警故障,实现故障自动预警。
实施例2,作为本发明另一种实施方式,如图1所示,本发明实施例提供的基于机场生产运营系统的可视化链路追踪方法包括:
S1:前端通过SkyWalking的Agent探针,收集链路信息,传递给后端服务器。探针是集成到终端的代理,负责收集遥测数据,包括链路追踪和性能指标,格式化数据后,发送给服务器。本发明前端使用OSGI架构,需将OSGI的父加载器设置为AppClassLoader,以便能在启动时代理各个bundle,使用的探针是基于语言的原生代理,用-javaagent命令行参数,在启动时代理用户代码,在运行时实时抓取数据。
S2:后端服务器使用SkyWalking的Agent探针,因本发明的后端服务使用jboss容器,需要在jboss启动命令中添加基于语言的远程代理-javaagent。
S3:后端使用的缓存A,利用SkyWalking的探针将链路信息和性能指标发送给Skywaling的后台服务;
S4:后端使用的数据库A,利用SkyWalking的探针将链路信息和性能指标发送给Skywaling的后台服务;
S5:后端使用的其他中间件,利用SkyWalking的探针将链路信息和性能指标发送给Skywaling的后台服务。
S6:如果有其他微服务,包括使用的缓存B、数据库B及其他中间件,亦通过探针方式将信息发送到SkyWalking的后台服务中。
S7:SkyWalking OAP负责接收Agent发送的数据信息,这些数据分为两类,分别为链路追踪数据、度量指标数据,链路追踪数据为各个端点的链路信息,如接口名称、执行耗时等,度量指标数据包括每个端点的调用总数、耗时平均时长、不同时长占比等。SkywalingOAP支持数据聚合、数据分析,并将结果存储到外部存储器(Elasticsearch)中,最终提供查询功能。
S8:对于外部存储器,本发明使用Elasticsearch作为SkyWalking的存储器,能够提供快速查询功能。
S9:SkyWalking UI,负责提供控制台界面,查看链路等。支持高度定制化,可以可视化查看和管理SkyWalking数据。
在步骤S1中,javaagent是Java虚拟机的一个命令行选项,用于指定在启动Java应用程序时加载代理程序。在jboss启动命令中添加基于语言的远程代理-javaagent。
在Java应用程序启动命令中,使用-javaagent选项指定代理程序的路径。JVM会根据指定的路径加载代理程序,并在应用程序启动之前执行代理程序的premain方法(java中自带的方法)。premain方法是Java代理程序的入口点。
本发明使用的代理程序使用字节码注入技术,修改应用程序的字节码,以实现抓取数据的功能。
所述字节码注入技术是一种在程序执行过程中,向程序的字节码(即编译后的中间代码)中插入额外的指令或代码的技术。这种技术通常用于动态修改或增强已编译的程序的行为,而无需修改其源代码。
在步骤S1中,前端收集的数据需要转换成SkyWalking的数据格式,才能被SkyWalking服务使用。格式化包括将Trace和Span等按照SkyWalking定时的格式进行格式化,例如Span应包含唯一标识、开始结束时间等。
在步骤S1中,OSGI使用模块化架构,将各个应用程序分解为独立的模块,称为bundles。各个模块使用单独的类加载器进行加载,因此不能统一代理各个模块。但是当使用-Dorg.osgi.framework.bundle.parent=app配置时,会使用一个app的主bundle当做整个应用程序的入口点,OSGI的父加载器设置为AppClassLoaderOSGI,也就保证了整个OSGI架构能被统一代理。
在步骤S7中,所述进行数据聚合、数据分析包括:SkyWalking将原始数据进行计算和合并,以生成有用的性能指标、统计信息和报告;数据聚合包括:根据各个span的tracingId生成同一链路的数据;
数据分析包括:计算每个应用程序或服务的吞吐量、响应时间、错误率,生成跨服务请求链路的性能报告,包括成功率、延迟分布。
在步骤S1-S9中,针对前端,通过将探针集成到OSGI框架中,使得OSGI的各个模块能够统一被代理,将前端的链路信息及性能指标信息上报到SkyWalking的服务中。
在步骤S1-S9中,后端服务器通过将SkyWalking探针集成到jboss容器中,自动对服务开始至结束整个过程各个阶段耗时进行记录,结合机场实际业务需求,对SkyWalking原生记录信息进行归纳调整。
自动对服务开始至结束整个过程各个阶段耗时进行记录包括:SkyWalking探针,相当于系统代码的一层代理,当调用系统服务开始和结束时,都会经过这层代理,也就能记录下开始和结束的时间;
对SkyWalking原生记录信息进行归纳调整包括:
SkyWalking会记录所有接口的信息,需要结合机场实际业务过滤是否都需要,边缘业务并不需要链路信息,对响应时间要求高的业务则需要在耗时超过一定阈值时,进行预警;
所述对响应时间要求高的业务根据请求频率判断,对于人工操作频繁的业务,响应时间应在100ms内,保证及时响应;
所述阈值范围根据现场接口耗时平均值核定,不同的接口,响应阈值不同。
实施例3,如图2所示,本发明实施例提供的基于机场生产运营系统的可视化链路追踪系统包括:
dubbo微服务框架单元1,用于结合dubbo的负载均衡、OSGI架构、jboss容器框架特性,通过将SkyWalking的Agent探针集成到各个端点,对服务调用、数据缓存、数据库访问、前端响应整个调用各个过程完成链路信息和度量指标的收集,最终完成调用完整过程的全记录,并监控各端点的性能指标信息;
数据库2,用于结合时钟同步系统,实现各个调用过程的时间戳准确性,实现整个调用过程内的网络、建立链接无法通过系统记录的过程追踪;
服务端3,用于通过将SkyWalking探针集成到jboss容器中,自动对服务开始至结束整个过程各个阶段耗时进行记录,结合机场实际业务需求,对SkyWalking原生记录信息进行归纳调整;
请求端4,在完成基于SkyWalking完成请求端调用全过程记录的基础上,丰富服务端dubbo协议响应头内容,增加服务端请求链路信息,最终实现请求端完整记录请求全流程链路。
实施例4,作为本发明另一可能的实施方式,如图3所示,本发明实施例提供的基于机场生产运营系统的可视化链路追踪方法,步骤如下:
步骤1,接收到空管系统的外部数据后,会通过数据解析服务解析消息,并发送到主服务。在解析数据时,通过skywalking等方式获取链路数据,并将此条业务信息通过tag方式标记到trace中。例如某条业务链路,会标记出bizTraceId、bizMessageType(消息类型)、bizFlightId(航班Id)、bizFlightNo(航班号)等。
步骤2,为MQ消息的发送与接收。当主服务从MQ中接受到消息后,会调用相应的接口进行处理,skywalking的agent拦截到对应的方法,添加业务tag,上报至数据分析分析服务。
步骤3,为另一段MQ消息的发送与接收。消息会被数据处理服务消费,对消息进行处理后,发送至外部系统。而数据处理服务在接收和发送消息时,也会将链路信息及业务tag上报至数据分析服务中。
步骤4,数据处理服务将消息发送至外部系统。
步骤5,数据分析服务收集消息链路汇总的信息,进行统一处理后,保存到开源搜索引擎ElasticSearch中,并为可视化界面提供查询接口。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
上述装置/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程。
基于上述本发明实施例记载的技术方案,进一步的可提出以下应用例。
根据本申请的实施例,本发明还提供了一种计算机设备,该计算机设备包括:至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意各个方法实施例中的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本发明实施例还提供了一种信息数据处理终端,所述信息数据处理终端用于实现于电子装置上执行时,提供用户输入接口以实施如上述各方法实施例中的步骤,所述信息数据处理终端不限于手机、电脑、交换机。
本发明实施例还提供了一种服务器,所述服务器用于实现于电子装置上执行时,提供用户输入接口以实施如上述各方法实施例中的步骤。
本发明实施例还提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。
为进一步证明上述实施例的积极效果,本发明基于上述技术方案进行如下实验:对于机场已经建成的较老框架的系统,较难使用链路追踪技术,本发明将链路追踪技术应用到这些实验机场系统中。可以通过界面查看链路信息及性能分析,并自定义预警等,对于较老框架的机场系统的故障预警、故障诊断及分析提供了极大的帮助。
以上所述,仅为本发明较优的具体的实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (7)
1.一种基于机场生产运营系统的可视化链路追踪方法,其特征在于,该方法利用dubbo框架和集成SkyWalking自动追踪链路,基于机场业务制定链路追踪方案;具体包括以下步骤:
S1:前端通过SkyWalking的Agent探针收集链路信息,并传递给后端服务器;
后端服务器使用Agent探针,进行后端服务中jboss容器的启动;
后端服务器使用的缓存A,将链路信息和性能指标发送给Skywaling的后台服务;
后端服务器将链路信息和性能指标发送给Skywaling的后台服务;
后端服务器的中间件,利用Agent探针将链路信息和性能指标发送给Skywaling的后台服务;
对于使用的缓存B、数据库B的微服务,通过Agent探针将信息发送到SkyWalking的后台服务;
S2:SkyWalking OAP接收Agent发送的数据信息,进行数据聚合、数据分析,并将结果存储到外部存储器;
S3:利用外部存储器进行查询;
S4:利用SkyWalking UI提供控制台界面,查看链路及管理SkyWalking数据;
在步骤S1中,使用数据库获取唯一时间准确无误差的情况下,结合机场时钟同步系统,实现各个调用过程的时间戳准确性,进而实现整个调用过程内的网络、建立链接无法通过系统记录的过程追踪;
其中,所有组件接入机场时钟同步系统,通过NTP网络协议实现时钟同步,从而保证过程中每个组件的时间戳一致;
在步骤S2中,SkyWalking OAP接收Agent发送的数据信息包括:链路追踪数据、度量指标数据;
链路追踪数据为各个端点的链路信息,包括接口名称、执行耗时,性能指标数据包括每个端点的调用总数、耗时平均时长、不同时长占比;
所述进行数据聚合、数据分析包括:SkyWalking将原始数据进行计算和合并,以生成有用的性能指标、统计信息和报告;数据聚合包括:根据各个span的tracingId生成同一链路的数据;
数据分析包括:计算每个应用程序或服务的吞吐量、响应时间、错误率,生成跨服务请求链路的性能报告,包括成功率、延迟分布;
所述后端服务器通过将SkyWalking探针集成到jboss容器中,自动对服务开始至结束整个过程各个阶段耗时进行记录,结合机场实际业务需求,对SkyWalking原生记录信息进行归纳调整;
自动对服务开始至结束整个过程各个阶段耗时进行记录包括:SkyWalking探针,相当于系统代码的一层代理,当调用系统服务开始和结束时,都经过这层代理,记录下开始和结束的时间;
对SkyWalking原生记录信息进行归纳调整包括:
SkyWalking会记录所有接口的信息,需要结合机场实际业务过滤是否都需要,边缘业务并不需要链路信息,对响应时间要求高的业务则需要在耗时超过一定阈值时,进行预警;
所述对响应时间要求高的业务根据请求频率判断,对于人工操作频繁的业务,响应时间应在100ms内,保证及时响应;
所述阈值范围根据现场接口耗时平均值核定,不同的接口,响应阈值不同。
2.根据权利要求1所述的基于机场生产运营系统的可视化链路追踪方法,其特征在于,在步骤S1中,前端通过SkyWalking的Agent探针收集链路信息,包括:Agent探针基于语言的原生代理,在jboss启动命令中添加基于语言的远程代理-javaagent,启动时代理用户代码,运行时实时抓取数据;
所述javaagent用于指定在启动Java应用程序时加载代理程序,在Java应用程序启动命令中,使用-javaagent选项指定代理程序的路径;JVM根据指定的路径加载代理程序,并在应用程序启动之前执行代理程序的premain方法;代理程序使用字节码注入技术,修改应用程序的字节码,以实现抓取数据的功能;所述字节码注入技术在程序执行过程中,向程序的字节码中插入额外的指令或代码。
3.根据权利要求2所述的基于机场生产运营系统的可视化链路追踪方法,其特征在于,Agent探针收集链路信息包括:链路追踪和性能指标,将Trace和Span按照SkyWalking定时的格式进行格式化,发送给后端服务器。
4.根据权利要求3所述的基于机场生产运营系统的可视化链路追踪方法,其特征在于,所述前端使用OSGI架构,将OSGI的父加载器设置为AppClassLoader,启动时代理各个bundle;
所述OSGI架构使用模块化架构,将各个应用程序分解为独立的模块,定义为bundles;
各个独立的模块使用单独的类加载器进行加载,使用
-Dorg.osgi.framework.bundle.parent=app配置时,使用一个app的主bundle当做整个应用程序的入口点,OSGI的父加载器设置为AppClassLoaderOSGI,使整个OSGI架构能被统一代理。
5.根据权利要求2所述的基于机场生产运营系统的可视化链路追踪方法,其特征在于,在jboss启动命令中添加基于语言的远程代理-javaagent。
6.根据权利要求1所述的基于机场生产运营系统的可视化链路追踪方法,其特征在于,所述前端通过将探针集成到OSGI框架中,使得OSGI的各个模块能够统一被代理,将前端的链路信息及性能指标信息上报到SkyWalking的服务中。
7.一种基于机场生产运营系统的可视化链路追踪系统,该系统通过权利要求1-6任意一项所述的基于机场生产运营系统的可视化链路追踪方法实现,其特征在于,该系统包括:
dubbo微服务框架单元(1),用于结合dubbo的负载均衡、OSGI架构、jboss容器框架特性,通过将SkyWalking的Agent探针集成到各个端点,对服务调用、数据缓存、数据库访问、前端响应整个调用各个过程完成链路信息和度量指标的收集,最终完成调用完整过程的全记录,并监控各端点的性能指标信息;
数据库(2),用于结合时钟同步系统,实现各个调用过程的时间戳准确性,实现整个调用过程内的网络、建立链接无法通过系统记录的过程追踪;
服务端(3),用于通过将SkyWalking探针集成到jboss容器中,自动对服务开始至结束整个过程各个阶段耗时进行记录,结合机场实际业务需求,对SkyWalking原生记录信息进行归纳调整;
请求端(4),在完成基于SkyWalking完成请求端调用全过程记录的基础上,丰富服务端dubbo协议响应头内容,增加服务端请求链路信息,最终实现请求端完整记录请求全流程链路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311617307.1A CN117312104B (zh) | 2023-11-30 | 2023-11-30 | 一种基于机场生产运营系统的可视化链路追踪方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311617307.1A CN117312104B (zh) | 2023-11-30 | 2023-11-30 | 一种基于机场生产运营系统的可视化链路追踪方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117312104A CN117312104A (zh) | 2023-12-29 |
CN117312104B true CN117312104B (zh) | 2024-03-12 |
Family
ID=89250334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311617307.1A Active CN117312104B (zh) | 2023-11-30 | 2023-11-30 | 一种基于机场生产运营系统的可视化链路追踪方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117312104B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335174A (zh) * | 2014-07-15 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 一种非OSGi的Java应用程序调用OSGi服务的方法及装置 |
CN110764742A (zh) * | 2019-10-18 | 2020-02-07 | 成都信息工程大学 | 一种气候观测数据线性相关度高速计算方法及系统 |
CN113568804A (zh) * | 2021-06-07 | 2021-10-29 | 贵州优联博睿科技有限公司 | 一种面向Web应用的性能瓶颈精准定位系统 |
CN114189430A (zh) * | 2021-12-09 | 2022-03-15 | 兴业银行股份有限公司 | 立体化日志全链路监控系统、方法、介质及设备 |
CN115174542A (zh) * | 2022-07-01 | 2022-10-11 | 中国邮政储蓄银行股份有限公司 | 业务系统的全链路采集方法、采集装置和采集系统 |
CN115827374A (zh) * | 2022-11-15 | 2023-03-21 | 康键信息技术(深圳)有限公司 | 应用日志的管理方法、装置、电子设备及可读存储介质 |
CN116232963A (zh) * | 2023-02-20 | 2023-06-06 | 中银消费金融有限公司 | 一种链路跟踪方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210329354A1 (en) * | 2021-06-26 | 2021-10-21 | Intel Corporation | Telemetry collection technologies |
-
2023
- 2023-11-30 CN CN202311617307.1A patent/CN117312104B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335174A (zh) * | 2014-07-15 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 一种非OSGi的Java应用程序调用OSGi服务的方法及装置 |
CN110764742A (zh) * | 2019-10-18 | 2020-02-07 | 成都信息工程大学 | 一种气候观测数据线性相关度高速计算方法及系统 |
CN113568804A (zh) * | 2021-06-07 | 2021-10-29 | 贵州优联博睿科技有限公司 | 一种面向Web应用的性能瓶颈精准定位系统 |
CN114189430A (zh) * | 2021-12-09 | 2022-03-15 | 兴业银行股份有限公司 | 立体化日志全链路监控系统、方法、介质及设备 |
CN115174542A (zh) * | 2022-07-01 | 2022-10-11 | 中国邮政储蓄银行股份有限公司 | 业务系统的全链路采集方法、采集装置和采集系统 |
CN115827374A (zh) * | 2022-11-15 | 2023-03-21 | 康键信息技术(深圳)有限公司 | 应用日志的管理方法、装置、电子设备及可读存储介质 |
CN116232963A (zh) * | 2023-02-20 | 2023-06-06 | 中银消费金融有限公司 | 一种链路跟踪方法及系统 |
Non-Patent Citations (2)
Title |
---|
Trace analysis based microservice architecture measurement;Xin Peng 等;《ESEC/FSE 2022: Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering》;第1589–1599页 * |
微服务架构在智慧能源管理平台中的应用研究;陶椿霞 等;《电脑编程技巧与维护》;第70-72页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117312104A (zh) | 2023-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112612675B (zh) | 微服务架构下的分布式大数据日志链路跟踪方法及系统 | |
US7526322B2 (en) | Real-time analyst program for processing log files from network elements | |
CN101997925A (zh) | 具有预警功能的服务器监控方法及其系统 | |
CN112714047B (zh) | 基于工控协议流量的测试方法、装置、设备及存储介质 | |
WO2021169268A1 (zh) | 数据处理方法、装置、设备和存储介质 | |
US20170161167A1 (en) | End-to-end tracing and logging | |
CN111400127B (zh) | 业务日志的监控方法及装置、存储介质、计算机设备 | |
CN109885496B (zh) | 测试日志管理方法及系统 | |
CN111431773A (zh) | 一种基于OpenTracing的链路跟踪方法 | |
CN109656792A (zh) | 基于网络调用日志的应用性能分析方法、装置、计算机设备及存储介质 | |
CN111241050B (zh) | 一种用于大数据平台的联动分析系统及方法 | |
CN116467189B (zh) | 接口调用完成性能压测及全链路数据监控的方法和系统 | |
CN112350854A (zh) | 一种流量故障定位方法、装置、设备及存储介质 | |
CN107463490B (zh) | 一种应用于平台开发中的集群日志集中收集方法 | |
CN111913933A (zh) | 基于统一支撑平台的电网历史数据管理方法及系统 | |
CN116719750B (zh) | 软件测试方法及装置、服务器设备和存储介质 | |
CN114143369A (zh) | 一种云平台的服务监控系统 | |
CN117312104B (zh) | 一种基于机场生产运营系统的可视化链路追踪方法及系统 | |
CN113946559A (zh) | 数据处理方法、目标数据库系统及数据处理系统 | |
CN110445752B (zh) | 一种支持多种can设备并灵活解析各类can报文的实现方法 | |
CN112422349B (zh) | 面向nfv的网管系统、方法、设备及介质 | |
CN114598622A (zh) | 数据监控方法及装置、存储介质、计算机设备 | |
CN114201659A (zh) | 一种消息轨迹传输查询方法、装置及系统 | |
CN114338347A (zh) | 基于Ampere平台的故障信息带外获取方法及装置 | |
CN116775440B (zh) | 一种基于机场生产运营系统的日志级链路追踪方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |