一种基于JS的日志分析方法、装置、电子设备和介质制造方法及图纸

技术编号:33351316 阅读:11 留言:0更新日期:2022-05-08 09:57
本申请公开了一种基于JS的日志分析方法、装置、电子设备和介质,涉及计算机技术领域。所述方法包括:创建基于JS运行环境的待检测应用组件;对所述待检测应用组件注入所述JS运行环境的Java采集探针;对一个或多个调用方法进行增强,为每个所述调用方法生成唯一的一个调用链索引标识;接收数据采集任务请求,根据所述数据采集任务请求和所述调用方法利用所述Java采集探针实时进行数据采集,并进行数据上报至日志服务系统中;在所述日志服务系统中,通过关键词索引检索所述调用链索引标识查看全链路对应的日志,以便于定位业务异常。本申请能够从代码层级通过日志分析快速精准定位和诊断调用链路的异常问题。和诊断调用链路的异常问题。和诊断调用链路的异常问题。

【技术实现步骤摘要】
一种基于JS的日志分析方法、装置、电子设备和介质


[0001]本申请涉及计算机
,特别是涉及一种基于JS的日志分析方法、装置、电子设备和介质。

技术介绍

[0002]容器技术是一种比虚拟机技术更加节省计算资源也更加灵活的虚拟化技术。随着容器技术的发展,出现了很多容器编排引擎,用于对容器进行管理,Kubernetes技术脱颖而出成为了容器编排领域的事实标准。Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩以及应用容器化管理。
[0003]在云时代,分布式微服务架构下的应用也日益丰富,纷杂的应用异常问题接踵而至,微服务之间相互调用关系极其复杂,有的单个请求链路也会特别的长,导致分析定位问题极其困难。而传统的方式给企业造成了很大的人力维护以及时间成本。目前急需要一种从代码层级快速精准定位、分析和诊断调用链路的方法来解决上述问题。

技术实现思路

[0004]为了解决上述
技术介绍
中提到的至少一个问题,本申请提供了一种基于JS的日志分析方法、装置、电子设备和介质,能够从代码层级帮助应用开发人员通过日志分析快速精准定位和诊断调用链路的异常问题。
[0005]本申请实施例提供的具体技术方案如下:
[0006]第一方面,提供一种基于JS的日志分析方法,包括:
[0007]创建基于JavaScript运行环境的待检测应用组件;
[0008]对所述待检测应用组件注入所述JavaScript运行环境的Java采集探针;
[0009]对一个或多个调用方法进行增强,为每个所述调用方法生成唯一的一个调用链索引标识;
[0010]接收数据采集任务请求,根据所述数据采集任务请求和所述调用方法利用所述Java采集探针实时进行数据采集,并进行数据上报至日志服务系统中;
[0011]在所述日志服务系统中,通过关键词索引检索所述调用链索引标识查看全链路对应的日志,以便于定位业务异常。
[0012]进一步的,所述对一个或多个调用方法进行增强,为每个所述调用方法生成唯一的一个调用链索引标识,包括:
[0013]在所述待检测应用组件的入口函数开始处添加初始化逻辑代码,通过所述待检测应用组件的应用代理,利用基于JavaScript原型的动态继承机制对一个或多个调用方法进行增强;
[0014]为每个所述调用方法生成唯一的一个调用链索引标识。
[0015]进一步的,所述在所述待检测应用组件的入口函数开始处添加初始化逻辑代码,通过所述待检测应用组件的应用代理,利用基于JavaScript原型的动态继承机制对一个或
多个调用方法进行增强,还包括:
[0016]所述应用代理对一个或多个所述调用方法进行修改和增强,对所述调用方法的JavaScript原型的对象和属性进行封装,并通过钩子函数设置钩子;
[0017]所述调用方法在根据所述数据采集任务请求被调用时,已经设置好了钩子增强。
[0018]进一步的,所述调用方法还包括一个或多个调用链,在所述为每个所述调用方法生成唯一的一个调用链索引标识之前,所述方法还包括:
[0019]判断所述调用方法中的所述调用链中是否存在所述调用链索引标识;
[0020]若所述调用链中存在所述调用链索引标识,则不为该所述调用方法生成新的所述调用链索引标识。
[0021]进一步的,在对所述待检测应用组件注入所述JavaScript运行环境的Java采集探针之前,所述方法还包括:
[0022]判断所述待检测应用组件是否已经注入所述JavaScript运行环境的Java采集探针;
[0023]若所述待检测应用组件已经注入所述JavaScript运行环境的Java采集探针,则跳过对所述待检测应用组件注入所述JavaScript运行环境的Java采集探针步骤。
[0024]进一步的,所述在所述日志服务系统中,通过关键词索引检索所述调用链索引标识查看所述链路中对应的日志,以便于定位业务异常之前,所述方法还包括:
[0025]响应于所述日志服务系统接收到所述Java采集探针上报的数据,在所述日志服务系统中进行聚合和汇总,生成所述日志,并序列化保存至存储设备中。
[0026]进一步的,所述日志服务系统还包括链路追踪控制台和日志中心页面,所述链路追踪控制台用于展示所述日志中心页面,所述在所述日志服务系统中,通过关键词索引检索所述调用链索引标识查看全链路对应的日志,以便于定位业务异常,还包括:
[0027]通过所述链路追踪控制台进入所述日志中心页面中;
[0028]在所述日志中心页面通过关键词索引检索所述调用链索引标识,设置预设时间,查看全链路对应的日志,以便于定位业务异常;
[0029]所述预设时间包括相对时间、整点时间以及用户自定义时间中的至少一种。
[0030]第二方面,提供一种基于JS的日志分析装置,包括:
[0031]应用组件管理模块,用于创建基于JavaScript运行环境的待检测应用组件;
[0032]采集探针注入模块,用于对所述待检测应用组件注入所述JavaScript运行环境的Java采集探针;
[0033]探针增强模块,用于对一个或多个调用方法进行增强,为每个所述调用方法生成唯一的一个调用链索引标识;
[0034]数据采集上报模块,用于接收数据采集任务请求,根据所述数据采集任务请求和所述调用方法利用所述Java采集探针实时进行数据采集,并进行数据上报至日志服务系统中;
[0035]日志服务模块,用于在所述日志服务系统中,通过关键词索引检索所述调用链索引标识查看全链路对应的日志,以便于定位业务异常。
[0036]第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述基于JS的日志分析方
法。
[0037]第四方面,提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行所述基于JS的日志分析方法。
[0038]本申请实施例具有如下有益效果:
[0039]本申请实施例提供的一种基于JS的日志分析方法、装置、电子设备和介质,能够利用JS原型的动态继承机制,在分布式链路追踪的基础上进行更深层次下探到编程语言层面的代码级性能剖析,借助低性能消耗、低侵入性的采集探针收集调用方法的上下文信息,并实时上报至日志服务系统中;能够通过采集探针注入到应用组件的代码中,利用JS原型的动态继承机制技术,对每一个调用方法进行标记,记录调用链信息,并通过调用链索引标识TraceID将整个链路串联起来并实时上报给日志服务系统,用户能够通过日志中心页面查看日志分析,精准定位业务异常,极大地节省了人力和时间成本,具有较高的应用价值。
附图说明
[0040]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于JS的日志分析方法,其特征在于,包括:创建基于JavaScript运行环境的待检测应用组件;对所述待检测应用组件注入所述JavaScript运行环境的Java采集探针;对一个或多个调用方法进行增强,为每个所述调用方法生成唯一的一个调用链索引标识;接收数据采集任务请求,根据所述数据采集任务请求和所述调用方法利用所述Java采集探针实时进行数据采集,并进行数据上报至日志服务系统中;在所述日志服务系统中,通过关键词索引检索所述调用链索引标识查看全链路对应的日志,以便于定位业务异常。2.根据权利要求1所述的基于JS的日志分析方法,其特征在于,所述对一个或多个调用方法进行增强,为每个所述调用方法生成唯一的一个调用链索引标识,包括:在所述待检测应用组件的入口函数开始处添加初始化逻辑代码,通过所述待检测应用组件的应用代理,利用基于JavaScript原型的动态继承机制对一个或多个调用方法进行增强;为每个所述调用方法生成唯一的一个调用链索引标识。3.根据权利要求2所述的基于JS的日志分析方法,其特征在于,所述在所述待检测应用组件的入口函数开始处添加初始化逻辑代码,通过所述待检测应用组件的应用代理,利用基于JavaScript原型的动态继承机制对一个或多个调用方法进行增强,还包括:所述应用代理对一个或多个所述调用方法进行修改和增强,对所述调用方法的JavaScript原型的对象和属性进行封装,并通过钩子函数设置钩子;所述调用方法在根据所述数据采集任务请求被调用时,已经设置好了钩子增强。4.根据权利要求2所述的基于JS的日志分析方法,其特征在于,所述调用方法还包括一个或多个调用链,在所述为每个所述调用方法生成唯一的一个调用链索引标识之前,所述方法还包括:判断所述调用方法中的所述调用链中是否存在所述调用链索引标识;若所述调用链中存在所述调用链索引标识,则不为该所述调用方法生成新的所述调用链索引标识。5.根据权利要求1所述的基于JS的日志分析方法,其特征在于,在对所述待检测应用组件注入所述JavaScript运行环境的Java采集探针之前,所述方法还包括:判断所述待检测应用组件是否已经注入所述JavaScript运行环境的Java采集探针;若所述待检测应用组件已经注入所述Ja...

【专利技术属性】
技术研发人员:王成龙吴栋
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1