日志数据展示方法、装置、计算机设备及存储介质与流程

文档序号:21887587发布日期:2020-08-18 17:28阅读:120来源:国知局
日志数据展示方法、装置、计算机设备及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种日志数据展示方法、装置、计算机设备及存储介质。



背景技术:

在互联网大环境下,浏览器作为数据主要展示端已经成为大趋势。基于web-ui的日志展示系统,记录着系统各种状态信息,数据量庞大,在前端展示大数据节点,或者对于大日志的处理(计算,格式化等)会造成浏览器页面卡顿甚至无响应(假死)的现象。然后,目前常用的解决方案有:一方面,直接纯文本展示以降低格式化数据带来的性能损耗以及展示节点数量,这种方式对于一些格式化数据(json,xml等),不利于用户查阅。另一方面,通过隐藏和展开的模式,让用户选择性查阅(如阿里云的日志系统工具)。但是在巨大数据节点展开的时候,由于格式化需要耗费极大的性能,依然会出现页面卡顿,或者无响应的现象。



技术实现要素:

基于此,有必要针对上述问题,提出一种日志数据展示方法、装置、计算机设备及存储介质,以避免日志数据展示时导致的页面卡顿问题。

一种日志数据展示方法,所述方法包括:

构建与预设应用对应的页面展示线程和数据处理线程,所述数据处理线程与所述页面展示线程之间以异步非阻塞的方式进行数据交互;

获取所述预设应用的日志信息,并提取所述日志信息中的日志数据,对所述日志数据的数据节点进行分析,确定所述日志数据是否需要进行格式化处理;

在所述日志数据需要进行格式化处理的情况下,通过所述数据处理线程异步对所述日志数据进行格式化处理,得到目标数据;

通过所述页面展示线程渲染所述目标数据,得到目标日志页面。

一种日志数据展示装置,所述装置包括:

线程分离模块,用于构建与预设应用对应的页面展示线程和数据处理线程,所述数据处理线程与所述页面展示线程之间以异步非阻塞的方式进行数据交互;

数据分析模块,用于获取所述预设应用的日志信息,并提取所述日志信息中的日志数据,对所述日志数据的数据节点进行分析,确定所述日志数据是否需要进行格式化处理;

数据处理模块,用于在所述日志数据需要进行格式化处理的情况下,通过所述数据处理线程异步对所述日志数据进行格式化处理,得到目标数据;

数据展示模块,用于通过所述页面展示线程渲染所述目标数据,得到目标日志页面。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:

构建与预设应用对应的页面展示线程和数据处理线程,所述数据处理线程与所述页面展示线程之间以异步非阻塞的方式进行数据交互;

获取所述预设应用的日志信息,并提取所述日志信息中的日志数据,对所述日志数据的数据节点进行分析,确定所述日志数据是否需要进行格式化处理;

在所述日志数据需要进行格式化处理的情况下,通过所述数据处理线程异步对所述日志数据进行格式化处理,得到目标数据;

通过所述页面展示线程渲染所述目标数据,得到目标日志页面。

一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:

构建与预设应用对应的页面展示线程和数据处理线程,所述数据处理线程与所述页面展示线程之间以异步非阻塞的方式进行数据交互;

获取所述预设应用的日志信息,并提取所述日志信息中的日志数据,对所述日志数据的数据节点进行分析,确定所述日志数据是否需要进行格式化处理;

在所述日志数据需要进行格式化处理的情况下,通过所述数据处理线程异步对所述日志数据进行格式化处理,得到目标数据;

通过所述页面展示线程渲染所述目标数据,得到目标日志页面。

上述日志数据展示方法、装置、计算机设备及存储介质,通过构建与预设应用对应的页面展示线程和数据处理线程,数据处理线程与页面展示线程之间以异步非阻塞的方式进行数据交互;获取预设应用的日志信息,并提取日志信息中的日志数据,对日志数据的数据节点进行分析,确定日志数据是否需要进行格式化处理;在日志数据需要进行格式化处理的情况下,通过数据处理线程异步对日志数据进行格式化处理,得到目标数据;通过页面展示线程渲染目标数据,得到目标日志页面,极大地提高了目标数据的渲染效率,并且提高了目标日志页面生成的流畅性,有效地避免页面卡顿现象,提升了页目标日志页面的响应速度,提升用户对日志数据的查阅体验。

附图说明

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

其中:

图1为一个实施例中日志数据展示方法的流程图;

图2为一个实施例中日志数据格式化处理方法的流程图;

图3为另一个实施例中日志数据格式化处理方法的流程图;

图4为一个实施例中日志数据格式化处理判断方法的流程图;

图5为另一个实施例中日志数据展示方法的流程图;

图6为一个实施例中日志数据展示装置的结构框图;

图7为一个实施例中计算机设备的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,在一个实施例中,提供了一种日志数据展示方法,该日志数据展示方法既可以应用于终端,也可以应用于服务器,本实施例以应用于服务器举例说明。该日志数据展示方法具体包括以下步骤:

步骤102,构建与预设应用对应的页面展示线程和数据处理线程,数据处理线程与页面展示线程之间以异步非阻塞的方式进行数据交互。

其中,预设应用(application)是指预先设置的应用,如web应用、企业级应用,本实施例中的预设应用可以是多种应用的组合。页面展示线程和数据处理线程是预设应用的两个分线程,页面展示线程用于加载预设应用中的页面。数据处理线程用于处理预设应用中的数据,如数据运算、数据的标准化等。异步非阻塞的方式中的异步是指用户进程触发io操作以后便开始做各自线程对应的操作,且当io操作已经完成的时候会得到io完成的通知,非阻塞是针对于进程在访问数据的时候,根据io操作的就绪状态来采取读取或者写入方法会立即返回一个状态值的方式。具体地,可以通过webworker(工作线程)实现非阻塞操作。可以理解地,本实施例中通过异步非阻塞的方式进行数据交互,以便后续使得预设页面对应的页面展示线程得到更多用于渲染预设应用的页面的性能。

步骤104,获取所述预设应用的日志信息,并提取日志信息中的日志数据,对日志数据的数据节点进行分析,确定日志数据是否需要进行格式化处理。

其中,日志信息是指预设应用的日志系统页面的信息,用于记录系统各种状态信息,然后通过浏览器展示。具体地,页面展示线程在进行页面加载时,如果监听到数据处理线程中提供的日志处理结果事件,通过调用系统接口,例如,applicationlog,securitylog,systemlog等系统接口,返回日志信息,且该日志信息是具有格式的纯文本信息,比如json文本信息或者xml文本信息等。可以通过运行预设的日志输出程序,如performance.timing()方法获取web应用中当前页面的每个处理阶段的时间信息作为日志信息,可以通过日志收集服务如rsyslog,从web应用中收集该日志信息,还可以通过拦截器获取该日志信息。然后,根据日志数据的数据类型,从日志信息中提取日志数据,通过对日志数据的数据节点进行分析,确定日志数据是否需要进行格式化处理,即数据节点大于预设的数据节点数量时,则需要对数据进行格式化处理,当数据节点较少时,说明数据比较简单,无需进行格式话处理。可以理解地,通过对日志数据进行分析,获取日志数据的格式化的决策依据,以便给页面展示线程和数据处理线程的处理进程提供参考。

步骤106,在日志数据需要进行格式化处理的情况下,通过数据处理线程异步对日志数据进行格式化处理,得到目标数据。

其中,格式化处理是一种对数据进行运算或者转化的处理过程,以使格式化处理后的数据便于服务器的识别的数据处理过程,其中的格式化处理可以是数据的统计和/或聚合,比如统计当前页面日志数据条数,类别等,还可以是对日志数据进行格式的转化等,如将json格式的日志数据转换成html格式等。可以理解地,由于日志数据的额格式化处理过程比较复杂,必然导致处理过程耗时,进而会产生页面的卡顿或者假死等现象,因此,本实施例中,通过数据处理线程,采用异步的方式对日志数据进行格式化处理,即将数据线程分离为多个分线程,分别对日志数据处理,即实现了对不同日志数据进行并行处理,例如可以通过webworker实现对数据处理线程进行分线程处理,实现异步对日志数据进行格式化处理,不仅减少了对日志数据进行处理的等待时间,并且提高了日志数据的格式化处理的效率,从而有利于避免后续页面展示的卡顿现象。

步骤108,通过页面展示线程渲染目标数据,得到目标日志页面。

具体地,在异步对日志数据进行处理在得到日志数据后,通过页面展示线程实线对目标数据进行渲染,从而将目标数据展示在web应用上,即生成了目标日志页面。可以理解地,本实施例中,对于目标数据的渲染,无需等待所有日志数据处理完毕才进行渲染,而是实时渲染,从而极大地提高了目标数据的渲染效率,并且能够提高目标日志页面生成的流畅性,有效地避免页面卡顿现象,提升了页目标日志页面的响应速度,提升用户对日志数据的查阅体验。

上述日志数据展示方法,通过构建与预设应用对应的页面展示线程和数据处理线程,数据处理线程与页面展示线程之间以异步非阻塞的方式进行数据交互;获取预设应用的日志信息,并提取日志信息中的日志数据,对日志数据的数据节点进行分析,确定日志数据是否需要进行格式化处理;在日志数据需要进行格式化处理的情况下,通过数据处理线程异步对日志数据进行格式化处理,得到目标数据;通过页面展示线程渲染目标数据,得到目标日志页面,极大地提高了目标数据的渲染效率,并且提高了目标日志页面生成的流畅性,有效地避免页面卡顿现象,提升了页目标日志页面的响应速度,提升用户对日志数据的查阅体验。

在一个实施例中,获取预设应用的日志信息,包括:

通过ajax调用与所述预设应用对应的日志数据接口,异步获取所述日志信息。

在本实施例中,通过ajax调用与预设应用对应的日志数据接口,异步获取预设应用的信息作为日志信息,可以理解地,通过异步方式可以提高获取。

如图2所示,在一个实施例中,通过数据处理线程对日志数据进行格式化处理,得到目标数据,包括:

步骤106a,创建webworker实例,通过执行webworker实例加载webworker线程;

步骤106b,通过webworker线程将数据处理线程划分为多个分数据处理线程;

步骤106c,分别通过分数据处理线程对日志数据进行格式化处理,得到目标数据。

其中,webworker是html5提供的一个javascript多线程解决方案。具体地,首先创建webworker实例,通过执行webworker实例加载webworker线程;然后,通过webworker线程将数据处理线程划分为多个分数据处理线程,继而将数据处理线程分离为多个分数据处理线程,从而使得日志数据能够得到分数据处理线程的实时处理,大大提高了日志数据的格式化处理效率。

步骤106c,分别通过分数据处理线程对日志数据进行格式化处理,得到目标数据。

如图3所示,在一个实施例中,分别通过分数据处理线程对日志数据进行格式化处理,得到目标数据,包括:

步骤106d,通过数据处理线程对日志数据进行解析,得到日志数据的数据类型和计算类型;

步骤106e,采用分数据处理线程将数据类型一致的日志数据进行标签化,并分别采用分数据处理线程将计算类型不一致的日志数据进行对应的计算,得到目标数据。

其中,标签化是指数据的转化过程,例如,对于一个json格式的日志数据"{name:'aaa'}",为了对其进行友好展示,需要对该日志数据进行标签化,例如标签化可以是"<pre><div>{</div>......<div>}</div></pre>",即将json格式标签化到html格式,使的目标数据更加易读。计算类型可以是聚合和/或统计运算。本实施例中,通过对数据处理线程进行拆分后,并行对日志数据处理,从而能够减少数据处理的等待时间,提高了数据格式化效率,有利于降低后续页面数据的卡顿。

如图4所示,在一个实施例中,对日志数据的数据节点进行分析,确定日志数据是否需要进行格式化处理,包括:

步骤104a,确定日志数据包含的字段;

步骤104b,获取每个字段对应的数据节点的数目;

步骤104c,当数目大于预设的节点阈值时,确定日志数据需要进行格式化处理。

具体地,通过对日志数据进行遍历,确定日志数据包含的字段,然后获取每个字段对应的数据节点的数目,当数目大于预设的节点阈值时,则可以日志数据需要进行格式化处理。本实施例中,从日志数据的字段和数据节点这两个维度对日志数据的复杂度进行分析,以便为页面展示线程和数据处理线程的工作方式提供参考,避免在日志数据较为简单的情况下进行的数据格式化处理的冗余操作。

在一个实施例中,通过页面展示线程渲染目标数据,得到目标日志页面,包括:

加载与目标数据对应的脚本文件,得到目标日志页面。

具体地,通过加载与目标数据对应的脚本文件,即可得到目标日志页面。可以理解地,该渲染过程基于浏览器内核实现的,提高了目标日志页面的易读性,有利于提升用户对目标日志页面查阅的体验。

如图5所示,在一个实施例中,在通过页面展示线程渲染目标数据,得到目标日志页面之后,还包括:

步骤110,检测是否监听到webworker线程的日志数据处理事件;

步骤112,在未监听到日志数据处理事件时,将目标日志页面保存到本地。

具体地,服务检测是否监听到webworker线程的日志数据处理事件,当没有监听到日志数据处理事件时,则页面展示线程和数据处理线程结束数据交互工作,服务器将目标日志页面保存到本地,然后,检测是否监听到webworker线程的日志数据处理事件,直到用户关闭预设应用的页面为止。可以理解地,将目标日志页面保存到本地,可以避免日志数据的丢失,保证日志数据可以存储在本地。

如图6所示,在一个实施例中,提出了一种日志数据展示装置,所述装置包括:

线程分离模块602,用于构建与预设应用对应的页面展示线程和数据处理线程,所述数据处理线程与所述页面展示线程之间以异步非阻塞的方式进行数据交互;

数据分析模块604,用于获取所述预设应用的日志信息,并提取所述日志信息中的日志数据,对所述日志数据的数据节点进行分析,确定所述日志数据是否需要进行格式化处理;

数据处理模块606,用于在所述日志数据需要进行格式化处理的情况下,通过所述数据处理线程异步对所述日志数据进行格式化处理,得到目标数据;

数据展示模块608,用于通过所述页面展示线程渲染所述目标数据,得到目标日志页面。

在一个实施例中,数据分析模块模块包括:日志信息获取单元,用于通过ajax调用与所述预设应用对应的日志数据接口,异步获取所述日志信息。

在一个实施例中,数据处理模块包括:

线程加载单元,用于创建webworker实例,通过执行所述webworker实例加载webworker线程;

线程划分单元,用于通过所述webworker线程将所述所述数据处理线程划分为多个分数据处理线程;

数据处理单元,用于分别通过所述分数据处理线程对所述日志数据进行格式化处理,得到所述目标数据。

在一个实施例中,数据处理模块还包括:

数据解析单元,用于通过所述数据处理线程对所述日志数据进行解析,得到所述日志数据的数据类型和计算类型;

数据格式化单元,用于采用所述分数据处理线程将数据类型一致的所述日志数据进行标签化,并分别采用所述分数据处理线程将所述计算类型不一致的所述日志数据进行对应的计算,得到所述目标数据。

在一个实施例中,数据分析模块还包括:

字段确定单元,用于确定所述日志数据包含的字段;

节点数量获取单元,用于获取每个字段对应的数据节点的数目;

比较确定单元,用于当所述数目大于预设的节点阈值时,确定所述日志数据需要进行格式化处理。

在一个实施例中,数据展示模块包括:页面展示单元,用于加载与所述目标数据对应的脚本文件,得到所述目标日志页面。

在一个实施例中,该日志数据展示装置还包括:

事件检测模块,用于检测是否监听到所述webworker线程的日志数据处理事件;

日志保存模块,用于在未监听到所述日志数据处理事件时,将所述目标日志页面保存到本地。

图7示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是服务器,所述服务器包括但不限于高性能计算机和高性能计算机集群。如图7所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现日志数据展示方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行日志数据展示方法。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的日志数据展示方法可以实现为一种计算机程序的形式,计算机程序可在如图7所示的计算机设备上运行。计算机设备的存储器中可存储组成日志数据展示装置的各个程序模板。比如,线程分离模块602,数据分析模块604,数据处理模块606,数据展示模块608。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:构建与预设应用对应的页面展示线程和数据处理线程,所述数据处理线程与所述页面展示线程之间以异步非阻塞的方式进行数据交互;通过所述页面展示线程获取所述web应用的日志信息,并提取所述日志信息中的日志数据,对所述日志数据的数据节点进行分析,确定所述日志数据是否需要进行格式化处理;在所述日志数据需要进行格式化处理的情况下,通过所述数据处理线程异步对所述日志数据进行格式化处理,得到目标数据;通过所述页面展示线程渲染所述目标数据,得到目标日志页面。

在一个实施例中,获取所述预设应用的日志信息,包括:通过ajax调用与所述预设应用对应的日志数据接口,异步获取所述日志信息。

在一个实施例中,通过所述数据处理线程对所述日志数据进行格式化处理,得到目标数据,包括:创建webworker实例,通过执行所述webworker实例加载webworker线程;通过所述webworker线程将所述所述数据处理线程划分为多个分数据处理线程;分别通过所述分数据处理线程对所述日志数据进行格式化处理,得到所述目标数据。

在一个实施例中,分别通过所述分数据处理线程对所述日志数据进行格式化处理,得到所述目标数据,包括:通过所述数据处理线程对所述日志数据进行解析,得到所述日志数据的数据类型和计算类型;采用所述分数据处理线程将数据类型一致的所述日志数据进行标签化,并分别采用所述分数据处理线程将所述计算类型不一致的所述日志数据进行对应的计算,得到所述目标数据。

在一个实施例中,对所述日志数据的数据节点进行分析,确定所述日志数据是否需要进行格式化处理,包括:确定所述日志数据包含的字段;获取每个字段对应的数据节点的数目;当所述数目大于预设的节点阈值时,确定所述日志数据需要进行格式化处理。

在一个实施例中,通过所述页面展示线程渲染所述目标数据,得到目标日志页面,包括:加载与所述目标数据对应的脚本文件,得到所述目标日志页面。

在一个实施例中,在所述通过所述页面展示线程渲染所述目标数据,得到目标日志页面之后,还包括:检测是否监听到所述webworker线程的日志数据处理事件;在未监听到所述日志数据处理事件时,将所述目标日志页面保存到本地。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如下步骤:构建与预设应用对应的页面展示线程和数据处理线程,所述数据处理线程与所述页面展示线程之间以异步非阻塞的方式进行数据交互;通过所述页面展示线程获取所述web应用的日志信息,并提取所述日志信息中的日志数据,对所述日志数据的数据节点进行分析,确定所述日志数据是否需要进行格式化处理;在所述日志数据需要进行格式化处理的情况下,通过所述数据处理线程异步对所述日志数据进行格式化处理,得到目标数据;通过所述页面展示线程渲染所述目标数据,得到目标日志页面。

在一个实施例中,获取所述预设应用的日志信息,包括:通过ajax调用与所述预设应用对应的日志数据接口,异步获取所述日志信息。

在一个实施例中,通过所述数据处理线程对所述日志数据进行格式化处理,得到目标数据,包括:创建webworker实例,通过执行所述webworker实例加载webworker线程;通过所述webworker线程将所述所述数据处理线程划分为多个分数据处理线程;分别通过所述分数据处理线程对所述日志数据进行格式化处理,得到所述目标数据。

在一个实施例中,分别通过所述分数据处理线程对所述日志数据进行格式化处理,得到所述目标数据,包括:通过所述数据处理线程对所述日志数据进行解析,得到所述日志数据的数据类型和计算类型;采用所述分数据处理线程将数据类型一致的所述日志数据进行标签化,并分别采用所述分数据处理线程将所述计算类型不一致的所述日志数据进行对应的计算,得到所述目标数据。

在一个实施例中,对所述日志数据的数据节点进行分析,确定所述日志数据是否需要进行格式化处理,包括:确定所述日志数据包含的字段;获取每个字段对应的数据节点的数目;当所述数目大于预设的节点阈值时,确定所述日志数据需要进行格式化处理。

在一个实施例中,通过所述页面展示线程渲染所述目标数据,得到目标日志页面,包括:加载与所述目标数据对应的脚本文件,得到所述目标日志页面。

在一个实施例中,在所述通过所述页面展示线程渲染所述目标数据,得到目标日志页面之后,还包括:检测是否监听到所述webworker线程的日志数据处理事件;在未监听到所述日志数据处理事件时,将所述目标日志页面保存到本地。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1