本技术涉及数据处理领域,具体涉及一种应用监控日志生成方法、装置、设备及介质。
背景技术:
1、随着互联网技术的发展,互联网应用系统架构愈发复杂,通常一个应用系统包含数十个微服务,因此需要从各个维度对微服务的运行进行监控,以随时关注应用系统的各项业务指标是否正常。
2、目前比较常见的一种方案是采集微服务的应用日志,加工成固定格式的应用监控日志,应用监控日志里面包含有请求接口名、服务响应耗时、服务响应状态等信息,根据应用监控日志分析应用逻辑是否正常、应用运行是否稳定等。
3、现有采集微服务应用日志的方案多在应用端集成信息采集代理,如图1所示,通过采集代理采集微服务的应用日志,然后加工成固定格式的应用监控日志并输出给应用监控系统,由应用监控系统进行数据汇总、计算,提供相关的监控服务。其中,采集代理采用字节码代理的方式,在运行时与应用结合。但采集代理运行时,以黑盒形式集成到应用中,因而在应用开发调试阶段无法感知采集代理是否有问题,比如采集代理不适配应用环境。另外,采集代理生成的应用监控日志格式固定,而应用监控系统有要求的日志格式,当两者格式不匹配时,应用监控系统无法提供正常的监控服务。
技术实现思路
1、本技术实施例提供一种应用监控日志生成方法、装置、设备及介质,用于解决采集代理生成的应用监控日志格式固定,与应用监控系统所需日志格式不匹配的问题。
2、第一方面,本技术提供了一种应用监控日志生成方法,所述方法包括:
3、获取需求日志格式,对所述需求日志格式进行解析,得到需求字段属性;
4、根据所述需求字段属性,从拦截的请求信息和响应信息中提取出目标字段信息,其中,所述请求信息由客户端发起,所述响应信息由微服务发起;
5、根据所述需求日志格式以及所述目标字段信息,生成应用监控日志。
6、本技术通过获取应用监控系统的需求日志格式,对其进行解析,得到需求字段属性,在此基础上,采用拦截器拦截外部向微服务发起的请求信息以及微服务作出的响应信息,根据需求字段属性,从拦截的请求信息和响应信息中提取出需要的目标字段信息,然后根据目标字段信息,按照需求日志格式,生成应用监控日志,该方法可以实现生成满足应用监控系统数据格式要求的应用监控日志,且可以根据不同应用监控系统数据格式要求,生成不用格式的应用监控日志,以满足不同应用监控系统需求。
7、在一种可能的实施例中,所述需求字段属性包括:服务名、日志文件路径、时间戳、请求路径、请求方案、处理耗时、响应状态、响应码和响应描述。
8、根据这些字段属性实现对请求信息和响应信息中目标字段信息的准确提取,提高生成应用监控日志的效率。
9、在一种可能的实施例中,所述根据所述需求字段属性,从拦截的请求信息和响应信息中提取出目标字段信息,包括:通过拦截器拦截客户端向微服务发起的请求信息,并根据所述需求字段属性,从所述请求信息中提取第一目标字段信息;通过拦截器拦截所述微服务发起的与所述请求信息对应的响应信息,并根据所述需求字段属性,从所述响应信息中提取第二目标字段信息;将所述第一目标字段信息和所述第二目标字段信息进行关联,得到所述目标字段信息。
10、通过在微服务中引入拦截器,拦截外部向微服务发起的请求信息和微服务作出的响应信息,并根据需求字段属性,从请求信息和响应信息中提取出目标字段信息,便于后续直接根据目标字段信息和需求日志格式,生成满足应用监控系统数据格式要求的应用监控日志。且拦截器以工具jar包的形式引入微服务中,应用逻辑无感,但又与应用结合为一体,有助于理解业务含义排查问题。
11、在一种可能的实施例中,所述根据所述需求日志格式以及所述目标字段信息,生成应用监控日志,包括:将所述目标字段信息按照预设数据结构进行缓存,得到缓存日志;从所述缓存日志中提取所述目标字段信息,将所述目标字段信息按照所述需求日志格式输入预设日志文件中,得到应用监控日志。
12、通过将提取的目标字段信息进行缓存,可以防止当大量请求涌入时,部分目标字段信息来不及处理而丢失或被删除,进而导致生成的应用监控日志内容不完整的问题。
13、在一种可能的实施例中,在所述根据所述需求日志格式以及所述目标字段信息,生成应用监控日志之后,还包括:当接收到更改所述需求日志格式的更改请求时,判断所述更改请求携带的用户信息是否存在于预设权限用户表中;若所述更改请求携带的用户信息存在于所述预设权限用户表中,则根据所述更改请求携带的日志格式,对所述需求日志格式进行更改;若所述更改请求携带的用户信息不存在于所述预设权限用户表中,则输出无更改权限的提示信息。
14、通过设置配置需求日志格式的权限,确保只有授权的用户才可以修改上述配置,保护了应用系统数据的安全性和完整性。
15、在一种可能的实施例中,在所述从所述缓存日志中提取所述目标字段信息,将所述目标字段信息按照所述需求日志格式输入预设日志文件中,得到应用监控日志之后,还包括:检测所述缓存日志中是否存在不属于当前所述需求字段属性的字段信息;若所述缓存日志中存在不属于当前所述需求字段属性的字段信息,则删除所述字段信息;若所述缓存日志中不存在不属于当前所述需求字段属性的字段信息,则周期性检测所述缓存日志。
16、通过周期性检测缓存日志中不需要的字段信息,并将不需要的字段信息进行删除,可以减少缓存日志的存储压力。
17、第二方面,本技术提供一种应用监控日志生成装置,所述装置包括:
18、获取模块,获取需求日志格式,对所述需求日志格式进行解析,得到需求字段属性;
19、提取模块,根据所述需求字段属性,从拦截的请求信息和响应信息中提取出目标字段信息,其中,所述请求信息由客户端发起,所述响应信息由微服务发起;
20、生成模块,根据所述需求日志格式以及所述目标字段信息,生成应用监控日志。
21、在一种可能的实施例中,所述需求字段属性包括:服务名、日志文件路径、时间戳、请求路径、请求方案、处理耗时、响应状态、响应码和响应描述。
22、在一种可能的实施例中,所述提取模块,具体用于:通过拦截器拦截客户端向微服务发起的请求信息,并根据所述需求字段属性,从所述请求信息中提取第一目标字段信息;通过拦截器拦截所述微服务发起的与所述请求信息对应的响应信息,并根据所述需求字段属性,从所述响应信息中提取第二目标字段信息;将所述第一目标字段信息和所述第二目标字段信息进行关联,得到所述目标字段信息。
23、在一种可能的实施例中,所述生成模块,具体用于:将所述目标字段信息按照预设数据结构进行缓存,得到缓存日志;从所述缓存日志中提取所述目标字段信息,将所述目标字段信息按照所述需求日志格式输入预设日志文件中,得到应用监控日志。
24、在一种可能的实施例中,所述装置,还用于:当接收到更改所述需求日志格式的更改请求时,判断所述更改请求携带的用户信息是否存在于预设权限用户表中;若所述更改请求携带的用户信息存在于所述预设权限用户表中,则根据所述更改请求携带的日志格式,对所述需求日志格式进行更改;若所述更改请求携带的用户信息不存在于所述预设权限用户表中,则输出无更改权限的提示信息。
25、在一种可能的实施例中,所述装置,还用于:检测所述缓存日志中是否存在不属于当前所述需求字段属性的字段信息;若所述缓存日志中存在不属于当前所述需求字段属性的字段信息,则删除所述字段信息;若所述缓存日志中不存在不属于当前所述需求字段属性的字段信息,则周期性检测所述缓存日志。
26、第三方面,本技术提供一种电子设备,包括:
27、存储器,用于存储程序指令;
28、处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行第一方面中任一项所述的方法包括的步骤。
29、第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面中任一项所述的方法。
30、第五方面,本技术提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行第一方面中任一项所述的方法。
1.一种应用监控日志生成方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述需求字段属性包括:服务名、日志文件路径、时间戳、请求路径、请求方案、处理耗时、响应状态、响应码和响应描述。
3.如权利要求1所述的方法,其特征在于,所述根据所述需求字段属性,从拦截的请求信息和响应信息中提取出目标字段信息,包括:
4.如权利要求1所述的方法,其特征在于,所述根据所述需求日志格式以及所述目标字段信息,生成应用监控日志,包括:
5.如权利要求1所述的方法,其特征在于,在所述根据所述需求日志格式以及所述目标字段信息,生成应用监控日志之后,还包括:
6.如权利要求4所述的方法,其特征在于,在所述从所述缓存日志中提取所述目标字段信息,将所述目标字段信息按照所述需求日志格式输入预设日志文件中,得到应用监控日志之后,还包括:
7.一种应用监控日志生成装置,其特征在于,所述装置包括:
8.如权利要求7所述的装置,其特征在于,所述需求字段属性包括:服务名、日志文件路径、时间戳、请求路径、请求方案、处理耗时、响应状态、响应码和响应描述。
9.如权利要求7所述的装置,其特征在于,所述提取模块,具体用于:
10.如权利要求7所述的装置,其特征在于,所述生成模块,具体用于:
11.如权利要求7所述的装置,其特征在于,所述装置,还用于:
12.如权利要求7所述的装置,其特征在于,所述装置,还用于:
13.一种电子设备,其特征在于,包括:
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行如权利要求1-6中任一项所述的方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述如权利要求1-6中任一项所述的方法。