日志处理方法、装置、电子设备及存储介质与流程

文档序号:36243883发布日期:2023-12-02 07:33阅读:34来源:国知局
日志处理方法与流程

本公开涉及计算机,具体而言,涉及一种日志处理方法、装置、电子设备和存储介质。


背景技术:

1、日志是指在应用程序或系统中记录事件、活动或状态的记录。它是开发人员和系统管理员常用的工具,用于故障排查、监控以及性能分析,通过日志记录和分析策略,可以加快故障排查以及进行性能优化。

2、相关技术中,通常采用protobuffer(pb)传输协议对日志进行编码,并将编码后的日志存储到服务端,然而,此种方式在传输过程中,服务端需要对编码后的日志的全部内容进行解码,以获取存储地址,并将编码后的日志存储至相应的存储地址,由于日志的数据量较大,导致获取存储地址的过程所占用开销较大。


技术实现思路

1、本公开实施例至少提供一种日志处理方法、装置、电子设备及存储介质,可以降低服务端获取目标日志的存储地址的过程所占用开销。

2、本公开实施例提供了一种日志处理方法,包括:

3、接收客户端发送的目标日志;所述目标日志为所述客户端基于预设的日志传输协议对预设字段类型的原始日志进行编码后得到;所述目标日志的日志结构包括头部区域以及内容区域,所述头部区域包括路由字段区,所述路由字段区用于存储日志的存储属性信息,所述内容区域用于存储日志内容;

4、基于所述预设的日志传输协议,对所述路由字段区进行解码,以获取所述目标日志的存储属性信息,并基于所述目标日志的存储属性信息确定所述目标日志的存储地址,将所述目标日志存储到所述存储地址内。

5、本公开实施例中,由于编码得到目标日志的日志结构中包括路由字段区和内容区域,其中,路由字段区用于存储日志的存放位置,内容区域用于存储日志内容,这样,服务端在接收到目标日志后,即可对路由字段区进行解码,从而确定目标日志对应的存储地址,与相关技术中通过pb传输协议进行传输的方法相比,服务端无需对日志全部进行解码来获取目标日志的存储地址,如此,有利于降低获取存储地址的过程中所占用的开销。此外,由于路由字段区所占用的空间较小,还可以提升获取存储地址的效率。

6、在一种可能的实施方式中,所述基于所述目标日志的存储属性信息确定所述目标日志的存储地址,包括:

7、基于所述目标日志的存储属性信息,从预先构建的存储属性信息与存储地址的对应关系中,查找与所述目标日志的存储属性信息对应的目标存储地址,并将所述目标存储地址确定为所述目标日志的存储地址,其中,所述目标日志为所述客户端运行的目标微服务被调用所产生的日志,所述存储属性信息包括微服务的名称、微服务对应的主机名称以及微服务对应的主机网络地址中的至少一个。

8、本公开实施例中,所述存储属性信息可以上述目标微服务的名称、目标微服务对应的主机名称或者目标微服务对应的主机网络地址中的至少一种,通过基于预设的存储属性信息与存储地址的对应关系,确定目标日志的存储地址,如此,可以提升确定目标日志的存储地址的准确度。

9、在一种可能的实施方式中,所述头部区域还包括索引字段区,所述索引字段区包括多个索引字段;所述目标日志包括多条子日志,每条子日志对应至少一个索引字段,所述方法还包括:

10、针对每条子日志,确定所述子日志的日志属性信息,并将所述子日志的日志属性信息,存储到对应的索引字段中;所述日志属性信息用于查询对应的子日志。

11、本公开实施例中,由于每条子日志具有相应的日志属性信息,通过将每条子日志的日志属性信息存储到对应的索引字段中,这样,在查询时,即可对索引字段区中的索引字段进行遍历,而无需对日志内容进行查询,如此,可以减小查询范围,从而可以提升查询效率。

12、在一种可能的实施方式中,所述基于所述目标日志的存储属性信息确定所述目标日志的存储地址,将所述目标日志存储到所述存储地址内之后,所述方法还包括:

13、接收客户端发送的日志查询请求,所述日志查询请求携带待查询的日志信息;

14、基于所述待查询的日志信息,查找与所述待查询的日志信息对应的目标日志内容,并将所述目标日志内容发送至所述客户端。

15、本公开实施例中,服务端在接收到客户端的日志查询请求后,即可基于日志查询请求,查找与所述待查询的日志信息对应的目标日志内容,并将目标日志内容返回至客户端,从而实现日志内容的查询,并且用户可以通过客户端直观地查看目标日志内容。

16、在一种可能的实施方式中,所述待查询的日志信息包括待查询的日志属性信息或者待查询的日志内容信息;所述头部区域还包括索引字段区,所述索引字段区包括多个索引字段,所述索引字段用于存储日志属性信息;所述基于所述待查询的日志信息,查询与所述待查询的日志信息对应的目标日志内容,包括:

17、基于待查询的日志属性信息,从所述索引字段区中查找与所述待查询的日志属性信息匹配的目标日志属性信息,并基于所述目标日志属性信息,从所述存储地址内查找与所述目标日志属性信息关联的目标日志内容;或者,

18、基于所述待查询的日志内容信息,从所述存储地址内查找与所述待查询的日志内容信息匹配的目标日志内容。

19、本公开实施例中,服务端可以通过上述两种方式实现目标日志内容的查找,如此,可以提升日志内容查找方式的多样性,提升用户的日志查找体验。此外,通过将待查询的日志属性信息与索引字段区中存储的目标日志属性信息进行匹配,从而实现索引查找,如此,可以提升查找效率,基于待查询的日志内容信息查找目标日志内容,可以提升日志内容查找的准确度。

20、在一种可能的实施方式中,所述目标日志包括多条子日志;所述基于所述待查询的日志内容信息,从所述存储地址内查找与所述待查询的日志内容信息匹配的目标日志内容,包括:

21、对所述目标日志进行解码,得到与每条子日志对应的原始子日志,每个原始子日志包括多个日志内容;

22、针对每条原始子日志的每个日志内容,确定所述每个日志内容在内存中的指针;

23、基于各个指针对应的日志内容,确定与所述待查询的日志内容信息匹配的目标指针,从所述目标指针所述指示的存储地址中查找所述目标日志内容。

24、本公开实施例中,由于目标日志的解码过程是在内存中完成的,因此,在解码得到每个原始子日志的日志内容后,会将日志内容存储在内存中,同时生成日志内容在内存中的指针,从而基于指针查找对应的目标日志内容,与相关技术中pb传输协议需要将各个日志内容(字节形式)复制为string对象的方案进行解析相比,有利于节约内存空间,同时还可以缩减解码开销。

25、在一种可能的实施方式中,所述目标日志的日志结构还包括协议头,所述协议头用于存储协议信息,所述协议信息包括所述日志传输协议的版本号、日志压缩算法类型、日志长度以及协议校验信息;所述协议信息包括所述日志传输协议的版本号、日志压缩算法类型、日志长度以及协议校验信息中的至少一项,其中,所述日志传输协议的版本号用于表征生成所述目标日志所使用的日志传输协议的版本;所述日志压缩算法类型是指对所述原始日志进行压缩所使用的压缩算法;所述日志长度用于指示进行编码的日志的最大数据量;所述协议校验信息用于校验所述目标日志相对于所述原始日志是否存在错误。

26、本公开实施例中,由于日志传输协议的协议头包括日志传输协议的版本号、日志压缩算法类型、日志长度以及协议校验信息等元数据信息部分,以便客户端和服务端能够对日志进行正确解析和处理,其中,协议校验信息能够验证目标日志在客户端和服务端的传输过程中是否发生了损坏或篡改,可以确保日志的完整性和正确性。

27、本公开实施例提供了一种日志处理方法,包括:

28、获取原始日志,并基于预设的日志传输协议,对所述原始日志进行编码,得到目标日志;所述目标日志的日志结构包括头部区域以及内容区域,所述头部区域包括路由字段区,所述路由字段区用于存储日志的存储属性信息,所述内容区域用于存储日志内容;

29、将所述目标日志发送到服务器,以使所述服务器基于所述路由字段区中的存储属性信息确定所述目标日志的存储地址,并所述目标日志存储到所述存储地址内。

30、本公开实施例中,由于目标日志的日志结构中包括路由字段区和内容区域,其中,路由字段区用于存储日志的存储属性信息,内容区域用于存储日志内容,这样,客户端基于日志传输协议对原始日志编码后,即可得到目标日志并将目标日志发送给服务端,这样,服务端在接收到目标日志后,即可对路由字段区进行解码,从而确定目标日志对应的存储地址,与相关技术中通过pb传输协议进行传输的方法相比,服务端无需对日志全部进行解码来获取目标日志的存储地址,如此,有利于降低获取存储地址的过程中所占用的开销。此外,由于路由字段区所占用的空间较小,还可以提升获取存储地址的效率。

31、在一种可能的实施方式中,所述原始日志包括多个原始子日志,所述原始子日志包括多个键值对,所述键值对包括关键字以及键值;所述基于预设的日志传输协议,对所述原始日志进行编码,得到目标日志,包括:

32、针对所述多个原始子日志,确定存在于所述多个原始子日志中的至少一个相同的原始关键字;

33、针对每个相同的原始关键字,将所述原始关键字替换为目标关键字,得到新的多个原始子日志,并对所述新的多个原始子日志进行编码,其中,所述目标关键字的字节长度小于所述原始关键字的字节长度。

34、本公开实施例中,通过将字节长度较小的目标关键字,对各个原始子日志中的每个相同的原始关键字进行替换,如此,可以降低原始日志的存储空间,达到日志压缩的目的,从而有利于提升编码效率。此外,在后续步骤对目标日志进行传输时,还可以节约传输带宽。

35、在一种可能的实施方式中,所述方法还包括:

36、响应于查询操作,生成日志查询请求;所述日志查询请求携带待查询的日志信息;

37、将所述日志查询请求发送至所述服务器;所述日志查询请求用于查找与所述待查询的日志信息对应的目标日志内容;

38、接收所述服务器发送的与所述待查询的日志信息对应的目标日志内容。

39、本公开实施例中,客户端可以发送日志查询请求至服务端,如此,可以从服务端获取到与日志查询请求携带的待查询的日志信息对应的目标日志内容,从而用户可以对目标日志内容进行查看,便于问题锁定和处理。

40、本公开实施例提供了一种日志处理装置,包括:

41、日志接收模块,用于接收客户端发送的目标日志;所述目标日志为所述客户端基于预设的日志传输协议对预设字段类型的原始日志进行编码后得到;所述目标日志的日志结构包括头部区域以及内容区域,所述头部区域包括路由字段区,所述路由字段区用于存储日志的存储属性信息,所述内容区域用于存储日志内容;

42、日志存储模块,用于基于所述预设的日志传输协议,对所述路由字段区进行解码,以获取所述目标日志的存储属性信息,并基于所述目标日志的存储属性信息确定所述目标日志的存储地址,将所述目标日志存储到所述存储地址内。

43、在一种可能的实施方式中,所述日志存储模块具体用于:

44、基于所述目标日志的存储属性信息,从预先构建的存储属性信息与存储地址的对应关系中,查找与所述目标日志的存储属性信息对应的目标存储地址,并将所述目标存储地址确定为所述目标日志的存储地址,其中,所述目标日志为所述客户端运行的目标微服务被调用所产生的日志,所述存储属性信息包括微服务的名称、微服务对应的主机名称以及微服务对应的主机网络地址中的至少一种。

45、在一种可能的实施方式中,所述头部区域还包括索引字段区,所述索引字段区包括多个索引字段;所述目标日志包括多条子日志,每条子日志对应至少一个索引字段,所述日志存储模块还用于:

46、针对每条子日志,确定所述子日志的日志属性信息,并将所述子日志的日志属性信息,存储到对应的索引字段中;所述日志属性信息用于查询对应的子日志。

47、在一种可能的实施方式中,所述装置还包括请求接收模块,所述请求接收模块用于:

48、接收客户端发送的日志查询请求,所述日志查询请求携带待查询的日志信息;

49、基于所述待查询的日志信息,查找与所述待查询的日志信息对应的目标日志内容,并将所述目标日志内容发送至所述客户端。

50、在一种可能的实施方式中,所述待查询的日志信息包括待查询的日志属性信息或者待查询的日志内容信息;所述头部区域还包括索引字段区,所述索引字段区包括多个索引字段,所述索引字段用于存储日志属性信息;所述请求接收模块具体用于:

51、基于待查询的日志属性信息,从所述索引字段区中查找与所述待查询的日志属性信息匹配的目标日志属性信息,并基于所述目标日志属性信息,从所述存储地址内查找与所述目标日志属性信息关联的目标日志内容;或者,

52、基于所述待查询的日志内容信息,从所述存储地址内查找与所述待查询的日志内容信息匹配的目标日志内容。

53、在一种可能的实施方式中,所述请求接收模块具体用于:

54、对所述目标日志进行解码,得到与每条子日志对应的原始子日志,每个原始子日志包括多个日志内容;

55、针对每条原始子日志的每个日志内容,所述日志内容在内存中的指针;

56、基于各个指针对应的日志内容,确定与所述待查询的日志内容信息匹配的目标指针,从所述目标指针所述指示的存储地址中查找所述目标日志内容。

57、在一种可能的实施方式中,所述目标日志的日志结构还包括协议头,所述协议头用于存储协议信息,所述协议信息包括所述日志传输协议的版本号、日志压缩算法类型、日志长度以及协议校验信息中的至少一项,其中,所述日志传输协议的版本号用于表征生成所述目标日志所使用的日志传输协议的版本;所述日志压缩算法类型是指对所述原始日志进行压缩所使用的压缩算法;所述日志长度用于指示进行编码的日志的最大数据量;所述协议校验信息用于校验所述目标日志相对于所述原始日志是否存在错误。

58、本公开实施例还提供了另一种日志处理装置,包括:

59、日志获取模块,用于获取原始日志,并基于预设的日志传输协议,对所述原始日志进行编码,得到目标日志;所述目标日志的日志结构包括头部区域以及内容区域,所述头部区域包括路由字段区,所述路由字段区用于存储日志的存储属性信息,所述内容区域用于存储日志内容;

60、日志发送模块,用于将所述目标日志发送到服务器,以使所述服务器基于所述路由字段区中的存储属性信息确定所述目标日志的存储地址,并所述目标日志存储到所述存储地址内。

61、在一种可能的实施方式中,所述原始日志包括多个原始子日志,所述原始子日志包括多个键值对,所述键值对包括关键字以及键值;所述日志获取模块具体用于:

62、针对所述多个原始子日志,确定存在于所述多个原始子日志中的至少一个相同的原始关键字;

63、针对每个相同的原始关键字,将所述原始关键字替换为目标关键字,得到新的多个原始子日志,并对所述新的多个原始子日志进行编码,其中,所述目标关键字的字节长度小于所述原始关键字的字节长度。

64、在一种可能的实施方式中,所述装置还包括请求发送模块,所述请求发送模块具体用于:

65、响应于查询操作,生成日志查询请求;所述日志查询请求携带待查询的日志信息;

66、将所述日志查询请求发送至所述服务器;所述日志查询请求用于查找与所述待查询的日志信息对应的目标日志内容;

67、接收所述服务器发送的与所述待查询的日志信息对应的目标日志内容。

68、本公开实施例提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述任一实施方式中所述的日志处理方法。

69、本公开实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述任一实施方式中所述的日志处理方法。

70、为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

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