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

针对目标应用的流量采集方法、装置及系统

文献发布时间:2024-04-18 20:01:30


针对目标应用的流量采集方法、装置及系统

技术领域

本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种针对目标应用的流量采集方法、装置及系统。

背景技术

多数情况下,针对部署在线上环境的应用程序,可以对其进行流量采集。应理解,针对该应用程序的流量采集结果(以下简称采集结果)有多种多样的用途。比如,可以基于该采集结果,生成该应用程序的线下环境测试用例;再比如,可以基于采集结果进行流量场景特征的挖掘,以梳理得到更多的测试场景。还比如,可以基于采集结果实现单测语义化,这里的单测为单元测试的简称。

传统技术中,依赖于专家经验判断来定义和下发流量采集的采集点(也称采集位置)。因此,需要提供一种更高效更准确的自动流量采集方法。

发明内容

本说明书一个或多个实施例描述了一种针对目标应用的流量采集方法,可以更高效更准确地针对目标应用进行流量采集。

第一方面,提供了一种针对目标应用的流量采集方法,包括:

目标平台向程序分析平台发送针对目标应用的解析请求;

所述程序分析平台响应于所述解析请求,解析所述目标应用的程序结构,得到用于对所述目标应用进行流量采集的多个采集点,并将该多个采集点提供给所述目标平台;其中的单个采集点对应于所述目标应用的一个方法或类;

所述目标平台将所述多个采集点划分为若干采集点组,并将各采集点组提供给采集引擎;

所述目标平台确定所述各采集点组与执行采集的采集机器的第一对应关系,并将该第一对应关系提供给所述采集引擎;

所述采集引擎根据其维护的各采集点组以及接收的所述第一对应关系,将所述各采集点组下发至采集集群中对应的采集机器,使得所述采集机器根据其接收的采集点组,针对所述目标应用进行流量采集,并将采集结果提供给所述目标平台。

第二方面,提供了一种针对目标应用的流量采集方法,通过目标平台执行,包括:

向程序分析平台发送针对目标应用的解析请求;

接收所述程序分析平台通过对所述目标应用的程序结构进行解析所获得的、用于对所述目标应用进行流量采集的多个采集点,其中的每个采集点对应于所述目标应用的一个方法或类;

将所述多个采集点划分为若干采集点组,并将各采集点组提供给采集引擎;

确定所述各采集点组与执行采集的采集机器的第一对应关系,并将该第一对应关系提供给所述采集引擎;使得所述采集引擎将所述各采集点组下发至采集集群中对应的采集机器,以供所述采集机器根据其接收的采集点组,针对所述目标应用进行流量采集,并将采集结果提供给所述目标平台。

第三方面,提供了一种针对目标应用的流量采集系统,包括:

目标平台,用于向程序分析平台发送针对目标应用的解析请求;

所述程序分析平台,用于响应于所述解析请求,解析所述目标应用的程序结构,得到用于对所述目标应用进行流量采集的多个采集点,并将该多个采集点提供给所述目标平台;其中的单个采集点对应于所述目标应用的一个方法或类;

所述目标平台,还用于将所述多个采集点划分为若干采集点组,并将各采集点组提供给采集引擎;

所述目标平台,用于确定所述各采集点组与执行采集的采集机器的第一对应关系,并将该第一对应关系提供给所述采集引擎;

所述采集引擎,用于根据其维护的各采集点组以及接收的所述第一对应关系,将所述各采集点组下发至采集集群中对应的采集机器,使得所述采集机器根据其接收的采集点组,针对所述目标应用进行流量采集,并将采集结果提供给所述目标平台。

第四方面,提供了一种针对目标应用的流量采集装置,设置于目标平台,包括:

发送单元,用于向程序分析平台发送针对目标应用的解析请求;

接收单元,用于接收所述程序分析平台通过对所述目标应用的程序结构进行解析所获得的、用于对所述目标应用进行流量采集的多个采集点,其中的每个采集点对应于所述目标应用的一个方法或类;

划分单元,用于将所述多个采集点划分为若干采集点组,并将各采集点组提供给采集引擎;

确定单元,用于确定所述各采集点组与执行采集的采集机器的第一对应关系,并将该第一对应关系提供给所述采集引擎;使得所述采集引擎将所述各采集点组下发至采集集群中对应的采集机器,以供所述采集机器根据其接收的采集点组,针对所述目标应用进行流量采集,并将采集结果提供给所述目标平台。

第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一或第二方面的方法。

第六方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,该处理器执行所述可执行代码时,实现第一或第二方面的方法。

本说明书一个或多个实施例提供的针对目标应用的流量采集方法,程序分析平台通过对目标应用的程序结构进行解析,可以自动生成多个采集点,由此可以提升采集点生成的准确性和效率。进一步地,目标平台针对该多个采集点先进行分组,然后按照分组将采集点下发至采集机器,可以大大提升采集点下发的灵活性,且可以确保采集机器的稳定性。

附图说明

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

图1为本说明书披露的一个实施例的实施场景示意图;

图2示出根据一个实施例的针对目标应用的流量采集方法示意图;

图3示出在一个例子中针对目标应用的程序结构的解析方法流程图;

图4示出在一个例子中采集点的下发方法示意图;

图5示出根据一个实施例的针对目标应用的流量采集系统示意图;

图6示出根据一个实施例的针对目标应用的流量采集装置示意图。

具体实施方式

下面结合附图,对本说明书提供的方案进行描述。

如前所述,传统技术中,依赖于专家经验判断来定义和下发采集点。该种方式存在如下缺点:a.无法自动生成采集点,或者所生成的采集点有缺失。b.对于采集异常或影响采集稳定性的采集点,无法感知并做出处理,从而影响被采集流量的应用程序和采集任务稳定性。c.对于应用更新带来的采集点变化,无法及时感知并更新采集点。d.大量采集点的下发需要人工处理分段并频繁操作采集点上下线,存在大量人力成本。

为此,本申请的发明人提出,通过解析应用程序的程序结构,来自动生成采集点,且所生成的采集点按照分组自动下发至采集机器,由此可以减少流量采集过程中的人工干预,且可以降低流量采集成本。

图1为本说明书披露的一个实施例的实施场景示意图。图1中,目标平台例如可以为测试平台,程序分析平台用于针对应用程序的程序结构进行解析,以获取多个维度的采集点。这里的多个维度包括但不限于应用维度、包维度、类维度、方法维度和接口维度中的若干项,这里的若干项指代一项或多项。单测用例生成平台用于针对应用程序生成需要语义化的所有目标方法,从而基于该单测用例生成平台可以获取到多个方法维度的采集点。

此外,图1中的采集引擎包括采集管理中心和采集模块。在一个具体例子中,该采集模块可以是在应用进程之外附加的另一个程序。本方案中,可以将该采集模块的实例(以下统称为采集模块)分别部署到各个应用环境下执行流量采集的各采集机器中。该采集机器中部署有应用程序。

更进一步地,针对各采集机器可以划分得到多个采集机器集合,每个采集机器集合用于生效一个采集点组,其中的各采集机器可以对应多个应用环境。其中这里的应用环境例如可以为预发环境、仿真环境、灰度环境或生产环境等。比如,图1中的机器1、机器2和机器3组成采集机器集合x,其中,机器1和机器2对应预发环境,机器3对应生产环境。

图1中,目标平台可以分别向程序分析平台和单测用例生成平台发送针对目标应用的解析请求,以获取多个采集点。之后,目标平台可以将该多个采集点划分为若干采集点组,并针对各采集点组分别设置对应的采集机器。接着,目标平台可以将各采集点组与采集机器的对应关系下发至采集管理中心,从而在各采集机器启动/重启后,通过其中的采集模块从采集管理中心请求对应的采集点组,以及根据接收的采集点组针对目标应用进行流量采集。

应理解,图1只是一种示例性说明,在实际应用中,每个采集机器集合还可以包括更多或更少个采集机器,以及与采集机器集合对应的应用环境还可以为仿真环境或者灰度环境等,本说明书对此不作限定。

图2示出根据一个实施例的针对目标应用的流量采集方法示意图,如图2所示,该方法可以包括如下步骤:

步骤S202,目标平台向程序分析平台发送针对目标应用的解析请求。

在一个实施例中,上述解析请求是由目标平台响应于用户的解析指令而发送的。具体地,目标平台在接收到上述解析指令之后,可以对该解析指令进行校验,比如,校验用户是否合法以及目标应用是否已接入目标平台等等。在针对解析指令的校验通过后,向程序分析平台发送解析请求。

当然,在实际应用中,也可以是由目标平台按照预定时间间隔,周期性自动向程序分析平台发送上述解析请求,本说明书对此不作限定。

需要说明,在本说明书实施例中,可以是对目标应用的整个程序结构进行解析,也可以是仅对目标应用的分支代码结构进行解析,从而上述解析请求可以仅包括应用标识(对应于整个程序结构的解析),也可以同时包括应用标识和分支标识(对应于分支代码结构的解析)。

步骤S204,程序分析平台响应于解析请求,解析目标应用的程序结构,得到用于对目标应用进行流量采集的多个采集点,并将该多个采集点提供给目标平台。

其中,上述的流量采集是指采集针对目标应用的HTTP访问、RPC访问和MSG访问等。

具体地,程序分析平台根据解析请求中的应用标识,从代码仓库中捞取目标应用的程序代码并解析其程序结构(比如,跟踪程序内变量的传播路径),或者根据解析请求中的应用标识和分支标识,从代码仓库中捞取目标应用的分支代码并解析其分支代码结构,得到多个维度的采集点。这里的多个维度包括但不限于应用维度、包维度、类维度、方法维度和接口维度中的若干项。此外,通过上述解析过程还可以得到目标应用的程序结构描述,比如,整个程序代码或分支代码中所包含类的名称和方法的名称、方法和类的归属关系以及方法参数等等。

当然,在实际应用中,目标平台还可以向其它具有程序结构解析功能的平台(比如,图1中的单测用例生成平台)发送解析请求,以获取更多更全面的采集点,本说明书对此不作限定。

在目标平台从程序分析平台和单测用例生成平台中的至少一个,获取到多个采集点后,可以将该多个采集点存储至目标应用的数据库中。

步骤S206,目标平台将多个采集点划分为若干采集点组,并将各采集点组提供给采集引擎。

在一个实施例中,目标平台可以接收用户的编辑指令,并根据该编辑指令编辑所获取的多个采集点,比如,增加、修改或删除采集点。

当然,在实际应用中,也可以由目标平台根据预定义规则,对所获取的多个采集点进行过滤或补充等预处理,从而得到最终的采集点。

应理解,在目标平台还对所获取的多个采集点进行预处理的情况下,那么步骤S206可以是针对预处理后的采集点划分分组。

在一个实施例中,目标平台可以基于若干目标信息,将多个采集点划分为若干采集点组。其中,这里的若干目标信息可以包括以下中的至少一项:采集点数量、流量使用场景(或称消费类型)、流量去向、流量采集点匹配度、流量总量以及机器资源条件(也称机器性能指标,比如,CPU指标、Memory(存储)、Load(负载)指标等)等。

此外,上述将各采集点组提供给采集引擎具体为,将各采集点组及其组信息(比如,组名称)提供给采集引擎的采集管理中心,从而采集管理中心可以将各采集点组分别作为各采集点版本,并基于各采集点组的组信息生成对应的版本标识,以及将对应于各采集点组的版本标识提供给目标平台,目标平台可以在本地存储各采集点组与版本标识的对应关系。

应理解,采集管理中心在接收到上述各采集点组后,可以在本地存储各采集点组,以供后续下发使用。

步骤S208,目标平台确定各采集点组与执行采集的采集机器的第一对应关系,并将该第一对应关系提供给采集引擎。

其中,与单个采集点组对应的采集机器的数目可以为多个,该多个采集机器共同构成该单个采集点组对应的采集机器集合。此外,采集机器具有对应的应用环境,其中这里的应用环境例如可以为预发环境、仿真环境、灰度环境或生产环境等。应理解,同一采集机器集合中各采集机器的应用环境可以不同。

需要说明,上述的各应用环境的安全级别不同,比如,预发环境和仿真环境对应的安全级别高于灰度环境和生产环境。换而言之,灰度环境和生产环境的风险性高于预发环境和仿真环境。

在一个实施例中,目标平台可以接收用户的选择指令,并根据该选择指令设置上述第一对应关系。

通常情况下,针对目标应用的流量采集可以包括多轮迭代,其中在每一轮迭代中,可以重新确定各采集点组与采集机器的对应关系。在一个更具体的实施例中,在任意的第t(t为正整数)轮迭代中,目标平台可以向用户展示在第t-1轮迭代中,各采集点组与采集机器的对应关系(以下称第t-1轮对应关系),以供用户根据该第t-1轮对应关系,设置第t轮对应关系。这里的设置包括,更换某个采集点组对应的采集机器,或者删除某个采集点对应的采集机器等等。

当然,在实际应用中,也可以由目标平台自动设置各采集点组与采集机器的对应关系,本说明书对此不作限定。

需要说明,在实际应用中,可能会存在不同的采集机器对应的流量类型不同的情况,而采集机器可以采集到流量的前提条件是:存在采集点和该采集点的入口流量类型与采集机器对应的流量类型相一致。因此,在采集点组中采集点的入口流量类型,以及采集机器对应的流量类型该两者均明确的情况下,可以直接设置采集点组与采集机器的对应关系,也即基于分段策略设置各采集点组与采集机器的对应关系。之后,将各个采集点组下发至关联的采集机器。这里的关联是指,采集点组中采集点的入口流量类型与采集机器对应的流量类型相一致。

而在上述两者中之一不明确的情况下,为确保基于每个采集点组均能采集到对应类型的流量,需要单个采集点组在采集集群(由全部的采集机器构成)中的各采集机器上轮转生效。为此,本方案还提出基于分时分段策略,来设置各采集点组与采集机器的对应关系。

具体地,目标平台设置在多个不同时段分别生效的、各采集点组与采集机器的多个对应关系。然后,在每个时段到达时,将在该时段生效的对应关系提供给采集引擎。

在基于分时分段策略,设置各采集点组与采集机器的对应关系时,上述目标平台确定各采集点组与执行采集的采集机器的第一对应关系包括:在第一时段到达时,从多个对应关系中确定在第一时段生效的第一对应关系。应理解,这里的第一时段为上述多个不同时段中的任一时段。

应理解,在目标平台将第一对应关系提供给采集引擎之后,在第二时段到达时,目标平台确定在第二时段生效的第二对应关系,并将其提供给采集引擎;依次类推,直至将多个对应关系均提供给采集引擎。这里的第二时段为上述多个不同时段中位于第一时段之后的时段。

还应理解,在分时策略下,单个采集点组在多个对应关系中分别对应的采集机器构成采集集群(由全部的采集机器构成);且采集集群中任意一台采集机器在不同时段对应不同采集点组。

在一个例子中,上述的多个对应关系可以如表1所示。

表1

表1中,0点-3点和3点-6点分别代表两个时段,且多个采集点可以划分为两个采集点组:组A和组B,采集集群(也即全部的采集机器)包括10台采集机器。

表1中,在0点-3点,机器1-机器5构成对应于组A的采集机器集合,其中,机器1-机器3对应预发环境,机器4-机器5对应生产环境。以及机器6-机器10构成对应于组B的采集机器集合,其中,机器6-机器8对应预发环境,机器9-机器10对应生产环境。此外,在3点-6点,机器6-机器10构成对应于组A的采集机器集合,而机器1-机器5构成对应于组B的采集机器集合。可见,组A和组B是在采集集群中的各台机器上轮转生效。

应理解,在该例子中,在0点-3点到达时,目标平台首先可以将组A与机器1-机器3的对应关系,以及组B与机器6-机器8的对应关系提供给采集引擎。之后,在确认组A在机器1-机器3以及组B在机器6-机器8生效后,目标平台可以将组A与机器4-机器5的对应关系,以及组B与机器8-机器10的对应关系提供给采集引擎等等。在3点-6点到达时,目标平台发送对应关系的方法相类似,本说明书在此不复赘述。

还应理解,表1只是一种示例性说明,在实际应用中,表1中的采集点组也可以替换为对应的版本标识等,本说明书对此不作限定。

回到步骤S208中,目标平台具体可以将第一对应关系提供给采集引擎的采集管理中心。

在一个实施例中,在目标平台本地存储由各采集点组与版本标识的对应关系时,上述将第一对应关系提供给采集引擎的采集管理中心可以包括,目标平台将各采集点组对应的版本标识与采集机器的第一对应关系提供给采集引擎的采集管理中心。

此外,在实际应用中,为确保目标平台所设置的多个对应关系的正确性,在目标平台将多个对应关系提供给采集引擎的采集管理中心之前和之中,目标平台可以针对各采集点组进行第一校验,并在第一校验通过后,将该第一对应关系提供给采集引擎的采集管理中心。

在一个实施例中,对各采集点组进行第一校验包括执行以下中的一项或多项:判断在多个不同时段针对各采集点组是否均设置了对应的采集机器;判断各采集点组在多个对应关系中分别对应的采集机器的资源条件是否满足目标要求;判断在多个不同时段分别生效的多个对应关系中,对应于单个采集点组所生效的应用环境是否满足安全级别从高到底等。

其中,上述前两项的判断可以是在目标平台将多个对应关系提供给采集管理中心之前进行,而最后一项的判断可以是在目标平台将多个对应关系提供给采集管理中心的过程之中进行。具体地,最后一项中单个采集点组所生效的应用环境是否满足安全级别从高到底具体是指,单个采集点组先在安全级别高(或风险低)的应用环境生效,然后在安全级别低(或风险高)的应用环境生效。

以表1中的组A为例来说,在0点-3点到达时,目标平台先将组A与机器1-机器3的对应关系提供给采集引擎,也即先生效预发环境;之后,目标平台再将组A与机器4-机器5的对应关系提供给采集引擎,即再生效生产环境,即可认为组A所生效的应用环境满足安全级别从高到低。

此外,上述的采集机器的资源条件也可以理解为是采集机器的性能指标,从而上述采集机器的资源条件是否满足目标要求可以包括,采集机器的CPU的占用率是否低于第一阈值,或者Memory的剩余量是否大于第二阈值等等。

步骤S210,采集引擎根据其维护的各采集点组以及接收的第一对应关系,将各采集点组下发至采集集群中对应的采集机器,使得采集机器根据其接收的采集点组,针对目标应用进行流量采集,并将采集结果提供给目标平台。

应理解,在目标平台按照分时分段策略设置各采集点组与采集机器的对应关系时,采集引擎的采集管理中心在接收到对应于某个时段的对应关系时,可以利用该对应关系更新对应于上个时段的对应关系。比如,可以利用上述第二对应关系更新上述第一对应关系。换句话说,采集管理中心始终维护最新的各采集点组与采集机器的对应关系。

以表3为例来说,在0点-3点到达时,目标平台先将组A与机器1-机器3的对应关系1,以及组B与机器6-机器8的对应关系2提供给采集管理中心,从而采集管理中心维护该对应关系1和2。之后,目标平台将组A与机器4-机器5的对应关系3,以及组B与机器9-机器10的对应关系4提供给采集管理中心,从而采集管理中心利用该对应关系3和4,替换上述对应关系1和2,也即其维护对应关系3和4。

在一个实施例中,在采集引擎的采集管理中心接收到目标平台提供的各采集机器与采集集群的对应关系时,采集引擎的采集管理中心可以向采集集群中的各采集机器发送启动或重启指令,从而各采集机器在启动或重启后,通过其中的采集模块向采集管理中心发送数据获取请求。采集管理中心响应于数据获取请求,查询其本地维护的、最新的各采集点组和采集机器的对应关系,并向该采集机器发送对应的采集点组。

比如,在前述例子中,在采集管理中心维护对应关系1和2时,采集管理中心响应于数据获取请求,可以向机器1、机器2和机器3分别发送组A,以及向机器6、机器7和机器8分别发送组B。而对于机器4-机器5以及机器8-机器9,由于没有生效的采集点组,从而不向这些机器返回采集点组或者返回空。同样的,在采集管理中心维护对应关系3和4时,采集管理中心响应于数据获取请求,可以向机器4、机器5分别发送组A,以及向机器9、机器10分别发送组B,而不向剩余机器返回采集点组或者返回空。

应理解,本方案中,目标平台基于分时分段策略设置各采集点组与采集点的对应关系,可以避免将大批量数据下发至采集机器,进而造成采集机器不稳定的问题,此外,还可以更好地解决采集流量充分度问题和采集机器资源问题。

各台采集机器中的采集模块在接收到对应的采集点组后,可以基于其中的每个采集点,向目标应用中插入预定义的代码片段。其中,该代码片段的实现逻辑例如可以为:录制采集点的流量并上报至采集管理中心。其中,在一个例子中,可以采用java字节码插桩技术,向目标应用中插入预定义的代码片段。

需要说明,本说明书实施例所获得的采集结果可以应用于多种场景:其一,目标平台可以基于采集的流量数据(即采集结果),生成集成测试或回归测试的测试用例,用于在线下环境回放进行应用迭代变更验证。其二,目标平台基于采集结果,更新对应采集点组中的采集点,也即动态调整采集点。如前所述,针对目标应用的流量采集可以包括多轮迭代,从而在任意的第t轮迭代结束后,可以对当前的多个采集点进行调整,以用于第t+1轮迭代。

在一个实施例中,上述更新对应采集点组中的采集点可以包括以下中至少一项:通过对所述采集结果进行正确性分析(比如,采集数据序列化是否存在异常或者采集数据包是否大于阈值等等),从对应采集点组中识别问题采集点,并剔除该问题采集点。根据采集结果的数据规模,增加或减少对应采集点组中采集点的数目等等。

综上,本说明书实施例提供的针对目标应用的流量采集方法,程序分析平台通过对目标应用的程序结构进行解析,可以自动生成多个采集点,由此可以提升采集点生成的准确性和效率。进一步地,目标平台针对该多个采集点先进行分组,然后按照分组将采集点下发至采集机器,可以大大提升采集点下发的灵活性,且可以确保采集机器的稳定性。最后,目标平台按照分时分段策略设置各采集点组与采集机器的对应关系,可以确保各采集点组在各台采集机器轮转生效,进而可以确保基于各采集点组均可以采集到流量。

以下对步骤S204中程序分析平台对目标应用的程序结构的解析过程进行说明。

图3示出在一个例子中针对目标应用的程序结构的解析方法流程图。图3中,程序分析平台可以接收目标平台提交的异步任务,该异步任务用于指示程序分析平台对目标应用的程序结构进行解析。程序分析平台在接收到上述异步任务后,执行该异步任务。之后,程序分析平台可以从目标平台接收轮询请求(比如,查询5次,每次间隔1分钟),并响应于该轮询请求,轮询异步任务的执行结果,并判断异步任务是否执行完成。比如,是否获取到了预定数目的采集点,以及是否获取到了程序结构描述等等。在异步任务执行完成后,向目标平台同步该执行结果,或者说,向目标平台返回该执行结果。这里的执行结果包括,多个采集点以及程序结构描述。

需要说明,在针对目标应用的流量采集包括多轮迭代时,上述解析目标应用的程序结构的方法可以是周期性执行的,以实现对采集点的保鲜。具体地,程序分析平台可以按照预定时间间隔,周期性(如,每天)解析目标应用的程序结构,并将在当前周期得到的采集点作为增量数据添加到初始集合(即初始获取的多个采集点构成的集合)中。

应理解,本方案基于图3示出的各方法步骤,可以实现采集点的自动保鲜、T+1保鲜、代码变更实时保鲜以及按需保鲜等等。此外,保鲜维度包括但不限于应用维度、包维度、类维度、接口维度以及方法维度等等。总而言之,本方案可以指定保鲜能力,且可以实现采集点的自动更新和下发。

图4示出在一个例子中采集点的下发方法示意图。图4中,目标平台本地维护的多个采集点可以构成采集点池,该采集点池中还可以维护有各采集点对应的来源平台。这些来源平台可以包括但不限于程序分析平台、单测用例生成平台、目标平台等等。对于采集点池中的采集点,目标平台可以将其划分为若干采集点组,并且针对各采集点组,设置对应的采集机器。这里的设置可以分为两种方式,第一种,分段策略。应理解,该种策略适用于基于采集点的入口流量类型是明确的,且采集机器对应的流量类型也是明确的,从而可以直接设置采集点组与采集机器的对应关系。第二种,分时和分段策略。目标平台设置在多个不同时段分别生效的、各采集点组与采集机器的多个对应关系。应理解,在分时分段策略下,单个采集点组在多个对应关系中分别对应的采集机器构成采集集群。

之后,目标平台通过采集引擎,将各采集点组分段或分时分段下发至采集集群中对应的采集机器,使得采集机器根据接收的采集点组针对目标应用进行流量采集,并将采集结果提供给目标平台。

目标平台可以对接收的采集结果进行数据清洗,并进一步进行流量场景特征的挖掘或者回放流量等。此外,还可以进行流量完备性或者数据正确性等判断,以更新采集点。也就是说,本方案可以在流量采集过程中建设异常反馈机制动态调整采集点,且可以避免大量采集点下发引发稳定性问题的同时,更好地解决了采集流量充分度问题和采集机器资源问题。

与上述针对目标应用的流量采集方法对应地,本说明书一个实施例还提供的一种针对目标应用的流量采集系统,如图5所示,该系统可以包括:

目标平台502,用于向程序分析平台504发送针对目标应用的解析请求。

程序分析平台504,用于响应于解析请求,解析目标应用的程序结构,得到用于对目标应用进行流量采集的多个采集点,并将该多个采集点提供给目标平台502。其中的单个采集点对应于目标应用的一个方法或类。

目标平台502,还用于将多个采集点划分为若干采集点组,并将各采集点组提供给采集引擎506。

目标平台502,还用于确定各采集点组与执行采集的采集机器的第一对应关系,并将该第一对应关系提供给采集引擎506。

采集引擎506,用于根据其维护的各采集点组以及接收的第一对应关系,将各采集点组下发至采集集群中对应的采集机器,使得采集机器根据其接收的采集点组,针对目标应用进行流量采集,并将采集结果提供给目标平台502。

在一个实施例中,目标平台502,还用于设置在多个不同时段分别生效的、各采集点组与采集机器的多个对应关系;

目标平台502具体用于:

在第一时段到达时,从多个对应关系中确定在第一时段生效的第一对应关系。

在一个实施例中,目标平台502,还用于在第二时段到达时,确定在第二时段生效的第二对应关系,并将其提供给采集引擎506;

采集引擎506,还用于根据第二对应关系,将各采集点组下发至对应的采集机器。

在一个实施例中,单个采集点组在多个对应关系中分别对应的采集机器构成采集集群;且采集集群中任意一台采集机器在不同时段对应不同采集点组。

在一个实施例中,采集集群中的各采集机器具有不同安全级别的应用环境;

目标平台502,还用于针对各采集点组进行第一校验,并在第一校验通过后,将该第一对应关系提供给采集引擎506;

其中,第一校验包括执行以下中的一项或多项:

判断在多个不同时段针对各采集点组是否均设置了对应的采集机器;

判断各采集点组在多个对应关系中分别对应的采集机器的资源条件是否满足目标要求;

判断在多个不同时段分别生效的多个对应关系中,对应于单个采集点组所生效的应用环境是否满足安全级别从高到底。

在一个实施例中,

采集引擎506,还用于将各采集点组分别作为各采集点版本生成对应的版本标识,并将其提供给目标平台502;

目标平台502具体用于:

将各采集点组对应的版本标识与采集机器的第一对应关系提供给采集引擎506。

在一个实施例中,目标平台502,还用于通过回放采集结果,生成用于对目标应用进行集成测试或者回归测试的测试用例。

在一个实施例中,目标平台502,还用于根据采集结果,更新对应采集点组中的采集点。

在一个实施例中,目标平台502还具体用于:

通过对采集结果进行正确性分析,从对应采集点组中识别问题采集点,并剔除该问题采集点;

根据采集结果的数据规模,增加或减少对应采集点组中采集点的数目。

本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。

本说明书一个实施例提供的针对目标应用的流量采集系统,可以更高效更准确地针对目标应用进行流量采集。

与上述针对目标应用的流量采集方法对应地,本说明书一个实施例还提供的一种针对目标应用的流量采集装置,设置于目标平台。如图6所示,该装置可以包括:

发送单元602,用于向程序分析平台发送针对目标应用的解析请求。

接收单元604,用于接收程序分析平台通过对目标应用的程序结构进行解析所获得的、用于对目标应用进行流量采集的多个采集点,其中的每个采集点对应于目标应用的一个方法或类;

划分单元606,用于将多个采集点划分为若干采集点组,并将各采集点组提供给采集引擎;

确定单元608,用于确定各采集点组与执行采集的采集机器的第一对应关系,并将该第一对应关系提供给采集引擎;使得采集引擎将各采集点组下发至采集集群中对应的采集机器,以供采集机器根据其接收的采集点组,针对目标应用进行流量采集,并将采集结果提供给目标平台。

本说明书上述实施例装置的各功能单元的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。

本说明书一个实施例提供的针对目标应用的流量采集装置,可以更高效更准确地针对目标应用进行流量采集。

根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。

根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所描述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于介质或设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。

技术分类

06120116556834