一种数据获取方法、分析方法及系统技术方案

技术编号:15301657 阅读:119 留言:0更新日期:2017-05-12 19:01
本发明专利技术提供了一种数据获取方法、分析方法及系统,数据获取方法包括:根据目标代码预先对应用服务器进行参数化配置;应用服务器根据参数化配置对被测程序进行埋点;被测程序运行时触发埋点获取程序运行时的数据。本发明专利技术的对被测系统无需额外改造,具有良好的适配性,且可以按需要进行定制,具有良好的扩展性,能进行灵活的配置,能和服务端灵活通信和控制,系统整体设计的耦合度较低,灵活性较高。

Data acquisition method, analysis method and system

The invention provides a data acquisition method, analysis method and system, data acquisition method comprises: according to target code pre configuration parameters of the application server; the application server according to the configuration parameters of the measured program were buried; the measured runtime trigger buried run-time data acquisition program. The invention of the system to be tested without additional transformation, has good adaptability, and can be customized according to the needs, has good scalability, can be flexibly configured, and the server can flexibly control and communication system, the overall design of the coupling degree is low, high flexibility.

【技术实现步骤摘要】

本专利技术涉及数据处理技术,具体的讲是一种数据获取方法、分析方法及系统
技术介绍
现有技术中,对业务进行统计分析的实现方式中,对被测程序的源代码具有侵入性,要么引入了第三方的工具包,并按工具包的要求编写代码记录业务信息,要么不引入第三方包,自己实现记录log,或者数据库。而这样的实现方式带来的问题是,业务统计分析的代码带来了维护成本,不容易灵活地去做变更,更关键地是,这样的实现方式依赖于源代码,对没有源代码的部分,无法追踪。即,现有技术对运行程序数据的获取,存在依赖源码,或对被测系统源码有侵入性等问题,即增加了系统的耦合性,导致维护成本大大提高。
技术实现思路
为提供一种程序运行时的数据获取方法并利用获取的数据对程序性能参数进行分析,本专利技术实施例提供了一种数据获取方法,包括:根据目标代码预先对应用服务器进行参数化配置;应用服务器根据参数化配置对被测程序进行埋点;被测程序运行时触发埋点获取程序运行时的数据。本专利技术实施例中,所述的应用服务器根据参数化配置对被测程序进行埋点包括:应用服务器根据参数化配置在函数的入口处和出口处对被测程序进行埋点。本专利技术实施例中,所述的程序运行时的数据包括:被测程序代码执行过程中的函数调用数据,所述的函数调用数据包括:调用函数的程序执行时间、调用函数的参数及访问数据。本专利技术实施例中,所述的被测程序为Java程序。同时,本专利技术还提供一种数据分析方法,法包括:根据目标代码预先对应用服务器进行参数化配置;应用服务器根据参数化配置对被测程序进行埋点;被测程序运行时触发埋点获取程序运行时的数据;根据获取的程序运行时的数据生成数据分析结果。本专利技术实施例中,所述的应用服务器根据参数化配置对被测程序进行埋点包括:应用服务器根据参数化配置在函数的入口处和出口处对被测程序进行埋点。本专利技术实施例中,所述的程序运行时的数据包括:被测程序代码执行过程中的函数调用数据,所述的函数调用数据包括:调用函数的程序执行时间、调用函数的参数及访问数据。本专利技术实施例中,所述的根据获取的程序运行时的数据生成数据分析结果包括:根据被测程序代码执行过程中的调用函数的程序执行时间生成性能分析结果;根据被测程序代码执行过程中的调用函数的参数生成安全分析结果;根据被测程序代码执行过程中的调用函数的访问数据生成访问行为分析结果。本专利技术实施例中,所述的被测程序为Java程序。进一步,本专利技术还提供一种数据分析系统,系统包括应用服务器和数据处理器;所述的应用服务器包括:配置模块,用于根据目标代码预先对应用服务器进行参数化配置;埋点模块,用于根据参数化配置对被测程序进行埋点;数据获取模块,用于被测程序运行时触发埋点获取程序运行时的数据;所述的数据处理器,用于根据获取的程序运行时的数据生成数据分析结果。本专利技术提供的数据获取方法、分析方法及系统,对被测系统无需额外改造,以应用服务器埋点方式记录了方法的调用参数,耗时等信息。遵循标准接口去埋点,具有良好的适配性,且可以按需要进行定制,具有良好的扩展性。服务端的分析组件能从各个维度分析数据,可按需要扩展,提升了数据利用的价值。能进行灵活的配置,能和服务端灵活通信和控制,系统整体设计的耦合度较低,灵活性较高。为让本专利技术的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术公开的数据获取方法的流程图;图2为本专利技术实施方式的系统架构图;图3为本专利技术实施例中的代码截图;图4为本专利技术实施例中的代码截图;图5为本专利技术实施例中的代码截图;图6为本专利技术实施例中的代码截图;图7为本专利技术实施例中的代码截图;图8为本专利技术实施例中的代码截图;图9为本专利技术实施例中的一个树形调用结构框图;图10为本专利技术实施例中服务器端组件框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,为本专利技术提供一种数据获取方法,其包括:步骤S101,根据目标代码预先对应用服务器进行参数化配置;步骤S102,应用服务器根据参数化配置对被测程序进行埋点;步骤S103,被测程序运行时触发埋点获取程序运行时的数据。本专利技术实施例中,所述的程序运行时的数据包括:被测程序代码执行过程中的函数调用数据,所述的函数调用数据包括:调用函数的程序执行时间、调用函数的参数及访问数据。本专利技术的技术方案其特点是能对程序运行的函数代码做采样和分析,具体来说是在函数的入口和出口进行埋点采样,并可以按需要对函数输入参数做记录,本专利技术的实施例中,一份完整的采样记录是一个树形结构,其有且仅有一个根节点,树的节点表示一次函数调用,当前节点的子节点表示当前节点的函数调用了子节点函数。对业务相关的处理函数来说,其输入参数通常都有很强的业务相关性,只要获取了这些输入参数,就可以对业务统计分析。现有的对业务进行统计分析的实现方式中,对被测程序的源代码具有侵入性,要么引入了第三方的工具包,并按工具包的要求编写代码记录业务信息,要么不引入第三方包,自己实现记录log,或者数据库。而这样的实现方式带来的问题是,业务统计分析的代码带来了维护成本,不容易灵活地去做变更,更关键地是,这样的实现方式依赖于源代码,对没有源代码的部分,无法追踪。而本案解决了这样的痛点:不需要被测程序的源代码,对被测程序没有侵入性,可随时打开或关闭追踪功能,将数据的获取与分析分离,并提供了丰富的分析功能。如图2所示,为本专利技术实施方式的系统架构图,Java的应用程序一般是部署在应用服务器202(本专利技术实施例中应用服务器包括:weblogic,jboss,tomcat等)上的,当然也可能是独立的程序不需要应用服务器。但是不论应用部署方式如何,都需要在程序启动时加载agent,而agent会对应用程序代码进行埋点,并将埋点获得的数据传回数据处理服务器server202,由数据处理服务器202对数据进行进一步分析。应用服务器Agent节点。Agent的任务包括:完成代码埋点;将收集到的数据传到服务端;接收服务端的控制指令。代码埋点只在函数的入口和出口处,此外,并不是每处函数入口参数都做记录,而只在必要的地方(如url访问入口)记录,这样设计的原因在于,一方面在于用户基本只关心部分组件的访问参数记录,另一方面在于由于程序自身的内在逻辑关联,可以大致推导前续的访问参数序列或后续的访问参数序列,甚至于可以根据关键参数在测试环境中还原整个运行过程,所以,记录关键的入口参数基本就满足了分析需要。同理,函数返回参数基本是不记录的,因为可以通过输入参数计算出返回参数,如确有需要(如统计返回的应答码),本案支持以配置或扩展的方式记录返回参数。本专利技术实施例中,Agent埋点是标准的方式,简要说明如下:Ja本文档来自技高网...
一种数据获取方法、分析方法及系统

【技术保护点】
一种数据获取方法,其特征在于,所述的方法包括:根据目标代码预先对应用服务器进行参数化配置;应用服务器根据参数化配置对被测程序进行埋点;被测程序运行时触发埋点获取程序运行时的数据。

【技术特征摘要】
1.一种数据获取方法,其特征在于,所述的方法包括:根据目标代码预先对应用服务器进行参数化配置;应用服务器根据参数化配置对被测程序进行埋点;被测程序运行时触发埋点获取程序运行时的数据。2.如权利要求1所述的数据获取方法,其特征在于,所述的应用服务器根据参数化配置对被测程序进行埋点包括:应用服务器根据参数化配置在函数的入口处和出口处对被测程序进行埋点。3.如权利要求2所述的数据获取方法,其特征在于,所述的程序运行时的数据包括:被测程序代码执行过程中的函数调用数据,所述的函数调用数据包括:调用函数的程序执行时间、调用函数的参数及访问数据。4.如权利要求3所述的数据获取方法,其特征在于,所述的被测程序为Java程序。5.一种数据分析方法,其特征在于,所述的方法包括:根据目标代码预先对应用服务器进行参数化配置;应用服务器根据参数化配置对被测程序进行埋点;被测程序运行时触发埋点获取程序运行时的数据;根据获取的程序运行时的数据生成数据分析结果。6.如权利要求5所述的数据分析方法,其特征在于,所述的应用服务器根据参数化配置对被测程序进行埋点包括:应用服务器根据参数化配置在函数的入口处和出口处对被测程序进行埋点。7.如权利要求6所述的数据分析方法,其特征在于,所述的程序运行时的数据包括:被测程序代码执行过程中的函数调用数据,所述的函数调用数据包括:调用函数的程序执行时间、调用函数的参数及访问数据。8.如权利要求7所述的数据分析方法,其特征在于,所述的根据获取的程序运行时的数据生成数据分析结果包括:根据被测程序代码执行过程中的...

【专利技术属性】
技术研发人员:戴康
申请(专利权)人:中国银联股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1