[发明专利]调用链路构建方法、装置及设备在审
申请号: | 201811539741.1 | 申请日: | 2018-12-17 |
公开(公告)号: | CN110007957A | 公开(公告)日: | 2019-07-12 |
发明(设计)人: | 郭成 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F8/75 | 分类号: | G06F8/75;G06F11/34 |
代理公司: | 北京晋德允升知识产权代理有限公司 11623 | 代理人: | 杨移 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 调用 调用链 日志 装置及设备 父子关系 应用业务 构建 预设 处理服务请求 代码生成 生成服务 解析 返回 | ||
本说明书实施例公开了一种调用链路构建方法、装置及设备。方案包括:通过向应用业务系统注入预设代码以便应用业务系统根据预设代码生成并返回处理服务请求所调用的每个函数的调用日志,然后收集调用日志,从调用日志中解析出函数的父子关系,并根据父子关系生成服务请求对应的调用链路。
技术领域
本说明书涉及计算机技术领域,尤其涉及一种调用链路构建方法、装置及设备。
背景技术
为获得应用业务系统对服务请求进行处理时所调用函数的调用关系,一种方法是使用代码分析工具进行代码分析,比如,通过Soot(一个代码分析工具,具有控制流构建功能)静态地构建出代码中函数的调用关系,然后进行代码分析。但是,该方法中的这些静态调用关系,却无法准确地判断出函数的实际调用链路的流转,特别是对处于生产环境的业务系统进行调用关系分析时,更加困难,代价更高。比如,如果需要对处于生产环境的业务系统通过调用关系的分析来定位故障,或者让新人了解业务系统的实现逻辑,就需要让处于生产环境的业务系统停止生产,或者将相应的分析代码侵入到业务系统的代码中,其中让业务系统停止生产的代价高昂,甚至是不切实际,而将代码侵入到处于生产环境的业务系统的代码中,不仅可能影响应用业务的运行性能,还可能给应用业务系统带入未知风险。
基于此,需要能够对生产环境的应用业务系统进行调用关系构建的方案。
发明内容
有鉴于此,本说明书实施例提供了一种调用链路构建方法、装置及设备,用于无入侵地对处于生产环境的应用业务系统进行调用关系的构建。
本说明书实施例采用下述技术方案:
本说明书实施例提供一种调用链路构建方法,包括:
将服务请求对应的预设代码注入到应用业务系统,所述预设代码用于所述应用业务系统在运行中返回处理所述服务请求时所调用的每个函数的调用日志,所述调用日志包括链路标识,所述链路标识用于全局标识所述服务请求;
收集所述调用日志;
根据所述调用日志确定每个所述函数的父子关系;
根据所述父子关系生成所述链路标识对应的调用链路。
本说明书实施例还提供一种调用链路构建装置,包括:注入模块、收集模块、确定模块和生成模块;
所述注入用于将服务请求对应的预设代码注入到应用业务系统,所述预设代码用于所述应用业务系统在运行中返回处理所述服务请求时所调用的每个函数的调用日志,所述调用日志包括链路标识,所述链路标识用于全局标识所述服务请求;
所述收集模块用于收集所述调用日志;
所述确定模块用于根据所述调用日志确定每个所述函数的父子关系;
所述生成模块用于根据所述父子关系生成所述链路标识对应的调用链路。
本说明书实施例还提供一种调用链路构建设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
将服务请求对应的预设代码注入到应用业务系统,所述预设代码用于所述应用业务系统在运行中返回处理所述服务请求时所调用的每个函数的调用日志,所述调用日志包括链路标识,所述链路标识用于全局标识所述服务请求;
收集所述调用日志;
根据所述调用日志确定每个所述函数的父子关系;
根据所述父子关系生成所述链路标识对应的调用链路。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811539741.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种动态配置日志的方法及装置
- 下一篇:指令验证方法、装置及存储介质