CN116414877A - 业务调用链生成方法、装置、电子设备及存储介质 - Google Patents
业务调用链生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116414877A CN116414877A CN202111642303.XA CN202111642303A CN116414877A CN 116414877 A CN116414877 A CN 116414877A CN 202111642303 A CN202111642303 A CN 202111642303A CN 116414877 A CN116414877 A CN 116414877A
- Authority
- CN
- China
- Prior art keywords
- service
- call chain
- service call
- pinpoint
- information
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 239000003795 chemical substances by application Substances 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 239000000523 sample Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000009933 burial Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000004366 reverse phase liquid chromatography Methods 0.000 description 2
- 230000007474 system interaction Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
本公开提供了一种业务调用链生成方法、装置、电子设备及存储介质,涉及软件技术领域。该方法包括:采集Pinpoint报文,其中,Pinpoint报文携带应用服务调用信息;根据采集的Pinpoint报文,生成应用服务调用链;在应用服务调用链中关联业务信息,生成业务调用链。本公开能够基于Pinpoint生成具备有业务特征的端到端流程拓扑,不仅能够分析应用层面的指标信息,而且能够分析业务层面的指标信息,从而获得更全面的性能数据。
Description
技术领域
本公开涉及软件技术领域,尤其涉及一种业务调用链生成方法、装置、电子设备及存储介质。
背景技术
Java编写的业务服务通过Pinpoint探针技术实现自动化埋点。目前,基于Pinpoint探针技术的埋点方案,纯以技术角度输出调用链信息,无法体现业务层面上的信息,也无法串联一些无协议头的调用协议(例如,数据库、缓存、MQ等),使得业务流程被割裂成几段单独的调用链。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供一种业务调用链生成方法、装置、电子设备及存储介质,至少在一定程度上克服相关技术中基于Pinpoint探针技术的埋点方案,生成的调用链信息无法体现业务层面信息的技术问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供了一种业务调用链生成方法,该方法包括:采集Pinpoint报文,其中,所述Pinpoint报文携带应用服务调用信息;根据采集的Pinpoint报文,生成应用服务调用链;在所述应用服务调用链中关联业务信息,生成业务调用链。
在一些实施例中,所述方法还包括:利用相同的业务标识,对所述应用服务调用链中存在的断链进行恢复。
在一些实施例中,在所述应用服务调用链中关联业务信息,生成业务调用链之后,所述方法还包括:将多个业务调用链合并,生成具有时间轴的业务端到端拓扑。
在一些实施例中,在所述应用服务调用链中关联业务信息,生成业务调用链之后,所述方法还包括:根据所述业务调用链,统计业务指标信息。
在一些实施例中,在根据采集的Pinpoint报文,生成应用服务调用链之后,所述方法还包括:根据所述应用服务调用链,统计应用指标信息。
在一些实施例中,所述方法还包括:根据统计的业务指标信息和应用指标信息生成性能指标数据;将生成的性能指标数据,存储到时序数据库。
在一些实施例中,所述方法还包括:在业务日志框架中埋点,生成业务日志报文,其中,所述业务日志报文将Pinpoint报文与业务信息关联;或在Pinpoint报文的扩展字段中添加业务字段信息,将Pinpoint报文与业务信息关联。
根据本公开的另一个方面,还提供了一种业务调用链生成装置,包括:Pinpoint报文采集模块,用于采集Pinpoint报文,其中,所述Pinpoint报文携带应用服务调用信息;应用服务调用链生成模块,用于根据采集的Pinpoint报文,生成应用服务调用链;业务调用链生成模块,用于在所述应用服务调用链中关联业务信息,生成业务调用链。
在一些实施例中,本公开实施例中提供的业务调用链生成装置还包括:断链恢复模块,用于利用相同的业务标识,对应用服务调用链中存在的断链进行恢复。
在一些实施例中,本公开实施例中提供的业务调用链生成装置还包括:业务调用链合并模块,用于将多个业务调用链合并,生成具有时间轴的业务端到端拓扑。
在一些实施例中,本公开实施例中提供的业务调用链生成装置还包括:业务指标统计模块,用于根据业务调用链,统计业务指标信息。
在一些实施例中,本公开实施例中提供的业务调用链生成装置还包括:应用指标统计模块,用于根据应用服务调用链,统计应用指标信息。
在一些实施例中,本公开实施例中提供的业务调用链生成装置还包括:性能数据存储模块,用于根据统计的业务指标信息和应用指标信息生成性能指标数据;将生成的性能指标数据,存储到时序数据库。
在一些实施例中,本公开实施例中提供的业务调用链生成装置还包括:业务日志报文生成模块,用于在业务日志框架中埋点,生成业务日志报文,其中,业务日志报文将Pinpoint报文与业务信息关联;Pinpoint报文修改模块,用于在Pinpoint报文的扩展字段中添加业务字段信息,将Pinpoint报文与业务信息关联。
根据本公开的另一个方面,还提供了一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述业务调用链生成方法。
根据本公开的另一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的业务调用链生成方法。
本公开的实施例所提供的业务调用链生成方法、装置、电子设备及存储介质,在采集到携带应用服务调用信息的Pinpoint报文后,根据Pinpoint报文携带的应用服务调用信息,生成应用服务调用链,并在应用服务调用链中关联业务信息,从而生成包含业务信息和应用服务调用关系的业务调用链。通过本公开实施例,能够基于Pinpoint生成具备有业务特征的端到端流程拓扑,不仅能够分析应用层面的指标信息,而且能够分析业务层面的指标信息,从而获得更全面的性能数据。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开实施例中一种业务系统架构示意图;
图2示出本公开实施例中一种业务调用链生成方法流程图;
图3示出本公开实施例中一种可选的业务调用链生成方法流程图;
图4示出本公开实施例中一种应用服务调用链断链恢复示意图;
图5示出本公开实施例中一种可选的业务系统架构示意图;
图6示出本公开实施例中一种可选的业务系统交互过程示意图;
图7示出本公开实施例中一种业务调用链生成装置示意图;
图8示出本公开实施例中一种电子设备的结构框图;
图9示出本公开实施例中一种计算机可读存储介质示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
为便于理解,在介绍本公开实施例之前,首先对本公开实施例中涉及到的几个名词进行解释如下:
Pinpoint:是一个开源的APM(Application Performance Management/应用性能管理)工具,适用于Java编写的大规模分布式系统。
调用链:在系统完成一次业务调用的过程中,将服务之间的调用信息(时间、接口、层次、结果)打点到日志中,将所有的打点数据连接为一个树状链条便产生一个调用链。跟踪系统将一次业务调用过程中产生的日志信息进行分析处理,将业务端到端完整的调用过程进行还原,从不同维度进行统计分析,以标识出存在异常的服务调用,能够快速分析定位出异常的服务。
Trace是指一次请求调用的链路过程,trace id是指一次请求调用的ID;在一次请求中,会在网络的最开始生成一个全局唯一的用于标识此次请求的trace id,这个traceid在这次请求调用过程中无论经过多少个节点都会保持不变,并且在随着每一层的调用不停的传递,通过trace id可将这一次请求在系统中的路径全部串起来。
Span:指一个模块的调用过程,一般用Span id来标识;在一次请求的过程中会调用不同的节点/模块/服务,每一次调用都会生成一个新的Span id来记录,通过Span id来定位当前请求在整个系统调用链中所处的位置,以及它的上下游节点分别是什么。
下面结合附图及实施例对本示例实施方式进行详细说明。
目前,相关技术中基于Pinpoint探针技术埋点生成的调用链,更多的是侧重从全量应用的事务能力去做分析,仅做了深入底层的失败和性能的研究,缺少上层业务的价值体现。本公开实施例中提供的业务调用链生成方法或业务调用链生成装置,生成包含业务信息和应用服务调用关系的业务调用链,可提高pinpoint在系统运营中的信息可读性和提供业务指标的衡量标准。
图1示出了可以应用于本公开实施例的业务调用链生成方法或业务调用链生成装置的示例性业务系统架构示意图。
如图1所示,系统架构100可以包括终端设备101,网络102和服务器103。
网络102用以在终端设备101和服务器103之间提供通信链路的介质,可以是有线网络,也可以是无线网络。
可选地,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(ExtensibleMarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(InternetProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
终端设备101可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、可穿戴设备、增强现实设备、虚拟现实设备等。
可选地,不同的终端设备101中安装的应用程序的客户端是相同的,或基于不同操作系统的同一类型应用程序的客户端。基于终端平台的不同,该应用程序的客户端的具体形态也可以不同,比如,该应用程序客户端可以是手机客户端、PC客户端等。
服务器103可以是提供各种服务的服务器,例如对用户利用终端设备101所进行操作的装置提供支持的后台管理服务器。后台管理服务器可以对接收到的请求等数据进行分析等处理,并将处理结果反馈给终端设备。
可选地,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本领域技术人员可以知晓,图1中的终端设备、网络和服务器的数量仅仅是示意性的,根据实际需要,可以具有任意数目的终端设备、网络和服务器。本公开实施例对此不作限定。
本公开实施例中提供了一种业务调用链生成方法,该方法可以由任意具备计算处理能力的电子设备执行。可选地,本公开实施例中提供的业务调用链生成方法可以应用但不限于图1所示的服务器。
图2示出本公开实施例中一种业务调用链生成方法流程图,如图2所示,本公开实施例中提供的业务调用链生成方法包括如下步骤:
S202,采集Pinpoint报文,其中,Pinpoint报文携带应用服务调用信息。
需要说明的是,在云服务或分布式服务系统中,服务与服务之间存在大量复杂的调用关系,而通过Pinpoint探针技术埋点采集这些服务数据时,同样会产生大量的报文,即Pinpoint报文(简称PP报文)。上述Pinpoint报文是指通过Pinpoint探针技术在应用服务调用的各个节点进行埋点采集到的报文,该报文中携带有各个应用服务调用的应用服务调用信息。
可选地,本公开实施例中采集的Pinpoint报文包括但不限于:StatBo报文、SpanBo报文、SpanChunkBo报文、BusiBo报文、AgentBo报文、MetaBo报文等。对各个报文包含的信息说明如下;
1)StatBo报文:pp-agent端统计的性能数据,包括jvm、gc、连接池、事务处理能力、缓存、进程内存cpu等;
2)SpanBo报文:pp-agent发送的应用服务的响应信息与请求信息;
3)SpanChunkBo报文:pp-agent发送的应用服务的异步请求信息;
4)BusiBo报文:日志框架发送的应用服务的业务信息报文;
5)AgentBo报文:pp-agent发送的agent自身信息;
6)MetaBo报文:pp-agent发送的agent字典类解析信息,包括API、SQL、String等。
S204,根据采集的Pinpoint报文,生成应用服务调用链。
需要说明的是,在Pinpoint中,核心数据结构由Spans、Traces和TraceIds组成。
1)Span:RPC(Remote Procedure Call,远程过程调用)追踪的基本单元。当一个RPC到达时,Span标示工作已经处理完成并包含追踪数据。为了确保代码级别的可见性,一个Span具有将SpanEvent标记为一个数据结构的子节点。
2)Trace:一个Span的集合。它由有关联的RPCs(Spans)组成。在相同Trace中的Spans,共享相同的TransactionId。
3)TraceId:由TransactionId、SpanId和ParentSpanId组成的一个keys的集合。TransactionId指示消息的ID,而SpanId和ParentSpanId表示RPCs的父-子关系。
4)TransactionId(TxId):从单个事务跨分布式系统发送/接收的消息的ID。它必须跨整个服务器集群做到全局唯一。
5)SpanId:当收到RPC消息时一个工作被处理的ID。当一个RPC到达一个节点时生成SpanId。
6)ParentSpanId(pSpanId):发起RPC的父Span的SpanId。如果一个节点是一个事务的起点,将没有父Span,对于这种情况,使用值-1表示这个Span是一个事务的根Span。
本公开实施例中,在采集到Pinpoint报文后,利用transactionId、spanId、parentSpanId等报文属性,将一次业务请求中调用的各个服务节点串联成调用链,即上述应用服务调用链。
S206,在应用服务调用链中关联业务信息,生成业务调用链。
需要说明的是,由于直接根据Pinpoint报文生成的应用服务调用链中不包含业务层面的信息,因而,在根据采集的Pinpoint报文生成应用服务调用链后,可通过在应用服务调用链中关联业务信息,以生成包含业务信息和应用服务调用关系的业务调用链。
在具体实施时,本公开实施例中提供的业务调用链生成方法可以通过如下任意一种方式,将Pinpoint报文与业务信息关联:
方式一:在业务日志框架中埋点,生成业务日志报文,其中,业务日志报文将Pinpoint报文与业务信息关联;
方式二:在Pinpoint报文的扩展字段中添加业务字段信息,将Pinpoint报文与业务信息关联。
在一些实施例中,本公开实施例中在采集Pinpoint报文或业务日志报文时,可以是通过Kafka等消息队列,采用异步的方式采集的。
在一些实施例中,如图3所示,本公开实施例中提供的业务调用链生成方法还可包括如下步骤:
S208,利用相同的业务标识,对应用服务调用链中存在的断链进行恢复。
因消息队列类型的异步调用,可能导致应用服务调用链中存在断链,对于包含的同一业务标识的调用链,可以合并为同一条业务调用链。
图4示出本公开实施例中一种应用服务调用链断链恢复示意图,如图4所示,服务模块C在TxId=1的调用链(包含:服务模块A、服务模块B和服务模块C)中,服务模块D在TxId=2的调用链(包含:服务模块D和服务模块E)中,由于服务模块C和服务模块D中都包含同一业务标识bc_id=563721951247,可以确定服务模块C和服务模块D之间存在断链,因而,可以将包含服务模块A、服务模块B和服务模块C的TxId=1调用链与包含服务模块D和服务模块E的TxId=2调用链合并为一条业务调用链。
在一些实施例中,如图3所示,在应用服务调用链中关联业务信息,生成业务调用链之后,本公开实施例中提供的业务调用链生成方法方法还可包括如下步骤:
S210,将多个业务调用链合并,生成具有时间轴的业务端到端拓扑。
在一些实施例中,如图3所示,在应用服务调用链中关联业务信息,生成业务调用链之后,本公开实施例中提供的业务调用链生成方法方法还可包括如下步骤:
S212,根据业务调用链,统计业务指标信息。
需要说明的是,本公开实施例中业务调用链是包含业务信息的应用服务调用链,因而,根据业务调用链,可以统计各种业务指标的指标信息。
在一些实施例中,如图3所示,在根据采集的Pinpoint报文,生成应用服务调用链之后,本公开实施例中提供的业务调用链生成方法方法还可包括如下步骤:
S214,根据应用服务调用链,统计应用指标信息。
需要说明的是,本公开实施例中应用服务调用链中包含了各种服务之间的调用关系,因而,根据应用服务调用链,可以统计各种应用指标的指标信息。
在一些实施例中,如图3所示,本公开实施例中提供的业务调用链生成方法方法还可包括如下步骤:
S216,根据统计的业务指标信息和应用指标信息生成性能指标数据;
S218,将生成的性能指标数据,存储到时序数据库。
下面结合图5和图6来对本公开实施例中提供的业务调用链生成方法进行详细说明。其中,图5示出本公开实施例中一种可选的业务系统架构示意图,图6示出本公开实施例中一种可选的业务系统交互过程示意图。
如图5和图6所示,本公开实施例中,基于PinPoint的开源技术架构,从首环节业务埋点、异步串联改造、日志框架结合整改、端到端拓扑计算、核心指标计算等几个功能来实现业务端到端流程拓扑的呈现。该方法通过获取海量日志,并基于大数据的处理计算切入,通过Spark计算等多重手段,拉取核心数据,并能结合生产运营需要,实现具备有业务特征的端到端流程拓扑,从而足快速上线新业务的能力,取代传统基于结果库的场景分析,和耗费长时间的抓点埋日志的处理过程。对各个功能分别说明如下:
1)首环节业务埋点:通过定义具备业务含义的通用字段,当需要抽取场景链路时,仅需要在发生该业务时,进行调用埋点方法来生成数据,数据可以有两种方式,存入日志框架或改造扩编字段;
2)异步串联改造:针对消息队列类型的调用处理,原生PP会在消费者端,重新生成新的TxId,导致链路的中断。异步串联改造将实现,在消息队列的头尾输出一份业务上具体统一值的数据信息(bc_id),借由该业务属性(bc_id)将两份不同TxId的报文整合成一份调用链。如图,有两条断裂的调用链TxId=1与TxId=2,但在断链处,应用服务的调用端和响应端报文吐出一致的业务信息流水号放在bc_id属性中,程序利用bc_id将TxId=1与TxId=2合并成一条完整的调用链。
3)日志框架结合整改:通过日志框架整改,采用java-agent技术为日志框架注入pp对象,PP日志本身不需要输出业务属性。日志框架在首环节可通过日志吐出PPTX字段与业务属性,异步的上游和下游均输出相同约定的业务属性,根据业务属性匹配后,再利用上述异步断链处理办法进行断链整合。
4)端到端拓扑计算:基于大数据算法来实现,具体包括:
①收集由PP报文采集器与业务日志报文采集器采集并发送到Kafka消息队列的PP报文和业务日志报文,根据报文类型对PP报文或业务日志报文分别进行解析规整。
②根据PP原始报文,利用transactionId、spanId、parentSpanId等报文属性可生成应用服务调用链。
③从日志框架或PP扩编报文中提取业务信息与pp调用链信息(业务报文具有PP报文的transactionId与spanId信息),关联已经存在的调用链,整合统一形成业务链(也即本公开实施例中的业务调用链)。
④利用业务信息中的相同业务标识,可将断开的调用链(transactionId不同)恢复成一条完整的调用链。
⑤分别保存调用链与业务链详单以及链的元数据。
⑥将所有业务调用链进行归并整合,实现真实体现业务的具备时间轴的树形端到端拓扑。
⑦根据汇聚的调用链与业务链分别统计应用指标(比如应用成功率,吞吐,平均耗时等)与业务指标(比如场景的成功率,及时率等等)。
⑧将统计计算的指标与pp-agent送上来的指标抽象成统一的性能数据格式送往后端统一的性能入库服务统一入时序库。
5)核心指标计算:基于计算生成的端到端业务拓扑,计算整个业务场景的核心衡量指标,包含有成功率、及时率等,同时转换PP原始的应用性能报文。基于指定首环节埋点场景进行单量多维度统计,包含1分钟总量、成功量(指pp调用链中的所有调用均成功,即errCode=0的调用链)、及时量(计算每个单的调用链耗时长,根据预设的场景要求的耗时阈值判定是否及时)、异常量、超时量、平均耗时等。再根据以上基础计算指标二次公式计算获得最终需要的场景订单成功率和及时率。可支持分钟级的实时预警,也支持界面查询指定一段时间范围内订单的成功率和及时率指标。
需要说明的是,本公开实施例可依赖PaaS平台提供的Kafka、MySQL、Elasticsearch和时序数据库。其中,Kafka用于接收各类日志报文;MySQL用于存储汇聚后的全链路拓扑图;Elasticsearch用于存储调用链与业务链详单;时序数据库,用于存储各类性能指标。
基于同一发明构思,本公开实施例中还提供了一种业务调用链生成装置,如下面的实施例所述。由于该装置实施例解决问题的原理与上述方法实施例相似,因此该装置实施例的实施可以参见上述方法实施例的实施,重复之处不再赘述。
图7示出本公开实施例中一种业务调用链生成装置示意图,如图7所示,该装置包括:Pinpoint报文采集模块701、应用服务调用链生成模块702和业务调用链生成模块703。
其中,Pinpoint报文采集模块701,用于采集Pinpoint报文,其中,所述Pinpoint报文携带应用服务调用信息;应用服务调用链生成模块702,用于根据采集的Pinpoint报文,生成应用服务调用链;业务调用链生成模块703,用于在所述应用服务调用链中关联业务信息,生成业务调用链。
此处需要说明的是,上述Pinpoint报文采集模块701、应用服务调用链生成模块702和业务调用链生成模块703对应于方法实施例中的S202~S206,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述方法实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
在一些实施例中,如图7所示,本公开实施例中提供的业务调用链生成装置还包括:断链恢复模块704,用于利用相同的业务标识,对应用服务调用链中存在的断链进行恢复。
在一些实施例中,如图7所示,本公开实施例中提供的业务调用链生成装置还包括:业务调用链合并模块705,用于将多个业务调用链合并,生成具有时间轴的业务端到端拓扑。
在一些实施例中,如图7所示,本公开实施例中提供的业务调用链生成装置还包括:业务指标统计模块706,用于根据业务调用链,统计业务指标信息。
在一些实施例中,如图7所示,本公开实施例中提供的业务调用链生成装置还包括:应用指标统计模块707,用于根据应用服务调用链,统计应用指标信息。
在一些实施例中,如图7所示,本公开实施例中提供的业务调用链生成装置还包括:性能数据存储模块708,用于根据统计的业务指标信息和应用指标信息生成性能指标数据;将生成的性能指标数据,存储到时序数据库。
在一些实施例中,如图7所示,本公开实施例中提供的业务调用链生成装置还包括:业务日志报文生成模块709,用于在业务日志框架中埋点,生成业务日志报文,其中,业务日志报文将Pinpoint报文与业务信息关联;Pinpoint报文修改模块710,用于在Pinpoint报文的扩展字段中添加业务字段信息,将Pinpoint报文与业务信息关联。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图8来描述根据本公开的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元810可以执行上述方法实施例的如下步骤:采集Pinpoint报文,其中,Pinpoint报文携带应用服务调用信息;根据采集的Pinpoint报文,生成应用服务调用链;在应用服务调用链中关联业务信息,生成业务调用链。
在一些实施例中,处理单元810还可以执行上述方法实施例的如下步骤:利用相同的业务标识,对应用服务调用链中存在的断链进行恢复。
在一些实施例中,处理单元810还可以执行上述方法实施例的如下步骤:将多个业务调用链合并,生成具有时间轴的业务端到端拓扑。
在一些实施例中,处理单元810还可以执行上述方法实施例的如下步骤:根据业务调用链,统计业务指标信息。
在一些实施例中,处理单元810还可以执行上述方法实施例的如下步骤:根据应用服务调用链,统计应用指标信息。
在一些实施例中,处理单元810还可以执行上述方法实施例的如下步骤:根据统计的业务指标信息和应用指标信息生成性能指标数据;将生成的性能指标数据,存储到时序数据库。
在一些实施例中,处理单元810还可以执行上述方法实施例的如下步骤:在业务日志框架中埋点,生成业务日志报文,其中,业务日志报文将Pinpoint报文与业务信息关联;或在Pinpoint报文的扩展字段中添加业务字段信息,将Pinpoint报文与业务信息关联。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备840(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质可以是可读信号介质或者可读存储介质。图9示出本公开实施例中一种计算机可读存储介质示意图,如图9所示,该计算机可读存储介质900上存储有能够实现本公开上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
本公开中的计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开中,计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可选地,计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
在具体实施时,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (10)
1.一种业务调用链生成方法,其特征在于,包括:
采集Pinpoint报文,其中,所述Pinpoint报文携带应用服务调用信息;
根据采集的Pinpoint报文,生成应用服务调用链;
在所述应用服务调用链中关联业务信息,生成业务调用链。
2.根据权利要求1所述的业务调用链生成方法,其特征在于,所述方法还包括:
利用相同的业务标识,对所述应用服务调用链中存在的断链进行恢复。
3.根据权利要求1所述的业务调用链生成方法,其特征在于,在所述应用服务调用链中关联业务信息,生成业务调用链之后,所述方法还包括:
将多个业务调用链合并,生成具有时间轴的业务端到端拓扑。
4.根据权利要求1所述的业务调用链生成方法,其特征在于,在所述应用服务调用链中关联业务信息,生成业务调用链之后,所述方法还包括:
根据所述业务调用链,统计业务指标信息。
5.根据权利要求4所述的业务调用链生成方法,其特征在于,在根据采集的Pinpoint报文,生成应用服务调用链之后,所述方法还包括:
根据所述应用服务调用链,统计应用指标信息。
6.根据权利要求5所述的业务调用链生成方法,其特征在于,所述方法还包括:
根据统计的业务指标信息和应用指标信息生成性能指标数据;
将生成的性能指标数据,存储到时序数据库。
7.根据权利要求1至6任一项所述的业务调用链生成方法,其特征在于,所述方法还包括:
在业务日志框架中埋点,生成业务日志报文,其中,所述业务日志报文将Pinpoint报文与业务信息关联;或
在Pinpoint报文的扩展字段中添加业务字段信息,将Pinpoint报文与业务信息关联。
8.一种业务调用链生成装置,其特征在于,包括:
Pinpoint报文采集模块,用于采集Pinpoint报文,其中,所述Pinpoint报文携带应用服务调用信息;
应用服务调用链生成模块,用于根据采集的Pinpoint报文,生成应用服务调用链;
业务调用链生成模块,用于在所述应用服务调用链中关联业务信息,生成业务调用链。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~7中任意一项所述业务调用链生成方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~7中任意一项所述的业务调用链生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111642303.XA CN116414877A (zh) | 2021-12-29 | 2021-12-29 | 业务调用链生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111642303.XA CN116414877A (zh) | 2021-12-29 | 2021-12-29 | 业务调用链生成方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116414877A true CN116414877A (zh) | 2023-07-11 |
Family
ID=87048053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111642303.XA Pending CN116414877A (zh) | 2021-12-29 | 2021-12-29 | 业务调用链生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116414877A (zh) |
-
2021
- 2021-12-29 CN CN202111642303.XA patent/CN116414877A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110445643B (zh) | 异步微服务调用链路跟踪方法、装置、介质及电子设备 | |
CN109034993B (zh) | 对账方法、设备、系统及计算机可读存储介质 | |
CN107506451B (zh) | 用于数据交互的异常信息监控方法及装置 | |
WO2022126974A1 (zh) | 基于Kafka的增量数据同步方法、装置、设备及介质 | |
US8521871B2 (en) | System and method for merging monitoring data streams from a server and a client of the server | |
US11601453B2 (en) | Methods and systems for establishing semantic equivalence in access sequences using sentence embeddings | |
CN110753050B (zh) | 协议文档的生成方法及装置、计算机存储介质、电子设备 | |
CN112948492A (zh) | 一种数据处理系统、方法、装置、电子设备及存储介质 | |
CN108040045B (zh) | 访问流量文件的生成方法、装置、服务器及存储介质 | |
CN113094166B (zh) | 一种链路追踪方法、装置、介质和计算设备 | |
CN113918357A (zh) | 业务处理方法及装置、存储介质、电子设备 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN109902070B (zh) | 一种面向WiFi日志数据的解析存储搜索方法 | |
CN113326261B (zh) | 数据血缘关系提取方法、装置及电子设备 | |
CN113794719B (zh) | 一种基于Elasticsearch技术网络异常流量分析方法、装置和电子设备 | |
CN115017218B (zh) | 分布式调用链的处理方法及装置、存储介质、电子设备 | |
CN111930385A (zh) | 数据采集方法、装置、设备及存储介质 | |
CN116414877A (zh) | 业务调用链生成方法、装置、电子设备及存储介质 | |
CN111143310B (zh) | 日志记录方法及装置、可读存储介质 | |
JP4734454B2 (ja) | システム分析プログラム、システム分析方法およびシステム分析装置 | |
CN112579406A (zh) | 一种日志调用链生成方法和装置 | |
CN117271584A (zh) | 数据处理方法及装置、计算机可读存储介质和电子设备 | |
CN114546780A (zh) | 数据监控方法、装置、设备、系统及存储介质 | |
Koyama et al. | Log message with JSON item count for root cause analysis in microservices | |
CN114936026B (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 |