CN110674284A - 多系统的方法调用链路图的生成方法 - Google Patents
多系统的方法调用链路图的生成方法 Download PDFInfo
- Publication number
- CN110674284A CN110674284A CN201910788462.7A CN201910788462A CN110674284A CN 110674284 A CN110674284 A CN 110674284A CN 201910788462 A CN201910788462 A CN 201910788462A CN 110674284 A CN110674284 A CN 110674284A
- Authority
- CN
- China
- Prior art keywords
- calling
- methods
- link information
- diagram
- relational database
- 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
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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/34—Browsing; Visualisation therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及多系统的方法调用链路图的生成方法,包括:A.启动pinpoint服务,对所有系统调用进行采样并保存文本结构的调用链路信息;B.通过FlumeNg服务将调用链路信息保存到非关系数据库中;C.通过至少两个数据解析器从非关系数据库中读取多条调用链路信息进行解析,并确定各方法之间的调用关系;D.根据各方法之间的调用关系确定各方法之间的层级关系,形成以方法名为节点值的有向无环树状图,并保存到非关系数据库中,用于描述所有系统中各方法的调用链路图。本发明能够高效的解析出不同系统中所有方法之间的调用关系,形成方法调用链路图,同时也保证了方法调用关系的正确性。
Description
技术领域
本发明涉及数据处理的方法,具体讲是多系统的方法调用链路图的生成方法。
背景技术
在日常的软件开发和测试过程中,对软件中正在修改或者测试的方法,开发人员或者测试人员不清楚该方法被上游或者下游哪些系统调用以及具体的调用方法与方式。目前解决上述问题的方式有两种,第一种是由各系统的开发人员,手动登记对外提供的方法,以及调用的外部方法。这种方式由于依靠人工手动登记,因此非常耗时且容易遗漏。另外该方式不能体现某个方法在所有系统的层级调用关系,例如对4个系统(A,B,C,D)的4个方法(methodA,methodB,methodC,methodD),构成调用全链路:
A(methodA)->B(methodB)->C(methodC)->D(methodD),该方法只能获得某一个方法的链路调用关系,比如查询methodC,只能获得C(methodC)->D(methodD)或者B(methodB)->C(methodC),不能获得全面的全链路调用关系A(methodA)->B(methodB)->C(methodC)->D(methodD)。
第二种方式是通过pinpoint系统或相似软件系统,在这种方式中pinpoint系统或相似软件系统只能提供系统间的调用关系,例如A->B->C->D;或者通过选择请求响应散点图的某个点,查看该点代表的某个特定方法的全系统调用链路图。但是pinpoint等软件不能提供基于输入方法名,获得该方法的全链路调用关系。
并且,现有的两种方式在手动管理和获取链路图的过程中,都存在效率低下且容易遗漏接口之间调用关系的问题。
发明内容
本发明提供了一种多系统的方法调用链路图的生成方法,可以快速解析出不同系统中所有方法之间的调用关系,并且保证调用关系的准确性。
本发明多系统的方法调用链路图的生成方法,包括:
A.启动pinpoint服务,对所有系统调用进行采样并保存文本结构的调用链路信息。在调用链路信息中包含有方法名、方法ID、上游方法ID、下游方法ID和应用名等关键字内容;
B.通过FlumeNg服务将pinpoint服务的采样的调用链路信息异步归集到一个非关系数据库(例如mongodb数据库)中保存,这样能够在不影响pinpoint性能的情况下,将采样的数据同步到非关系数据库中保存;
C.通过至少两个数据解析器,从所述的非关系数据库中平行读取多条保存的文本结构的调用链路信息进行解析,根据调用链路信息中对各方法描述的关键字,确定各方法之间的调用关系;
D.根据得到的各方法之间的调用关系,以及调用链路信息中的方法名、方法ID、上游方法ID、下游方法ID和应用名等内容,通过递归算法确定各方法之间的层级关系,形成以方法名为节点值的有向无环树状图,并保存到所述非关系数据库中,用于描述所有系统中各方法的调用链路图。
pinpoint软件系统是一种常用的开源全链路分析工具,提供了无侵入式的调用链监控、方法执行详情查看、应用状态信息监控等功能,基于GoogleDapper论文进行的实现。主要提供如下2个重要功能:(1)业务拓扑图:对整个系统中应用的调用关系进行了可视化的展示,单击某个服务节点,可以显示该节点的详细信息,比如当前节点状态、请求数量等。(2)请求响应散点图:以时间维度进行请求计数和响应时间的展示,通过拖动图表可以选择对应的请求查看执行的详细情况。
Flume NG是一种分布式系统,它能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。
本发明通过解析pinpoint开源软件的数据,实现了在多个系统间所有方法调用链路的分析,从而得到多系统方法调用链路图。
优选的,步骤C中,在每个数据解析器读取调用链路信息时,分别对读取的数据进行加分布式锁操作,避免多台数据解析器处理同一条数据,以及脏读、幻读等情况出现。
优选的,步骤C中,在确定各方法之间的调用关系后,通过NFA非确定自动机算法,形成以方法名为键,以方法ID、上游方法ID、下游方法ID和应用名为值的键-值对数据结构。
本发明能够高效的解析出不同系统中所有方法之间的调用关系,形成方法调用链路图,同时也保证了方法调用关系的正确性。
以下结合实施例的具体实施方式,对本发明的上述内容再作进一步的详细说明。但不应将此理解为本发明上述主题的范围仅限于以下的实例。在不脱离本发明上述技术思想情况下,根据本领域普通技术知识和惯用手段做出的各种替换或变更,均应包括在本发明的范围内。
附图说明
图1为本发明多系统的方法调用链路图的生成方法的流程图。
具体实施方式
如图1所示本发明多系统的方法调用链路图的生成方法,包括:
A.启动pinpoint服务,对所有系统调用进行采样并保存文本结构的调用链路信息。在调用链路信息中包含有方法名、方法ID、上游方法ID、下游方法ID和应用名等关键字内容。
B.通过FlumeNg服务将pinpoint服务的采样的调用链路信息异步归集到mongodb非关系数据库中保存,这样能够在不影响pinpoint性能的情况下,将采样的数据同步到非关系数据库中保存。
C.通过多个数据解析器,从所述的mongodb非关系数据库中平行读取多条保存的文本结构的调用链路信息进行解析,根据调用链路信息中对各方法描述的关键字,确定各方法之间的调用关系。然后通过NFA非确定自动机算法,形成以方法名为键,以方法ID、上游方法ID、下游方法ID和应用名为值的键-值对数据结构。在数据解析器读取调用链路信息时,分别对读取的数据进行加分布式锁操作,避免多台数据解析器处理同一条数据,以及脏读、幻读等情况出现。
D.根据得到的各方法之间的调用关系,以及调用链路信息中的方法名、方法ID、上游方法ID、下游方法ID和应用名等内容,通过递归算法确定各方法之间的层级关系,形成以方法名为节点值的有向无环树状图,并保存到mongodb非关系数据库中,用于描述所有系统中各方法的调用链路图。
这样,通过解析pinpoint开源软件的数据,实现了在多个系统间所有方法调用链路的分析,从而得到多系统方法调用链路图。
Claims (3)
1.多系统的方法调用链路图的生成方法,其特征包括:
A.启动pinpoint服务,对所有系统调用进行采样并保存文本结构的调用链路信息;
B.通过FlumeNg服务将pinpoint服务的采样的调用链路信息异步归集到一个非关系数据库中保存;
C.通过至少两个数据解析器,从所述的非关系数据库中平行读取多条保存的文本结构的调用链路信息进行解析,根据调用链路信息中对各方法描述的关键字,确定各方法之间的调用关系;
D.根据得到的各方法之间的调用关系,通过递归算法确定各方法之间的层级关系,形成以方法名为节点值的有向无环树状图,并保存到所述非关系数据库中,用于描述所有系统中各方法的调用链路图。
2.如权利要求1所述的多系统的方法调用链路图的生成方法,其特征为:步骤C中,在每个数据解析器读取调用链路信息时,分别对读取的数据进行加分布式锁操作。
3.如权利要求1或2所述的多系统的方法调用链路图的生成方法,其特征为:步骤C中,在确定各方法之间的调用关系后,通过NFA非确定自动机算法,形成以方法名为键,以方法ID、上游方法ID、下游方法ID和应用名为值的键-值对数据结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910788462.7A CN110674284A (zh) | 2019-08-26 | 2019-08-26 | 多系统的方法调用链路图的生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910788462.7A CN110674284A (zh) | 2019-08-26 | 2019-08-26 | 多系统的方法调用链路图的生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110674284A true CN110674284A (zh) | 2020-01-10 |
Family
ID=69075771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910788462.7A Pending CN110674284A (zh) | 2019-08-26 | 2019-08-26 | 多系统的方法调用链路图的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110674284A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293928A (zh) * | 2015-06-05 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种全局任务节点依赖关系可视化方法、装置和系统 |
CN106657192A (zh) * | 2015-11-03 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种用于呈现服务调用信息的方法与设备 |
CN106656536A (zh) * | 2015-11-03 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种用于处理服务调用信息的方法与设备 |
CN106790718A (zh) * | 2017-03-16 | 2017-05-31 | 北京搜狐新媒体信息技术有限公司 | 服务调用链路分析方法及系统 |
US20170318076A1 (en) * | 2009-09-10 | 2017-11-02 | AppDynamics, Inc. | Naming of distributed business transactions |
CN109684104A (zh) * | 2018-12-17 | 2019-04-26 | 广州华多网络科技有限公司 | 一种服务间调用链的展示实现方法及设备 |
-
2019
- 2019-08-26 CN CN201910788462.7A patent/CN110674284A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170318076A1 (en) * | 2009-09-10 | 2017-11-02 | AppDynamics, Inc. | Naming of distributed business transactions |
CN106293928A (zh) * | 2015-06-05 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种全局任务节点依赖关系可视化方法、装置和系统 |
CN106657192A (zh) * | 2015-11-03 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种用于呈现服务调用信息的方法与设备 |
CN106656536A (zh) * | 2015-11-03 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种用于处理服务调用信息的方法与设备 |
CN106790718A (zh) * | 2017-03-16 | 2017-05-31 | 北京搜狐新媒体信息技术有限公司 | 服务调用链路分析方法及系统 |
CN109684104A (zh) * | 2018-12-17 | 2019-04-26 | 广州华多网络科技有限公司 | 一种服务间调用链的展示实现方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Da Costa et al. | A framework for evaluating the results of the szz approach for identifying bug-introducing changes | |
Athanasiou et al. | Test code quality and its relation to issue handling performance | |
Zhang et al. | An empirical study on factors impacting bug fixing time | |
D'Ambros et al. | On the relationship between change coupling and software defects | |
US8607198B2 (en) | Cross-concern code coverage assessment | |
US10534692B2 (en) | Tagged tracing, logging and performance measurements | |
CN110297760A (zh) | 测试数据的构造方法、装置、设备及计算机可读存储介质 | |
US10528456B2 (en) | Determining idle testing periods | |
US20180267888A1 (en) | Automatic regression identification | |
Theisen et al. | Risk-based attack surface approximation: how much data is enough? | |
Zhao et al. | Understanding the value of considering client usage context in package cohesion for fault-proneness prediction | |
Vale et al. | Challenges of resolving merge conflicts: A mining and survey study | |
Wagner et al. | On the relationship of inconsistent software clones and faults: An empirical study | |
US20200310952A1 (en) | Comparable user interface object identifications | |
CN115391082A (zh) | 一种异常数据诊断方法、系统及存储介质 | |
CN114461534A (zh) | 软件性能测试方法、系统、电子设备及可读存储介质 | |
Sosnowski et al. | Analysing problem handling schemes in software projects | |
Rantala et al. | Prevalence, contents and automatic detection of KL-SATD | |
CN115374595A (zh) | 一种基于过程挖掘的自动化软件过程建模方法及系统 | |
Lahti et al. | Experiences on managing technical debt with code smells and antipatterns | |
CN110717032A (zh) | 多系统的方法调用链路图的生成及显示方法 | |
CN115525575A (zh) | 一种基于Dataworks平台的数据自动化测试方法及系统 | |
CN110674284A (zh) | 多系统的方法调用链路图的生成方法 | |
CN114237625A (zh) | 基于语法分析树的微服务依赖链路静态分析方法及系统 | |
CN113282505A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200110 |