CN113094348B - 日志管理方法及装置 - Google Patents

日志管理方法及装置 Download PDF

Info

Publication number
CN113094348B
CN113094348B CN202110298298.9A CN202110298298A CN113094348B CN 113094348 B CN113094348 B CN 113094348B CN 202110298298 A CN202110298298 A CN 202110298298A CN 113094348 B CN113094348 B CN 113094348B
Authority
CN
China
Prior art keywords
call
log
interface
request
response
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.)
Active
Application number
CN202110298298.9A
Other languages
English (en)
Other versions
CN113094348A (zh
Inventor
蒋旺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202110298298.9A priority Critical patent/CN113094348B/zh
Publication of CN113094348A publication Critical patent/CN113094348A/zh
Application granted granted Critical
Publication of CN113094348B publication Critical patent/CN113094348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本公开关于日志管理方法及装置,所述方法应用于业务服务器,其特征在于,所述方法包括:获取对所述业务服务器提供的目标接口的调用请求、以及与所述调用请求对应的调用响应;解析所述调用请求和调用响应,获得所述调用请求中携带的调用参数、以及所述调用响应中携带的与所述调用参数对应的调用返回值;将所述调用参数以及所述调用参数对应的调用返回值发送至日志服务器,以使所述日志服务器生成与所述目标接口对应的接口调用日志。

Description

日志管理方法及装置
技术领域
本公开涉及计算机应用领域,尤其涉及日志管理方法及装置。
背景技术
如今,为了对接口进行故障监测和调试,通常需要查询接口的调用日志。相关技术中,为需要记录日志的接口对应设计拦截器,从而对接口的调用请求、调用响应进行拦截,并生成对应的调用日志,以备维护人员查询。
然而,为了支持更高的业务处理能力,接口通常可以部署在不止一台服务器上,在此种情况下,一旦发现业务故障,需要进行故障排查的接口可能并不运行在同一台服务器上,甚至同一个接口都有可能分布式部署在多台服务器上。采用上述日志管理方法,与故障相关的日志只会存储在实际出现故障的服务器上,维护人员需要逐个登录运行接口的多台服务器,以寻找故障相关的日志,过程繁琐,效率低下。
发明内容
有鉴于此,本公开提供了日志管理方法及装置,以至少解决相关技术中日志管理效率低下的技术问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提出了一种日志管理方法,应用于业务服务器,其特征在于,所述方法包括:
获取对所述业务服务器提供的目标接口的调用请求、以及与所述调用请求对应的调用响应;
解析所述调用请求和调用响应,获得所述调用请求中携带的调用参数、以及所述调用响应中携带的与所述调用参数对应的调用返回值;
将所述调用参数以及所述调用参数对应的调用返回值发送至日志服务器,以使所述日志服务器生成与所述目标接口对应的接口调用日志。
可选的,所述目标接口对应配置有拦截器;
所述获取向所述业务服务器提供的目标接口的调用请求、以及与所述调用请求对应的调用响应,包括:
利用所述拦截器,拦截并获取所述业务服务器提供的目标接口的调用请求、以及与所述调用请求对应的调用响应。
可选的,所述目标接口还对应配置有包装器;所述拦截器中包括与所述调用请求的数据结构适配的参数解析器、以及与由所述包装器包装处理后的所述调用响应的数据结构适配的返回值解析器;
解析所述调用请求和调用响应,获得所述调用请求中携带的调用参数、以及所述调用响应中携带的与所述调用参数对应的调用返回值,包括:
调用所述拦截器中的所述参数解析器,对获取到的所述调用请求进行解析,获得所述调用请求中携带的调用参数;并
调用所述拦截器中的所述返回值解析器,对由所述包装器包装处理后的所述调用响应进行解析,获得所述调用响应中携带的与所述调用参数对应的调用返回值。
可选的,所述方法还包括:
识别所述调用请求、以及由所述包装器包装处理后的所述调用响应的数据结构;
从所述拦截器中包括的若干参数解析器以及返回值解析器中,确定与所述调用请求的数据结构适配的参数解析器、以及与由所述包装器包装处理后的所述调用响应的数据结构适配的返回值解析器。
可选的,其特征在于,将所述调用参数以及所述调用参数对应的调用返回值发送至日志服务器,包括:
将所述调用参数以及所述调用参数对应的调用返回值,发布至所述日志服务器订阅的消息系统中,以使所述消息系统以发布订阅的方式,将所述调用参数以及所述调用参数对应的调用返回值发送至日志服务器。
根据本公开实施例的第二方面,提出了一种日志管理方法,应用于日志服务器,其特征在于,所述方法包括:
获取业务服务器发送的调用参数以及对应所述调用参数的调用返回值;其中,所述调用参数以及所述调用返回值由所述业务服务器对获取到的调用请求以及与所述调用请求对应的调用响应进行解析后得到,所述调用请求包括对所述业务服务器提供的目标接口的调用请求;
基于所述调用参数以及对应所述调用参数的调用返回值,生成与所述目标接口对应的接口调用日志。
根据本公开实施例的第三方面,提出了一种日志管理装置,应用于业务服务器,其特征在于,所述装置包括:
获取模块,被配置为获取对所述业务服务器提供的目标接口的调用请求、以及与所述调用请求对应的调用响应;
解析模块,被配置为解析所述调用请求和调用响应,获得所述调用请求中携带的调用参数、以及所述调用响应中携带的与所述调用参数对应的调用返回值;
发送模块,被配置为将所述调用参数以及所述调用参数对应的调用返回值发送至日志服务器,以使所述日志服务器生成与所述目标接口对应的接口调用日志。
根据本公开实施例的第四方面,提出了一种日志管理装置,应用于日志服务器,其特征在于,所述装置包括:
获取模块,被配置为获取业务服务器发送的调用参数以及对应所述调用参数的调用返回值;其中,所述调用参数以及所述调用返回值由所述业务服务器对获取到的调用请求以及与所述调用请求对应的调用响应进行解析后得到,所述调用请求包括对所述业务服务器提供的目标接口的调用请求;
第一生成模块,被配置为基于所述调用参数以及对应所述调用参数的调用返回值,生成与所述目标接口对应的接口调用日志。
根据本公开实施例的第五方面,提出了一种业务服务器,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现上述第一方面任一实施例所述的日志管理方法。
根据本公开实施例的第六方面,提出了一种日志服务器,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现上述第二方面任一实施例所述的日志管理方法。
根据本公开实施例的第七方面,提出了一种日志管理系统,包括如上述第五方面实施例所述的业务服务器,以及如上述第六方面实施例所述的日志服务器。
根据本公开实施例的第八方面,提出一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一实施例所述的日志管理方法。
一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现上述任一实施例所述的日志管理方法。
以上技术方案中,由于业务服务器可以获取到其提供的目标接口的调用请求以及调用响应,加以解析后发送到日志服务器,因此可以使日志服务器生成针对上述目标接口的接口调用日志。
进一步地,由于针对多个业务服务器上的接口的调用日志都可以在同一台日志服务器上生成,相关人员在需要查询接口的调用日志时,只需访问上述日志存储区即可,不再需要逐个访问运行上述接口的服务器;因此,上述技术方案可以显著提升日志管理的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书文本一同用于解释原理,并不构成对本公开的不当限定。
图1是根据本公开的实施例示出的一种日志管理系统的架构示意图;
图2是根据本公开的实施例示出的一种日志管理方法流程图;
图3是根据本公开的实施例示出的一种拦截器的工作流程示意图;
图4是根据本公开的实施例示出的一种消息系统的工作流程示意图;
图5是根据本公开的实施例示出的另一日志管理方法流程图;
图6是根据本公开的实施例示出的一种日志管理装置的示意框图;
图7是根据本公开的实施例示出的另一日志管理装置的示意框图;
图8是根据本公开的实施例示出的一种电子设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本公开一个或多个实施例中的技术方案,下面将结合本公开一个或多个实施例中的附图,对本公开一个或多个实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本公开一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的系统和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
前后端分离设计一般是指,将应用程序分为前端和后端两部分进行设计,其中,前端可以根据用户输入的指令调用后端提供的业务接口,并将业务接口返回的处理结果呈现至用户,而后端则可以包括上述业务接口的具体逻辑实现。在此种设计中,如果任意一端出现故障或者需要升级,可以对其单独进行调试或修改,因而可以改善应用程序代码的可维护性。例如,应用程序的业务功能出现错误,则维护人员可以根据后端的接口的调用日志,对后端的接口进行故障排查。
然而,为了支持更高的业务处理能力,上述后端的接口通常部署在多台服务器上,在此种情况下,一旦发现业务故障,需要进行故障排查的接口可能并不运行在同一台服务器上,甚至同一个接口都有可能部署在多台服务器上。而相关技术中,与故障相关的日志存储在实际出现故障的服务器上,维护人员需要逐个登录部署有接口的服务器,寻找故障相关的日志,过程繁琐,效率低下。
基于此,本申请提出一种由业务服务器获取各个接口的调用请求以及对应的调用响应,经过解析后发送至日志服务器,使日志服务器对应生成调用日志的技术方案。
在实现时,上述对各个接口的调用请求以及对应的调用响应的解析过程为:解析得到调用请求中携带的调用参数、以及调用响应中携带的与调用参数对应的调用返回值。
以上技术方案中,由于业务服务器可以获取到各目标接口的调用请求以及调用响应,解析调用请求以及调用响应后,把解析的结果发送到日志服务器,因此日志服务器可以基于解析的结果生成目标接口的接口调用日志。
进一步地,由于部署在多个业务服务器上的接口的调用日志都可以在同一台日志服务器上生成、存储,相关人员在查询接口的调用日志时,访问上述日志服务器即能获取接口的调用日志,不再需要逐个访问运行上述接口的业务服务器。因此,上述技术方案可以显著提升日志管理的效率。
下面通过具体实施例并结合具体的应用场景对技术方案进行描述。
请参见图1,图1为根据本公开的实施例示出的一种日志管理系统的架构示意图。
该系统可以包括业务服务器、以及与业务服务器建立有通信连接的日志服务器。其中,业务服务器可以提供接口,且接口被对应配置了拦截器;日志服务器中则可以存储各个接口的调用日志。
上述服务器,既可以包括单台的服务器,也可以包括由多台物理或者虚拟服务器组成的服务器集群,其形态可以为包含多台服务器的机房,也可以是逻辑上为一个整体,但物理上分布式部署的多台服务器,或者云服务器等等;对此本公开无需进行具体限定,本领域技术人员可以根据具体需求进行选择应用。
上述接口,可以包括任意的应用程序接口。如前所述,应用程序可以采用前后端分离的结构,因此,应用程序的前端可以通过调用后端接口的方式完成用户指示的业务;其中,上述调用过程中使用的调用请求以及调用响应的数据结构,本公开无需加以限定,本领域技术人员可以根据具体需求完成设计。
可以理解的是,上述应用程序,既可以包括传统的单机应用程序,也可以包括依托于网页的Web应用,还可以包括依托于其他软件平台运行的“小程序”等等;本公开对于应用程序的具体形式亦无需加以详细限定。
亦可以理解的是,上述拦截器并非唯一解决方案,例如还可以通过代理服务器获取网络报文的方式获取上述请求和响应,又或者通过虚拟化技术拦截虚拟机的输入输出流的方式获取上述请求和响应;本领域技术人员可以根据具体应用环境,自行参考相关技术,设计其他获取目标接口的调用请求以及调用响应的实现方式,本公开无需进行全部列举。
在本示例中,上述不同业务服务器上的接口,可以是功能不同的接口,也可以是相同功能的接口在多个服务器上分布式部署的多个实例;本实施例中接口的开发平台、业务种类等等实现细节无需进行进一步限定,本领域技术人员可以根据具体需求进行详细设计。
例如,上述接口可以包括基于Spring MVC框架开发的Web接口;Spring MVC是一个基于MVC设计思想的Web框架,采用此种框架进行Web应用程序的开发,可以利用其各个模块分离的松耦合特性,加快开发的速度,并改善应用程序模块的泛用性。
可以理解的是,上述拦截器可以根据应用程序本身采用的开发框架,对应选择具体的实现方式;例如,当需要获取日志的接口基于Spring MVC框架开发时,上述拦截器则可以基于Spring MVC框架中的HandlerInterceptor进行开发;HandlerInterceptor是SpringMVC框架提供的一个用于构建拦截器的通用接口,灵活运用开发框架中的现有代码,可以提高软件开发效率,并避免代码迁移可能带来的兼容性问题。
请参见图2,图2是根据本公开的实施例示出的一种日志管理方法流程图;该方法应用于业务服务器,可以包括下列步骤S201-S203。
S201,获取对所述业务服务器提供的目标接口的调用请求、以及与所述调用请求对应的调用响应。
在本示例中,上述业务服务器可以获取向其提供的目标接口的调用请求、以及与该调用请求对应的调用响应。具体而言,由于上述目标接口为上述业务服务器提供的接口,因此对该接口的调用请求、以及与该调用请求对应的调用响应,由上述业务服务器直接获取更为简洁有效。
在一实施例中,上述获取调用请求、以及与该调用请求对应的调用响应的过程,可以由上述目标接口对应配置的拦截器完成;如前文所述,拦截器可以与目标接口对应配置,并能够获取到目标接口的调用请求和调用响应。可以理解是,在某些软件开发语言中,拦截器可以作为其他相关的软件模块的载体;换言之,如果上述业务服务器需要针对获取到的调用请求和调用响应进行进一步处理,那么进一步处理所对应的软件代码可以直接嵌入上述拦截器中实现。
S202,解析所述调用请求和调用响应,获得所述调用请求中携带的调用参数、以及所述调用响应中携带的与所述调用参数对应的调用返回值。
在本示例中,上述业务服务器可以对获取到的调用请求和与该调用请求对应的调用响应进行解析,从而获取该调用请求中携带的调用参数,以及对应的调用响应中携带的调用返回值。例如,对某一接口的调用请求为“para1:ABC,para2:DEF”,该接口对应返回的调用响应为“rtn1:ABCDEF”,在获取到上述“para1:ABC,para2:DEF”和“rtn1:ABCDEF”后,可以分别进行解析,得到形如“ABC,DEF”和“ABCDEF”的、成对的调用参数和调用返回值;可以理解的是,得到的调用参数和调用返回值可以通过JSON或其他自定义的数据结构进行存储,还可以根据具体需求进行二次编码、加密等处理,对此本公开无需进行进一步限定。
在一实施例中,上述目标接口可以对应配置有包装器,相对应的,被解析的调用响应可以为由上述包装器处理后的调用响应。具体而言,上述拦截器中可以包括与上述调用请求的数据结构适配的参数解析器、以及与由上述包装器包装处理后的上述调用响应的数据结构适配的返回值解析器;
例如,上述获取到的调用请求采用链表数据结构存储调用参数,其中,调用参数是GBK编码的字符串,与上述调用请求的数据结构适配的参数解析器能够读取链表数据结构,并传递GBK编码的字符串参数。类似的,如果上述包装器包装处理后的调用响应的数据结构是一个类,这个类中使用一个预设成员变量存储返回值,则与上述调用响应的数据结构适配的上述返回值解析器,能够解析上述类结构,从该类中提取上述预设的成员变量,获得返回值。可以理解的是,上述数据结构仅为便于表述的示例,本领域技术人员在实际应用上述方案时可以根据实际情况,自行选择或者设计具体适配的数据结构。
在上述情况下,上述解析过程可以具体包括:
调用上述拦截器中的上述参数解析器,对获取到的上述调用请求进行解析,获得上述调用请求中携带的调用参数;以及
调用上述拦截器中的上述返回值解析器,对由上述包装器包装处理后的上述调用响应进行解析,获得上述调用响应中携带的与上述调用参数对应的调用返回值。
例如,调用返回值解析器,对由包装器包装处理后的、使用预设成员变量存储返回值的类的调用响应进行解析,即可得到上述预设成员变量中存储的返回值。
通常,包装器可以指用于对异构数据或者不同访问接口数据进行转换的软件模块,在上述设计中引入包装器,可以将调用响应的数据结构或者编码转换为拦截器所支持的种类,从而解决部分情况下,拦截器由于数据结构或者编码不支持而无法从调用响应中获取接口的返回值的问题。
举例而言,在SpringMVC的某些版本中,接口或者方法的返回值在调用响应中按特定的规则存储,无法通过常规的、获取成员变量的方式被读取;如果调用包装器对调用响应进行处理,可以将特定规则存储的返回值转换为使用类的成员变量存储的方式,从而使拦截器可以解析得到成员变量中直接存储的返回值。因此,采用上述设计,通过包装器对调用响应进行包装处理,再由拦截器对包装器处理得到的类进行解析,可以解决相关技术中无法得到调用响应中携带的返回值的问题。
在一实施例中,上述拦截器中可以包括多个参数解析器以及返回值解析器,而上述业务服务器还可以进行结构识别以及解析器选择。具体而言,可以首先识别上述调用请求、以及由上述包装器包装处理后的上述调用响应的数据结构;再从上述拦截器中包括的若干参数解析器以及返回值解析器中,确定与上述调用请求的数据结构适配的参数解析器、以及与由上述包装器包装处理后的上述调用响应的数据结构适配的返回值解析器。
例如,不同的调用请求采用的字符编码可能存在不同,因此需要选择与调用请求采用的字符编码相适配的参数解析器;在具体实施中,可以预先准备分别适配各种字符编码的参数解析器,并将各参数解析器与字符编码类型之间的对应关系存储在关系表中;在获取到调用请求后,可以基于字符编码的二进制编码范围等规律,识别出其使用的UTF8、GB2312等字符编码类型;基于确定出的字符编码类型从上述关系表中查询,即可得到相适配的参数解析器;返回值解析器亦可采用与上述过程类似的方式进行选择,本公开不再赘述。
当然可以理解的是,上述基于字符编码的二进制编码范围等规律识别字符编码的过程仅为一可行示例,除上述方法以外,亦可以采用语义识别、编码强制转换等方式,完成对于调用请求所使用的字符编码识别;类似的,上述基于对应关系表的匹配方式亦仅为一可行示例,其他的例如对于不同报文格式的调用请求,预先设置好对应的参数解析器,如对于调用请求为HTTP报文格式、ARP报文格式的请求,分别设置第一参数解析器、第二参数解析器,第一参数解析器用于解析HTTP请求报文,第二参数解析器用于解析ARP请求报文。
亦可以理解的是,除字符串的字符编码以外,其他数据结构,例如链表、数组的识别,整型数与浮点数的识别等等,本领域技术人员可以参考相关文献,自行选择识别的机制,本公开无需进行全部列举或进一步限定。
应用上述方案,可以为不同数据结构的调用响应以及调用请求确定出相适配的返回值解析器以及参数解析器,可以提高上述系统的扩展性和可移植性,减少重复开发带来的成本浪费。
请参见图3,图3是根据本公开的实施例示出的一种拦截器的工作流程示意图;在该例中,调用请求在进入接口之前,可以经过拦截器中的参数解析器,从而被结构化解析出调用参数;对应地,调用响应在从接口中被生成后,可以经过包装器后进入返回值解析器,从而被解析出调用返回值。其中,包装器获取调用请求或者调用响应时,可以根据从接口中读取的内容生成对应的副本,再针对生成的副本进行解析,避免解析流程对调用请求或者调用响应的占用时间过长,影响调用请求和调用响应的正常传输,导致业务的延迟。
可以理解的是,基于参数解析器对调用请求进行结构化解析的过程、与基于返回值解析器对调用响应进行结构化解析的过程、与接口本身的业务处理过程之间的时序关系无需进行严格限制,例如,既可以等待接口本身的业务处理过程结束后,再进行上述两种结构化解析,也可以先进行对调用请求的结构化解析,再进行接口本身的业务处理,最后完成对调用响应的结构化解析,还可以将对调用请求的结构化解析与接口本身的业务处理并行执行。可见,本领域技术人员可以根据具体需求设计上述结构化解析的具体执行时序,本公开不作进一步限定。
亦可以理解的是,上述例子中将包装器、参数解析器、返回值解析器作为拦截器的一部分的软件结构仅是一可行示例,本领域技术人员也可以将上述包装器、参数解析器、返回值解析器独立于上述拦截器进行开发,并由拦截器进行调用;因此,本领域技术人员可以根据具体应用场景,自行设计软件结构,本公开对此无需作出详细限定。
S203,将所述调用参数以及所述调用参数对应的调用返回值发送至日志服务器,以使所述日志服务器生成与所述目标接口对应的接口调用日志。
在本示例中,在解析得到调用参数以及与调用参数对应的调用返回值后,可以将成对的调用参数以及调用返回值发送至日志服务器,以使该日志服务器基于上述调用参数以及与调用参数对应的调用返回值,生成与目标接口对应的接口调用日志。
可以理解的是,上述成对的调用参数以及调用返回值既可以由日志服务器从上述业务服务器中进行查询获取,也可以由上述业务服务器向上述日志服务器进行主动发送,还可以在两者之间配置中转设备或软件,间接完成上述过程。例如,可以配置一台汇总服务器,用于汇总多台业务服务器中的解析结果,并由上述日志服务器按照预设的周期或者其他获取策略,从该汇总服务器中获取汇总后的解析结果。
在一实施例中,上述日志服务器与上述业务服务器之间,可以搭设有消息系统,通常,消息系统可以设置至少一个用于缓存消息的消息队列,各消息队列用于存储设备订阅消息系统的消息,在这里,若某设备订阅了消息系统的消息,则认为该设备与消息系统建立有消息订阅关系,消息系统中的某一消息队列用于存储该设备订阅的消息。本实施例可以使与本消息系统建立有消息订阅关系的设备可以从与上述消息订阅关系对应的消息队列中获取订阅的消息。请参见图4,图4是根据本公开的实施例示出的一种消息系统的工作流程示意图。在该例中,上述日志服务器可以与上述消息系统预先建立消息订阅关系,该消息系统可以接收上述业务服务器发布到消息系统中的各接口对应的调用参数、以及与调用参数对应的调用返回值,并将接收到的调用参数和对应的调用返回值存储在与上述消息订阅关系对应的消息队列中。在这种设计下,上述日志服务器可基于上述消息订阅关系,从该消息系统内的消息队列中,获取各拦截器发布到该消息系统中的各接口对应的调用参数、以及与所述调用参数对应的调用返回值。可以理解的是,消息系统也可以采用除消息队列以外其他形式的消息缓存数据结构,本领域技术人员可以根据具体需求选用消息系统,并完成具体设计,本公开无需进行进一步限定。
采用上述设计,一方面,对于日志服务器而言,由于可以从上述消息系统中获取所需信息,不再需要与大量的业务服务器对接,因此可以简化日志服务器本身的网络代码,增强稳定性;另一方面,对于接口而言,如果业务服务器将上述调用参数和调用返回值发往日志服务器,可能需要等待日志服务器中的待处理日志任务处理完毕才能够执行下一步,因此可能使接口进入长时间的等待,但是,消息系统中则不存在待处理日志任务,能够明显降低接口的等待时间,因此采用将上述调用参数和调用返回值发往消息系统的方案,可以令接口无需因日志管理而进入等待,从而保证接口的业务性能不会明显下降。
在具体实现时,上述在日志服务器与服务器集群之间搭设的消息系统可以是Kafka分布式消息系统。由于Kafka是一个分布式、支持分区的(partition)、多副本的(replica)、且基于zookeeper协调的分布式消息系统,可以实时的处理大量数据以满足各种需求场景,因此开发人员可以利用该平台实现上述消息系统所需要的功能。当然,本领域技术人员也可以根据具体需求选择其他可用的消息系统,本公开不作进一步限定。
基于以上方案可知,由于业务服务器获取到了对该业务服务器所提供的目标接口的调用请求以及调用响应,并加以解析后发送到日志服务器,因此,日志服务器可以基于解析的结果生成针对上述目标接口的接口调用日志。
进一步地,由于部署在多个业务服务器上的接口的调用日志都可以在同一台日志服务器上生成、存储,相关人员在查询接口的调用日志时,访问上述日志服务器即能获取接口的调用日志,不再需要逐个访问运行上述接口的业务服务器。因此,上述技术方案可以显著提升日志管理的效率。
请参见图5,图5是根据本公开的实施例示出的另一日志管理方法流程图,该方法应用于日志服务器,可以包括以下步骤S501-S502。
S501,获取业务服务器发送的调用参数以及对应所述调用参数的调用返回值;其中,所述调用参数以及所述调用返回值由所述业务服务器对获取到的调用请求以及与所述调用请求对应的调用响应进行解析后得到,所述调用请求包括向所述业务服务器提供的目标接口的调用请求。
如前述步骤S203所述,业务服务器可以将包含上述调用参数以及调用返回值的解析结果发送至上述日志服务器,因此,该示例中的日志服务器获取上述解析结果的过程亦可参照相关内容完成设计,进一步的设计细节亦可参照完成。例如,在上述业务服务器与日志服务器之间假设有消息系统的情况下,可以由上述业务服务器将解析结果在上述消息系统中发布,再由上述日志服务器在上述消息系统中通过订阅消息的方式获取到上述包含上述调用参数以及调用返回值的解析结果。
S502,基于所述调用参数以及对应所述调用参数的调用返回值,生成与所述目标接口对应的接口调用日志。
在本示例中,上述日志服务器可以基于获得的调用参数以及对应的调用返回值,生成与目标接口对应的调用日志。具体而言,生成的调用日志,可以是如“接口标识,调用请求时间,调用参数,调用返回时间,调用返回值”的格式的文本数据,也可以是一条可以存入数据库的记录,或者是其他加密或者编码处理后的可读数据格式。本领域技术人员可以根据具体需求进行设计,本公开对此无需进行详细限定。
可以理解的是,上述生成调用日志的过程,具体的实现方式可以是直接新建调用日志,也可以对已有的历史日志进行更新。具体可以视日志存储区所采用的存储管理规范而定,本领域技术人员可以自行完成相关设计。
在一实施例中,上述日志服务器,可基于上述调用参数以及对应上述调用参数的调用返回值,对上述日志服务器中与上述目标接口对应的接口调用日志进行更新,以生成更新后的与上述目标接口对应的接口调用日志。例如,日志存储区中已经存储有A、B、C三个接口的历史调用日志,那么当上述日志服务器接收到接口B的调用参数以及调用返回值时,对接口B的历史调用日志进行增量更新。采用上述方案,相对于每次接收到调用参数以及调用返回值,均对应生成新的调用日志的方案,由于减少了调用日志的新建数量,因此可以一定程度上节省存储空间,并提高查询效率。
在具体实现中,存储上述接口调用日志的日志存储区域可以基于ElasticSearch集群实现。ElasticSearch又称ES,是一个分布式的搜索引擎和数据分析引擎,通过集群部署可以实现更高的业务存储能力和并发处理能力。
可以理解的是,在上述消息系统为Kafka分布式消息系统,且上述日志存储区基于ElasticSearch集群实现的情况下,两者之间的信息交互也可以由logstash、kafkaconnect、spark stream、KCC等其他转发平台作为中转,避免数据格式转换、数据流同步等操作对上述两者造成的额外负载,从而保证集群之间的信息交互的可靠性。
在一实施例中,上述日志服务器可以基于上述接口调用日志,提供查询、展示和/或分析等服务。具体而言,日志服务器接收到包括查询条件的日志查询请求;日志服务器在所有已生成的接口调用日志中,确定与上述查询条件匹配的目标调用日志或者目标调用日志片段;日志服务器基于上述目标调用日志或者目标调用日志片段,构造对应上述日志查询请求的日志查询响应,并发送日志查询响应。
举例而言,上述查询条件可以包括接口标识、调用时间、调用类型等等。由于上述有条件的查询可以对调用日志进行筛选,因此可以使用户能够得到更加准确、符合需求的目标调用日志或者目标调用日志片段。
在一实施例中,上述构造日志查询响应的过程中,可以对筛选出的目标调用日志或目标调用日志片段进行进一步的分析处理,提高数据的可读性。具体而言,可以对上述目标调用日志或者目标调用日志片段中包含的数据进行统计,并生成与统计的结果对应的统计图表;之后,再构造携带上述统计图表的、对应上述日志查询请求的日志查询响应。
具体实现时,可以基于Kibana、Grafana等可视化统计平台,对所述日志存储区中的调用日志进行汇总统计,并对汇总统计的结果进行可视化处理,再将可视化处理得到的统计图表携带在最终返回的日志查询响应中,从而使管理维护人员获取到的日志查询结果,不再是枯燥繁杂的文本形式,而是更加直观的统计图表,可以一定程度上提高通过调用日志对接口进行管理维护的效率。
可以理解的是,上述接口的调用日志,不仅可以包括调用参数、调用返回值、调用时间等信息,还可以进一步包括接口被调用时记录的其他信息,例如,接口被调用的频率、占用的网络带宽、占用的系统内存等等,都可以作为附加信息存储在调用日志中,以便管理维护。
举例而言,上述日志服务器可以根据调用日志中接口每次被调用的时间,统计出该接口被调用的频率,还可以根据接口被调用时的调用参数和返回值估测接口被调用时占用的网络带宽,并将上述频率和带宽信息作为附加信息存储在调用日志中;在管理维护期间,如果根据上述附加信息确定某个接口被调用的频率高于正常值,或者被调用时占用的网络带宽高于正常值,则可以判断该接口可能曾受到恶意调用攻击。
在一实施例中,上述日志服务器还可以提供接口故障报告的生成功能。具体而言,上述日志服务器可以利用预设的故障信息识别规则,检测生成的接口调用日志中是否包含接口的故障信息;如果上述接口调用日志中确实包含接口的故障信息,则可以生成指示上述故障信息的接口故障报告。
可以理解的是,上述故障信息识别规则可以是基于字符串匹配的正则表达式规则,也可以是其他用于日志内容识别的识别规则,包括上述生成接口故障报告的具体方式、接口故障报告的形式在内的实现细节,本公开无需进行详细限定。例如,既可以将故障信息与预设的故障报告文案模板进行组合,生成文字格式的故障报告,也可以进一步对故障信息进行分类统计,生成包含故障统计图等内容的故障报告;故障报告既可以包含特定接口的全部时段的故障信息,也可以包括特定时段的所有接口的故障信息,等等。因此,本领域技术人员可以根据具体需求自行选择并完善实现细节。
在一实施例中,上述日志服务器还可以提供调用异常报告的生成功能。不同于接口本身的故障,调用异常可以包括调用次数、调用流量、调用耗时等方面的异常。具体而言,上述日志服务器可以基于已生成的接口调用日志,统计预设监控时长内,各接口被调用的下列指标中的至少一项:调用次数、调用流量、调用耗时;如果统计到的指标中出现落入预设的异常区间的异常指标,则可以生成指示所述异常指标对应的接口调用日志的调用异常报告。
与前述接口故障报告类似,包括上述生成调用异常报告的具体方式、调用异常报告的形式在内的实现细节,本公开无需进行详细限定,例如,既可以将上述异常指标与预设的调用异常报告文案模板进行组合,生成文字格式的调用异常报告,也可以进一步对调用异常信息进行分类统计,生成包含调用异常统计图或者表格等内容的调用异常报告;生成的调用异常报告既可以根据对应的接口进行存储或展示,也可以根据调用异常的类型进行存储或展示。可见,本领域技术人员可以根据具体需求自行完成进一步的细节设计。
上述内容即为本公开针对日志管理方法的全部实施例。本公开还提供了对应的日志管理装置的实施例如下:
请参见图6,图6是根据本公开的实施例示出的一种日志管理装置的示意框图,该装置应用于业务服务器,可以包括下述模块:
获取模块601,被配置为获取对所述业务服务器提供的目标接口的调用请求、以及与所述调用请求对应的调用响应;
解析模块602,被配置为解析所述调用请求和调用响应,获得所述调用请求中携带的调用参数、以及所述调用响应中携带的与所述调用参数对应的调用返回值;
发送模块603,被配置为将所述调用参数以及所述调用参数对应的调用返回值发送至日志服务器,以使所述日志服务器生成与所述目标接口对应的接口调用日志。
在一实施例中,上述目标接口可以对应配置有拦截器,上述获取模块601则可以进一步被配置为利用所述拦截器,拦截并获取所述业务服务器提供的目标接口的调用请求、以及与所述调用请求对应的调用响应。如前文所述,拦截器可以与目标接口对应配置,并能够获取到目标接口的调用请求和调用响应。可以理解是,在某些软件开发语言中,拦截器可以作为其他相关的软件模块的载体;换言之,如果上述业务服务器需要针对获取到的调用请求和调用响应进行进一步处理,那么进一步处理所对应的软件代码可以直接嵌入上述拦截器中实现。
在一实施例中,上述目标接口可以对应配置有包装器,相对应的,参与解析的调用响应可以为由上述包装器处理后的调用响应;具体而言,上述拦截器中可以包括与上述调用请求的数据结构适配的参数解析器、以及与由上述包装器包装处理后的上述调用响应的数据结构适配的返回值解析器;在此种情况下,上述解析模块602可以被进一步配置为:调用上述拦截器中的上述参数解析器,对获取到的上述调用请求进行解析,获得上述调用请求中携带的调用参数;并调用上述拦截器中的上述返回值解析器,对由上述包装器包装处理后的上述调用响应进行解析,获得上述调用响应中携带的与上述调用参数对应的调用返回值。
在设计中引入包装器,可以将调用响应包装为拦截器所支持的形式,从而解决部分情况下,拦截器无法从调用响应中获取接口的返回值的问题。
在一实施例中,上述拦截器中可以包括多个参数解析器以及返回值解析器,而上述装置中还可以包括用于进行结构识别以及解析器选择的识别模块;具体而言,上述识别模块可以被配置为,首先识别上述调用请求、以及由上述包装器包装处理后的上述调用响应的数据结构;再从上述拦截器中包括的若干参数解析器以及返回值解析器中,确定与上述调用请求的数据结构适配的参数解析器、以及与由上述包装器包装处理后的上述调用响应的数据结构适配的返回值解析器。
应用上述方案,可以通过自动识别的方式,为不同数据结构的调用响应以及调用请求确定出相适配的返回值解析器以及参数解析器,可以提高上述系统的扩展性和可移植性,减少重复开发带来的成本浪费。
在一实施例中,上述日志服务器,与上述业务服务器之间,可以搭设有消息系统,上述发送模块603可以进一步被配置为:将上述调用参数以及上述调用参数对应的调用返回值发布至上述日志服务器订阅的消息系统中,从而使上述消息系统以发布订阅的方式将上述调用参数以及上述调用参数对应的调用返回值发送至日志服务器。一般而言,上述消息系统可以采用消息队列的方式缓存待发布的上述调用参数以及上述调用参数对应的调用返回值,但上述消息系统也可以采用除消息队列以外其他形式的消息缓存数据结构,本领域技术人员可以根据具体需求选用消息系统,并完成具体设计,本公开无需进行进一步限定。
采用上述设计,一方面,对于日志服务器而言,其设计者不再需要与大量的业务服务器直接对接,从而简化了日志服务器本身的代码,增强了稳定性;另一方面,对于接口而言,如果业务服务器将上述调用参数和调用返回值发往日志服务器,可能需要等待日志服务器的逻辑全部处理完毕才能够执行下一步,因此可能使接口的业务进入长时间的等待,但是,消息系统能够保证消息的转达,无需消息发布者等待,因此采用将上述调用参数和调用返回值发往消息系统的方案,可以令接口无需因日志管理而进入等待,从而保证接口的业务性能不会明显下降。
请参见图7,图7是根据本公开的实施例示出的另一日志管理装置的示意框图,改装置应用于日志服务器,可以包括下述模块:
获取模块701,被配置为获取业务服务器发送的调用参数以及对应所述调用参数的调用返回值;其中,所述调用参数以及所述调用返回值由所述业务服务器对获取到的调用请求以及与所述调用请求对应的调用响应进行解析后得到,所述调用请求包括对所述业务服务器提供的目标接口的调用请求;
第一生成模块702,被配置为基于所述调用参数以及对应所述调用参数的调用返回值,生成与所述目标接口对应的接口调用日志。
在一实施例中,上述第一生成模块702可以进一步被配置为基于上述调用参数以及对应上述调用参数的调用返回值,对上述日志服务器中与上述目标接口对应的接口调用日志进行更新,以生成更新后的与上述目标接口对应的接口调用日志;例如,日志存储区中已经存储有A、B、C三个接口的历史调用日志,那么当上述日志服务器需要生成接口B的新的调用日志时,即可基于接口B的调用参数以及调用返回值,对接口B的历史调用日志进行更新;采用上述方案,由于不会新建大量碎片化的调用日志,因此可以一定程度上节省存储空间,并提高查询效率。
在一实施例中,上述日志管理装置还可以包括查询模块,该查询模块可以基于上述接口调用日志,提供查询、展示和/或分析等服务;具体而言,该查询模块可以被配置为首先接收包括查询条件日志查询请求;再在所有已生成的接口调用日志中,确定与上述查询条件匹配的目标调用日志或者目标调用日志片段;最后可以基于上述目标调用日志或者目标调用日志片段,构造对应上述日志查询请求的日志查询响应,并发送构造出的日志查询响应。
举例而言,上述查询条件可以包括接口标识、调用时间、调用类型等等;由于上述有条件的查询可以对调用日志进行筛选,因此可以使用户能够得到更加准确、符合需求的目标调用日志或者目标调用日志片段。
在一实施例中,上述查询模块在构造日志查询响应的过程中,可以对筛选出的目标调用日志或目标调用日志片段进行进一步的分析处理,提高数据的可读性;具体而言,上述查询模块可以对上述目标调用日志或者目标调用日志片段中包含的数据进行统计,并生成与统计的结果对应的统计图表;之后,再构造携带上述统计图表的、对应上述日志查询请求的日志查询响应。
在一实施例中,上述日志管理装置还可以包括第二生成模块,用于提供接口故障报告的生成功能;具体而言,上述第二生成模块可以被配置为,利用预设的故障信息识别规则,检测生成的接口调用日志中是否包含接口的故障信息;如果上述接口调用日志中确实包含接口的故障信息,则可以生成指示上述故障信息的接口故障报告。
可以理解的是,上述故障信息识别规则可以是基于字符串匹配的正则表达式规则,也可以是其他用于日志内容识别的识别规则;包括上述生成接口故障报告的具体方式、接口故障报告的形式在内的实现细节,本公开无需进行详细限定,本领域技术人员可以根据具体需求自行完成。
在一实施例中,上述日志管理装置还可以包括第三生成模块,用于提供调用异常报告的生成功能;不同于接口本身的故障,调用异常可以包括调用次数、调用流量、调用耗时等方面的异常;具体而言,上述第三生成模块可以被配置为基于已生成的接口调用日志,统计预设监控时长内,各接口被调用的下列指标中的至少一项:调用次数、调用流量、调用耗时;如果统计到的指标中出现落入预设的异常区间的异常指标,则可以生成指示所述异常指标对应的接口调用日志的调用异常报告。
与前述接口故障报告类似,包括上述生成调用异常报告的具体方式、调用异常报告的形式在内的实现细节,本公开无需进行详细限定,本领域技术人员可以根据具体需求自行完成。
关于上述实施例中的装置,其中各模块的具体实现方式,已经在描述对应方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开的实施例还提出一种业务服务器,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述任一实施例所述的应用于业务服务器的日志管理方法。
本公开的实施例还提出一种日志服务器,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述任一实施例所述的应用于日志服务器的日志管理方法。
本公开的实施例还提出一种日志管理系统,包括上述业务服务器和日志服务器;可以理解的是,在一个日志管理系统中,上述业务服务器和日志服务器的数量可以不受限制,本领域技术人员可以自行设计具体的网络架构。
本公开的实施例还提出一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一实施例所述的日志管理方法。
图8是根据本公开的实施例示出的一种电子设备的示意框图,前述业务服务器以及日志服务器可以采用与该电子设备类似的硬件结构。参照图8,电子设备800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件818。
处理组件802通常控制电子设备800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述日志管理方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在电子设备800的操作。这些数据的示例包括用于在电子设备800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为电子设备800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为电子设备800生成、管理和分配电力相关联的组件。
多媒体组件808包括在电子设备800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当电子设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的或具有焦距和光学变焦能力的光学透镜系统。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当电子设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件818发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为电子设备800提供各个方面的状态评估。例如,传感器组件814可以检测到电子设备800的打开/关闭状态,组件的相对定位,例如所述组件为电子设备800的显示器和小键盘,传感器组件814还可以检测电子设备800或电子设备800一个组件的位置改变,用户与电子设备800接触的存在或不存在,电子设备800方位或加速/减速和电子设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件818被配置为便于电子设备800和其他设备之间有线或无线方式的通信。电子设备800可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或6G),或它们的组合。在一个示例性实施例中,通信组件818经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件818还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在本公开一实施例中,电子设备800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述日志管理方法。
在本公开一实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器804,上述指令可由电子设备800的处理器820执行以完成上述日志管理方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在本公开一实施例中,还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令可以被处理器执行,并在被执行时可以实现上述日志管理方法。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
需要说明的是,在本公开中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本公开实施例所提供的方法和装置进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。

Claims (24)

1.一种日志管理方法,应用于业务服务器,其特征在于,所述方法包括:
获取对所述业务服务器提供的目标接口的调用请求、以及与所述调用请求对应的调用响应;
解析所述调用请求和调用响应,获得所述调用请求中携带的调用参数、以及所述调用响应中携带的与所述调用参数对应的调用返回值;
将所述调用参数以及所述调用参数对应的调用返回值发送至日志服务器,以使所述日志服务器基于所述调用参数以及对应所述调用参数的调用返回值,对所述日志服务器中与所述目标接口对应的接口调用日志进行更新,以生成更新后的与所述目标接口对应的接口调用日志。
2.根据权利要求1所述的方法,其特征在于,所述目标接口对应配置有拦截器;
所述获取向所述业务服务器提供的目标接口的调用请求、以及与所述调用请求对应的调用响应,包括:
利用所述拦截器,拦截并获取所述业务服务器提供的目标接口的调用请求、以及与所述调用请求对应的调用响应。
3.根据权利要求2所述的方法,其特征在于,所述目标接口还对应配置有包装器;所述拦截器中包括与所述调用请求的数据结构适配的参数解析器、以及与由所述包装器包装处理后的所述调用响应的数据结构适配的返回值解析器;
解析所述调用请求和调用响应,获得所述调用请求中携带的调用参数、以及所述调用响应中携带的与所述调用参数对应的调用返回值,包括:
调用所述拦截器中的所述参数解析器,对获取到的所述调用请求进行解析,获得所述调用请求中携带的调用参数;并
调用所述拦截器中的所述返回值解析器,对由所述包装器包装处理后的所述调用响应进行解析,获得所述调用响应中携带的与所述调用参数对应的调用返回值。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
识别所述调用请求、以及由所述包装器包装处理后的所述调用响应的数据结构;
从所述拦截器中包括的若干参数解析器以及返回值解析器中,确定与所述调用请求的数据结构适配的参数解析器、以及与由所述包装器包装处理后的所述调用响应的数据结构适配的返回值解析器。
5.根据权利要求1所述的方法,其特征在于,将所述调用参数以及所述调用参数对应的调用返回值发送至日志服务器,包括:
将所述调用参数以及所述调用参数对应的调用返回值,发布至所述日志服务器订阅的消息系统中,以使所述消息系统以发布订阅的方式,将所述调用参数以及所述调用参数对应的调用返回值发送至日志服务器。
6.一种日志管理方法,应用于日志服务器,其特征在于,所述方法包括:
获取业务服务器发送的调用参数以及对应所述调用参数的调用返回值;其中,所述调用参数以及所述调用返回值由所述业务服务器对获取到的调用请求以及与所述调用请求对应的调用响应进行解析后得到,所述调用请求包括对所述业务服务器提供的目标接口的调用请求;
基于所述调用参数以及对应所述调用参数的调用返回值,生成与所述目标接口对应的接口调用日志;
其中,基于所述调用参数以及对应所述调用参数的调用返回值,生成与所述目标接口对应的接口调用日志,包括:
基于所述调用参数以及对应所述调用参数的调用返回值,对所述日志服务器中与所述目标接口对应的接口调用日志进行更新,以生成更新后的与所述目标接口对应的接口调用日志。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收日志查询请求,所述日志查询请求包括查询条件;
在所有已生成的接口调用日志中,确定与所述查询条件匹配的目标调用日志或者目标调用日志片段;
基于所述目标调用日志或者目标调用日志片段,构造对应所述日志查询请求的日志查询响应,发送所述日志查询响应。
8.根据权利要求7所述的方法,其特征在于,
基于所述目标调用日志或者目标调用日志片段,构造对应所述日志查询请求的日志查询响应,包括:
对所述目标调用日志或者目标调用日志片段中包含的数据进行统计,并生成与统计的结果对应的统计图表;
构造携带所述统计图表的、对应所述日志查询请求的日志查询响应。
9.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在利用预设的故障信息识别规则,确定生成的接口调用日志中包含接口的故障信息的情况下,生成指示所述故障信息的接口故障报告。
10.根据权利要求6所述的方法,其特征在于,所述方法还包括:
基于已生成的接口调用日志,统计预设监控时长内,各接口被调用的下列指标中的至少一项:调用次数、调用流量、调用耗时;
在统计到的指标中出现落入预设的异常区间的异常指标的情况下,生成指示所述异常指标对应的接口调用日志的调用异常报告。
11.一种日志管理装置,应用于业务服务器,其特征在于,所述装置包括:
获取模块,被配置为获取对所述业务服务器提供的目标接口的调用请求、以及与所述调用请求对应的调用响应;
解析模块,被配置为解析所述调用请求和调用响应,获得所述调用请求中携带的调用参数、以及所述调用响应中携带的与所述调用参数对应的调用返回值;
发送模块,被配置为将所述调用参数以及所述调用参数对应的调用返回值发送至日志服务器,以使所述日志服务器基于所述调用参数以及对应所述调用参数的调用返回值,对所述日志服务器中与所述目标接口对应的接口调用日志进行更新,以生成更新后的与所述目标接口对应的接口调用日志。
12.根据权利要求11所述的装置,其特征在于,所述目标接口对应配置有拦截器;
所述获取模块进一步被配置为:
利用所述拦截器,拦截并获取所述业务服务器提供的目标接口的调用请求、以及与所述调用请求对应的调用响应。
13.根据权利要求12所述的装置,其特征在于,所述目标接口还对应配置有包装器;所述拦截器中包括与所述调用请求的数据结构适配的参数解析器、以及与由所述包装器包装处理后的所述调用响应的数据结构适配的返回值解析器;
所述解析模块被进一步配置为:
调用所述拦截器中的所述参数解析器,对获取到的所述调用请求进行解析,获得所述调用请求中携带的调用参数;并
调用所述拦截器中的所述返回值解析器,对由所述包装器包装处理后的所述调用响应进行解析,获得所述调用响应中携带的与所述调用参数对应的调用返回值。
14.根据权利要求13所述的装置,所述装置还包括识别模块,被配置为:
识别所述调用请求、以及由所述包装器包装处理后的所述调用响应的数据结构;从所述拦截器中包括的若干参数解析器以及返回值解析器中,确定与所述调用请求的数据结构适配的参数解析器、以及与由所述包装器包装处理后的所述调用响应的数据结构适配的返回值解析器。
15.根据权利要求11所述的装置,其特征在于,所述发送模块进一步被配置为:
将所述调用参数以及所述调用参数对应的调用返回值,发布至所述日志服务器订阅的消息系统中,以使所述消息系统以发布订阅的方式,将所述调用参数以及所述调用参数对应的调用返回值发送至日志服务器。
16.一种日志管理装置,应用于日志服务器,其特征在于,所述装置包括:
获取模块,被配置为获取业务服务器发送的调用参数以及对应所述调用参数的调用返回值;其中,所述调用参数以及所述调用返回值由所述业务服务器对获取到的调用请求以及与所述调用请求对应的调用响应进行解析后得到,所述调用请求包括对所述业务服务器提供的目标接口的调用请求;
第一生成模块,被配置为基于所述调用参数以及对应所述调用参数的调用返回值,生成与所述目标接口对应的接口调用日志;
其中,所述第一生成模块,进一步被配置为:
基于所述调用参数以及对应所述调用参数的调用返回值,对所述日志服务器中与所述目标接口对应的接口调用日志进行更新,以生成更新后的与所述目标接口对应的接口调用日志。
17.根据权利要求16所述的装置,其特征在于,所述装置还包括查询模块,被配置为:
接收日志查询请求,所述日志查询请求包括查询条件;
在所有已生成的接口调用日志中,确定与所述查询条件匹配的目标调用日志或者目标调用日志片段;
基于所述目标调用日志或者目标调用日志片段,构造对应所述日志查询请求的日志查询响应,发送所述日志查询响应。
18.根据权利要求17所述的装置,其特征在于,
基于所述目标调用日志或者目标调用日志片段,构造对应所述日志查询请求的日志查询响应,包括:
对所述目标调用日志或者目标调用日志片段中包含的数据进行统计,并生成与统计的结果对应的统计图表;
构造携带所述统计图表的、对应所述日志查询请求的日志查询响应。
19.根据权利要求16所述的装置,其特征在于,所述装置还包括:
第二生成模块,被配置为在利用预设的故障信息识别规则,确定生成的接口调用日志中包含接口的故障信息的情况下,生成指示所述故障信息的接口故障报告。
20.根据权利要求16所述的装置,其特征在于,所述装置还包括:
第三生成模块,被配置为基于已生成的接口调用日志,统计预设监控时长内,各接口被调用的下列指标中的至少一项:调用次数、调用流量、调用耗时;在统计到的指标中出现落入预设的异常区间的异常指标的情况下,生成指示所述异常指标对应的接口调用日志的调用异常报告。
21.一种业务服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1~5中任一项所述的日志管理方法。
22.一种日志服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求6~10中任一项所述的日志管理方法。
23.一种日志管理系统,包括如权利要求21所述的业务服务器,以及如权利要求22所述的日志服务器。
24.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1~11中任一项所述的日志管理方法。
CN202110298298.9A 2021-03-19 2021-03-19 日志管理方法及装置 Active CN113094348B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110298298.9A CN113094348B (zh) 2021-03-19 2021-03-19 日志管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110298298.9A CN113094348B (zh) 2021-03-19 2021-03-19 日志管理方法及装置

Publications (2)

Publication Number Publication Date
CN113094348A CN113094348A (zh) 2021-07-09
CN113094348B true CN113094348B (zh) 2024-02-23

Family

ID=76668585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110298298.9A Active CN113094348B (zh) 2021-03-19 2021-03-19 日志管理方法及装置

Country Status (1)

Country Link
CN (1) CN113094348B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103023693A (zh) * 2012-11-27 2013-04-03 北京小米科技有限责任公司 一种行为日志数据管理系统及方法
CN107239382A (zh) * 2017-06-23 2017-10-10 深圳市冬泉谷信息技术有限公司 一种容器应用的日志处理方法及系统
CN109271331A (zh) * 2018-08-20 2019-01-25 平安普惠企业管理有限公司 日志的生成方法、装置、计算机设备及存储介质
CN110096419A (zh) * 2019-04-22 2019-08-06 厦门网宿有限公司 接口日志的获取方法、接口日志管理服务器及业务服务器
CN110753020A (zh) * 2018-07-24 2020-02-04 北京京东尚科信息技术有限公司 网络请求处理方法和装置
CN111708842A (zh) * 2020-06-10 2020-09-25 武汉钢铁有限公司 一种热轧板材异构数据的处理方法及装置
CN112214465A (zh) * 2020-10-19 2021-01-12 珠海金山网络游戏科技有限公司 日志存储系统及方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103023693A (zh) * 2012-11-27 2013-04-03 北京小米科技有限责任公司 一种行为日志数据管理系统及方法
CN107239382A (zh) * 2017-06-23 2017-10-10 深圳市冬泉谷信息技术有限公司 一种容器应用的日志处理方法及系统
CN110753020A (zh) * 2018-07-24 2020-02-04 北京京东尚科信息技术有限公司 网络请求处理方法和装置
CN109271331A (zh) * 2018-08-20 2019-01-25 平安普惠企业管理有限公司 日志的生成方法、装置、计算机设备及存储介质
CN110096419A (zh) * 2019-04-22 2019-08-06 厦门网宿有限公司 接口日志的获取方法、接口日志管理服务器及业务服务器
CN111708842A (zh) * 2020-06-10 2020-09-25 武汉钢铁有限公司 一种热轧板材异构数据的处理方法及装置
CN112214465A (zh) * 2020-10-19 2021-01-12 珠海金山网络游戏科技有限公司 日志存储系统及方法

Also Published As

Publication number Publication date
CN113094348A (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
CN107967143B (zh) 获取客户端应用程序源代码的更新指示信息的方法、装置和系统
CN109542361B (zh) 一种分布式存储系统文件读取方法、系统及相关装置
CN111241125B (zh) 一种记录操作日志的方法、装置、电子设备和存储介质
CN109800030B (zh) 一种应用程序运行方法、装置及终端
US11934287B2 (en) Method, electronic device and computer program product for processing data
CN112714030A (zh) 告警方法、装置、设备及计算机可读存储介质
CN110381101A (zh) Api网关控制系统、控制方法、设备和介质
KR101695636B1 (ko) 복합 상황 정보 이벤트 처리 방법 및 그 장치
US9374437B2 (en) Schema validation proxy
CN113094348B (zh) 日志管理方法及装置
CN117271584A (zh) 数据处理方法及装置、计算机可读存储介质和电子设备
CN111104577B (zh) 数据处理方法、装置、计算机可读存储介质及电子设备
CN111813623A (zh) 一种页面监控方法、装置、电子设备及存储介质
CN115563156A (zh) 流数据信息的校验方法、装置、设备及存储介质
CN114461909A (zh) 信息处理方法、信息处理装置、电子设备和存储介质
US11277300B2 (en) Method and apparatus for outputting information
US9465876B2 (en) Managing content available for content prediction
CN105610908B (zh) 一种基于安卓设备的samba服务实现方法及系统
CN113761433A (zh) 业务处理方法和装置
CN112306324B (zh) 信息处理方法、装置、设备和介质
CN114912048B (zh) 页面投放的方法、装置、存储介质及电子设备
CN112445498B (zh) 一种程序安装方法、装置、电子设备及存储介质
CN110609751B (zh) 一种终端设备控制方法及装置、终端设备及计算机可读存储介质
WO2016179116A1 (en) Method and apparatus for implementing a gateway for managing user subscriptions
CN113590425A (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
GR01 Patent grant
GR01 Patent grant