掌桥专利:专业的专利平台
掌桥专利
首页

一种全链路生产压力测试的监控方法及装置

文献发布时间:2023-06-19 16:04:54



技术领域

本发明涉及软件技术领域,更具体的说,涉及一种全链路生产压力测试的监控方法及装置。

背景技术

目前银行系统逐渐向分布式银行系统演进,交易链路除了前台系统和后台系统,还包括中台系统,因此,整个交易链路经过多个交易节点。为了及时发现银行交易的性能瓶颈,很多银行开始采用全链路生产压力测试的性能测试方法,所谓全链路生产压力测试,指的是模拟真实场景、使用多样化的流量请求进行全流程和全链路压力测试,以发现整个交易链路中的性能瓶颈。

传统的性能测试采用单一节点性能监控方法,对于分布式银行系统而言,其交易链路上有很多分布式节点,因此,单点监控方法难以在全链路生产压力测试过程中全面监控各个链路节点的性能参数,并且,交易链路越复杂,单一节点性能监控越难发现整个链路的性能瓶颈。

发明内容

有鉴于此,本发明公开一种全链路生产压力测试的监控方法及装置,以实现分布式收集交易链路节点对应的性能数据,方便测试人员在全链路生产压力测试过程中全方位的监控生产链路的性能指标,有利于测试人员发现分布式银行系统整个链路的性能瓶颈。

一种全链路生产压力测试的监控方法,包括:

获取对分布式银行系统的全链路生产压力测试的监控请求;

基于所述监控请求,利用Logstash采集被监控系统进行交易时的交易链路数据,其中,所述交易链路数据包括:上下游的交易链路节点及对应的性能数据,所述被监控系统预先基于OpenTracing协议进行埋点配置;

对所述交易链路数据中的预设性能测试指标进行处理,实现对全链路生产压力测试的监控。

可选的,所述监控请求为在交易请求端执行压力测试脚本后生成。

可选的,对所述被监控系统进行埋点配置的过程包括:

对所述被监控系统的埋点组件进行配置,得到埋点配置信息;

将交易链路标识参数添加至所述埋点配置信息中,以将所述交易链路数据和所述交易链路节点的日志数据进行关联;

基于OpenTracing协议对所述交易链路节点进行嵌入式埋点,以在交易链路中获取上下游的所述交易链路节点及对应的性能数据。

可选的,所述交易链路标识参数为交易链路Id信息。

可选的,还包括:

根据所述交易链路Id信息生成相关联的链路单元,其中,所述链路单元之间通过parentID和TraceId确定关联关系,同一交易链路Id信息的所述链路单元沟通调用链路。

可选的,在对所述交易链路数据中的预设性能测试指标进行处理,实现对全链路生产压力测试的监控之后,还包括:

对所述交易链路数据进行预设操作,并将操作结果在前端界面进行展示,其中,所述预设操作包括:原始数据流分析、链路流数据清晰、调用链路实时还原以及服务关系实时统计。

一种全链路生产压力测试的监控装置,包括:

请求获取单元,用于获取对分布式银行系统的全链路生产压力测试的监控请求;

采集单元,用于基于所述监控请求,利用Logstash采集被监控系统进行交易时的交易链路数据,其中,所述交易链路数据包括:上下游的交易链路节点及对应的性能数据,所述被监控系统预先基于OpenTracing协议进行埋点配置;

处理单元,用于对所述交易链路数据中的预设性能测试指标进行处理,实现对全链路生产压力测试的监控。

可选的,还包括:

埋点配置单元,用于对所述被监控系统进行埋点配置;

所述埋点配置单元具体用于:

对所述被监控系统的埋点组件进行配置,得到埋点配置信息;

将交易链路标识参数添加至所述埋点配置信息中,以将所述交易链路数据和所述交易链路节点的日志数据进行关联;

基于OpenTracing协议对所述交易链路节点进行嵌入式埋点,以在交易链路中获取上下游的所述交易链路节点及对应的性能数据。

可选的,所述交易链路标识参数为交易链路Id信息。

可选的,还包括:

生成单元,用于根据所述交易链路Id信息生成相关联的链路单元,其中,所述链路单元之间通过parentID和TraceId确定关联关系,同一交易链路Id信息的所述链路单元沟通调用链路。

可选的,还包括:

展示单元,用于在所述处理单元对所述交易链路数据中的预设性能测试指标进行处理,实现对全链路生产压力测试的监控之后,对所述交易链路数据进行预设操作,并将操作结果在前端界面进行展示,其中,所述预设操作包括:原始数据流分析、链路流数据清晰、调用链路实时还原以及服务关系实时统计。

从上述的技术方案可知,本发明公开了一种全链路生产压力测试的监控方法及装置,获取对分布式银行系统的全链路生产压力测试的监控请求,基于监控请求,利用Logstash采集被监控系统进行交易时的交易链路数据,交易链路数据包括:上下游的交易链路节点及对应的性能数据,被监控系统预先基于OpenTracing协议进行埋点配置,对交易链路数据中的预设性能测试指标进行处理,实现对全链路生产压力测试的监控。本发明基于OpenTracing协议和Logstash,在全链路生产压力测试过程中获取交易链路数据,从而可以生成交易调用视图,同时本发明可以分布式收集交易链路节点对应的性能数据,方便测试人员在全链路生产压力测试过程中全方位的监控生产链路的性能指标,有利于测试人员发现分布式银行系统整个链路的性能瓶颈。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据公开的附图获得其他的附图。

图1为本发明实施例公开的一种全链路生产压力测试的监控方法流程图;

图2为本发明实施例公开的一种对被监控系统进行埋点配置的方法流程图;

图3为本发明实施例公开的一种全局交易链路示意图;

图4为本发明实施例公开的一种交易链路数据的采集示意图;

图5为本发明实施例公开的一种全链路生产压力测试的监控装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种全链路生产压力测试的监控方法及装置,获取对分布式银行系统的全链路生产压力测试的监控请求,基于监控请求,利用Logstash采集被监控系统进行交易时的交易链路数据,交易链路数据包括:上下游的交易链路节点及对应的性能数据,被监控系统预先基于OpenTracing协议进行埋点配置,对交易链路数据中的预设性能测试指标进行处理,实现对全链路生产压力测试的监控。本发明基于OpenTracing协议和Logstash,在全链路生产压力测试过程中获取交易链路数据,从而可以生成交易调用视图,同时本发明可以分布式收集交易链路节点对应的性能数据,方便测试人员在全链路生产压力测试过程中全方位的监控生产链路的性能指标,有利于测试人员发现分布式银行系统整个链路的性能瓶颈。

参见图1,本发明实施例公开的一种全链路生产压力测试的监控方法流程图,该方法包括:

步骤S101、获取对分布式银行系统的全链路生产压力测试的监控请求;

其中,监控请求为在交易请求端执行压力测试脚本后生成。

电子银行系统指类似网上银行、掌上银行以及其他利用电子服务和网络,为客户提供自助服务方式完成金融交易的银行系统。

步骤S102、基于所述监控请求,利用Logstash采集被监控系统进行交易时的交易链路数据;

本实施例中,Logstash是一种免费开源的服务器端数据处理管道,能从多个来源采集数据,转换数据,然后将数据发送至相应存储器中。

其中,交易链路数据包括:上下游的交易链路节点及对应的性能数据,所述被监控系统预先基于OpenTracing协议进行埋点配置。

OpenTracing是一个轻量级的标准化层,位于应用程序/类库和追踪或日志分析程序之间,可提供平台无关、厂商无关的API以及跨平台的链路跟踪采集能力。

OpenTracing数据模型包含:Trace:一次完整的请求链路;Span:一次调用过程(包括调用开始时间和结束时间);SpanContext:Trace的全局上下文信息,如TraceId。

本实施例中,当应用发起HTTP服务调用时,埋点组件将TraceId、id、parentID等参数通过HTTP请求向下传递,引入埋点组件的服务端应用通过读取链路ID信息,生成相关联的链路单元。同一TraceId的链路单元构成调用链路(Trace),链路单元之间通过parentID确认关联关系。同时,由Logstash模块完成分布式节点的性能参数收集。

步骤S103、对交易链路数据中的预设性能测试指标进行处理,实现对全链路生产压力测试的监控。

在实际应用中,根据交易链路数据可以进行原始数据流分析、链路流数据清洗、调用链路实时还原以及服务关系的实时统计等。

其中,预设性能测试指标包括:调用次数、平均响应时间、HTTP服务成功率等。

综上可知,本发明公开了一种全链路生产压力测试的监控方法,获取对分布式银行系统的全链路生产压力测试的监控请求,基于监控请求,利用Logstash采集被监控系统进行交易时的交易链路数据,交易链路数据包括:上下游的交易链路节点及对应的性能数据,被监控系统预先基于OpenTracing协议进行埋点配置,对交易链路数据中的预设性能测试指标进行处理,实现对全链路生产压力测试的监控。本发明基于OpenTracing协议和Logstash,在全链路生产压力测试过程中获取交易链路数据,从而可以生成交易调用视图,同时本发明可以分布式收集交易链路节点对应的性能数据,方便测试人员在全链路生产压力测试过程中全方位的监控生产链路的性能指标,有利于测试人员发现分布式银行系统整个链路的性能瓶颈。

为进一步优化上述实施例,步骤S103之后,还可以包括:

对交易链路数据进行预设操作,并将操作结果在前端界面进行展示,其中,所述预设操作包括:原始数据流分析、链路流数据清晰、调用链路实时还原以及服务关系实时统计。

在实际应用中,当对全链路生产压力测试监控时,可以将对预设性能测试指标的处理结果,比如原始数据流分析结果、链路流数据清洗结果、调用链路实时还原结果以及服务关系的实时统计结果等,在前端进行展示。

较优的,可以将对预设性能测试指标的处理结果在前端进行图形化展示。

为进一步优化上述实施例,参见图2,本发明还公开了一种对被监控系统进行埋点配置的方法流程图,该方法包括:

步骤S201、对被监控系统的埋点组件进行配置,得到埋点配置信息;

本步骤主要是为了配置相应的记录方式(包括log4net和http两种方式),应用系统名称(用于与其他系统区分,可能有多个系统都在使用该监控装置),采集开关,采样率,发送队列长度,发送超时时间,发送频率控制、集群地址和集群ID等信息。埋点组间采用UDP(User DatagramProtocol,用户数据报协议)异步传输,具备队列和流量控制,不会影响系统正常业务。

本实施例通过对被监控系统的埋点组件进行配置实现对被监控系统的埋点配置。埋点的目的是:说明系统名称、采样率、发送超时时间、发送频率等信息。埋点组件支持HTTP服务调用串联、链路数据采集、SQL(Structured Query Language,结构化查询语言)调用性能数据采集等功能。链路埋点采集支持采集功能开关、设置采集抽样率等配置。同时埋点具备流量和队列控制,不影响系统正常业务交易。

步骤S202、将交易链路标识参数添加至所述埋点配置信息中,以将所述交易链路数据和所述交易链路节点的日志数据进行关联;

其中,交易链路标识参数可以优选交易链路Id参数,表示为:TraceId。

本实施例中,通过将交易链路标识参数添加至埋点配置信息中,实现交易链路数据和日志数据的关联,使用链路查询功能定位单笔交易调用链后,可根据链路TraceId检索对应系统的日志信息,实现单笔交易的日志精准定位。

步骤S203、基于OpenTracing协议对所述交易链路节点进行嵌入式埋点,以在交易链路中获取上下游的所述交易链路节点及对应的性能数据。

采集的链路数据遵循OpenTracing协议,可对应用的HTTP服务调用、数据库调用等阶段进行链路单元(Span)监控数据采集。

当应用发起HTTP服务调用时,埋点组件将TraceId、id、parentID等参数通过HTTP请求向下传递,引入埋点组件的服务端应用通过读取链路ID信息,生成相关联的链路单元。同一TraceId的链路单元构成交易链路(Trace),链路单元之间通过parentID确认关联关系。

为便于理解交易链路Trace的工作原理,参见图3,本发明实施例公开的一种全局交易链路示意图,发起交易trade-webService后,分为两个步骤,分别为:

Trace:一次完整的交易请求,具备一个全局TraceId,用来标识本次请求调用链。

全局TraceId:用于标识本次请求的调用链。

Span:链路单元,一次调用过程(包括调用开始时间和结束时间)如图中的1、2、1.1、1.2等数据服务间的一次服务调用,每次服务调用都包含相同的traceId

SpanContext:每次服务调用的相关信息,将traceId、父节点等上下文信息向下传递,使所有的Span关联。

以客户在网页端发起理财购买交易为例,改交易,首先要影响账户金额,其次要为客户开通理财合约,并将购买请求传至后端,直到跑批量之后生成持有份额。

trade-webService:交易请求的web服务端,受理web端收到的交易请求,判断交易类型,然后将请求向下传递,至product-service和trade-service。

product-Service:产品服务端,完成对涉及的产品信息修改,本次交易中产品为交易的银行卡,产品服务端完成对银行卡的响应购买金额冻结。

trade-service:交易服务端,发起理财购买交易,调起后端trade,并在MQ中记录。

trade:理财购买交易实际执行结点,该结点完成定时批量程序,将用户的理财账户中生成购买份额。

MQ:message queue,消息队列,将该条记录信息记录至消息队列中。

memCached:缓存,交易的缓存记录。

product:产品信息库,购买完成后,将银行卡冻结的购买金额扣除,最终记录至产品信息服务器中。

在实际应用中,对被监控系统进行埋点之后,可实现HTTP服务调用、数据库调用环节监控数据采集,上下游HTTP调用链路串联收集端和监控前台默认支持跨应用服务调用串联、单链路查询、关联日志查询实时性能展示、告警配置功能三大指标:支持交易量(服务调用次数)、服务响应时间指标的配置监控。成功率支持HTTP调用返回状态成功率统计,不反映业务交易的成功率。交易成功率统计:对交易的业务返回状态(成功或失败)进行埋点后,可统计业务成功率。

为进一步优化上述实施例,还可以包括:

根据交易链路Id信息生成相关联的链路单元,其中,所述链路单元之间通过parentID和TraceId确定关联关系,同一交易链路Id信息的所述链路单元沟通调用链路。

需要特别说明的是,本发明基于OpenTracing协议进行埋点,主要是进行嵌入式埋点,目的是是在交易进行时收集上下游链路的信息以及相关性能信息。链路规范遵循OpenTracing协议,可对应用的HTTP服务调用、数据库调用等阶段进行交易链路数据采集。详见图4,本发明实施例公开的一种交易链路数据的采集示意图,本次链路请求的全局TraceId为111111,交易链路包含a、b、c、d、四个结点。通过埋点,交易每经过一个结点,会将应用的HTTP服务调用、数据库调用等阶段进行监控数据采集,并通过数据收集器Collector收集起来进行处理,生成本次链路请求的相关监控信息。

与上述方法实施例相对应,本发明还公开了一种全链路生产压力测试的监控装置。

参见图5,本发明实施例公开的一种全链路生产压力测试的监控装置的结构示意图,该监控装置包括:

请求获取单元301,用于获取对分布式银行系统的全链路生产压力测试的监控请求;

其中,监控请求为在交易请求端执行压力测试脚本后生成。

电子银行系统指类似网上银行、掌上银行以及其他利用电子服务和网络,为客户提供自助服务方式完成金融交易的银行系统。

采集单元302,用于基于所述监控请求,利用Logstash采集被监控系统进行交易时的交易链路数据;

其中,所述交易链路数据包括:上下游的交易链路节点及对应的性能数据,所述被监控系统预先基于OpenTracing协议进行埋点配置。

本实施例中,当应用发起HTTP服务调用时,埋点组件将TraceId、id、parentID等参数通过HTTP请求向下传递,引入埋点组件的服务端应用通过读取链路ID信息,生成相关联的链路单元。同一TraceId的链路单元构成调用链路(Trace),链路单元之间通过parentID确认关联关系。同时,由Logstash模块完成分布式节点的性能参数收集。

处理单元303,用于对所述交易链路数据中的预设性能测试指标进行处理,实现对全链路生产压力测试的监控。

在实际应用中,根据交易链路数据可以进行原始数据流分析、链路流数据清洗、调用链路实时还原以及服务关系的实时统计等。

其中,预设性能测试指标包括:调用次数、平均响应时间、HTTP服务成功率等。

综上可知,本发明公开了一种全链路生产压力测试的监控装置,获取对分布式银行系统的全链路生产压力测试的监控请求,基于监控请求,利用Logstash采集被监控系统进行交易时的交易链路数据,交易链路数据包括:上下游的交易链路节点及对应的性能数据,被监控系统预先基于OpenTracing协议进行埋点配置,对交易链路数据中的预设性能测试指标进行处理,实现对全链路生产压力测试的监控。本发明基于OpenTracing协议和Logstash,在全链路生产压力测试过程中获取交易链路数据,从而可以生成交易调用视图,同时本发明可以分布式收集交易链路节点对应的性能数据,方便测试人员在全链路生产压力测试过程中全方位的监控生产链路的性能指标,有利于测试人员发现分布式银行系统整个链路的性能瓶颈。

为进一步优化上述实施例,监控装置还可以包括:

展示单元,用于在处理单元303对所述交易链路数据中的预设性能测试指标进行处理,实现对全链路生产压力测试的监控之后,对所述交易链路数据进行预设操作,并将操作结果在前端界面进行展示,其中,所述预设操作包括:原始数据流分析、链路流数据清晰、调用链路实时还原以及服务关系实时统计。

在实际应用中,当对全链路生产压力测试监控时,可以将对预设性能测试指标的处理结果,比如原始数据流分析结果、链路流数据清洗结果、调用链路实时还原结果以及服务关系的实时统计结果等,在前端进行展示。

较优的,可以将对预设性能测试指标的处理结果在前端进行图形化展示。

为进一步优化上述实施例,监控装置还可以包括:

埋点配置单元,用于对所述被监控系统进行埋点配置;

所述埋点配置单元具体用于:

对所述被监控系统的埋点组件进行配置,得到埋点配置信息;

将交易链路标识参数添加至所述埋点配置信息中,以将所述交易链路数据和所述交易链路节点的日志数据进行关联;

基于OpenTracing协议对所述交易链路节点进行嵌入式埋点,以在交易链路中获取上下游的所述交易链路节点及对应的性能数据。

本实施例通过对被监控系统的埋点组件进行配置实现对被监控系统的埋点配置。埋点的目的是:说明系统名称、采样率、发送超时时间、发送频率等信息。埋点组件支持HTTP服务调用串联、链路数据采集、SQL(Structured Query Language,结构化查询语言)调用性能数据采集等功能。链路埋点采集支持采集功能开关、设置采集抽样率等配置。同时埋点具备流量和队列控制,不影响系统正常业务交易。

其中,交易链路标识参数可以优选交易链路Id参数,表示为:TraceId。

为进一步优化上述实施例,监控装置还可以包括:

生成单元,用于根据所述交易链路Id信息生成相关联的链路单元,其中,所述链路单元之间通过parentID和TraceId确定关联关系,同一交易链路Id信息的所述链路单元沟通调用链路。

需要说明的是,装置实施例中各组成部分的具体工作原理,请参见方法实施例对应部分,此处不再赘述。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术分类

06120114694442