本技术涉及服务器运维,特别是涉及一种指标监控方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术:
1、随着分布式系统领域的发展,出现了一系列用于监控和追踪分布式系统的技术,例如perf-component(performance component,性能组件),该组件可以帮助开发团队及时发现问题并做出相应处理。
2、传统技术中,目标服务器需要在生成所有组件的全量日志后,将目标服务运行时生成的全量日志数据发送至监控服务器,监控服务器将收集到的日志数据传输至监控服务器端的存储系统中,在监控服务器中,根据日志分析工具,按照预设时间间隔,定时对目标服务器进行日志分析,得到目标服务的各项指标,并根据该指标进行告警。
3、然而,目前传统技术中,由于目标服务器需要在生成所有组件的全量日志后,将日志数据发送至监控服务器,并在监控服务器中按照预设时间间隔定时对目标服务进行性能分析,由于日志生成需要一定时间,且全量日志的发送也会占用一定时间,导致针对目标服务的指标监控存在滞后性。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种指标监控方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
2、第一方面,本技术提供了一种指标监控方法,包括:
3、通过本地服务器中的模块化监控组件对目标服务的请求消息进行链路跟踪;
4、在对所述请求消息的链路追踪过程中,基于所述模块化监控组件对执行所述请求消息的目标对象进行包装增强;
5、获取所述请求消息传递链路中各所述目标对象执行所述目标服务产生的实时性能数据;
6、根据预设评价规则对所述实时性能数据进行数据处理,得到目标指标信息,并基于所述目标指标信息对所述目标服务进行性能分析。
7、在其中一个实施例中,所述实时性能数据包括系统性能数据和组件性能数据,所述组件性能数据包括线程池性能数据和/或feign性能数据和/或sql执行性能数据和/或redis命令执行性能数据和/或rocketmq性能数据。
8、在其中一个实施例中,所述通过本地服务器中的模块化监控组件对目标服务的请求消息进行链路跟踪,包括:
9、获取所述目标服务的请求消息;
10、标记所述请求消息,通过模块化监控组件对标记后的所述请求消息进行链路追踪。
11、在其中一个实施例中,所述在对所述请求消息的链路追踪过程中,基于所述模块化监控组件对执行所述请求消息的目标对象进行包装增强,包括:
12、在对所述请求消息的链路追踪过程中,基于所述请求消息在所述模块化监控组件中所传递的各目标组件,分别对所述请求消息进行组件标记并将性能监控任务注入各所述目标组件创建的目标对象中。
13、在其中一个实施例中,所述实时性能数据包括组件实时性能数据和系统实时性能数据;所述获取所述请求消息传递链路中各所述目标对象执行所述目标服务产生的实时性能数据,包括:
14、根据待监控的性能指标确定所述模块化监控组件中的目标组件;
15、基于所述请求消息对应的组件标记和所述目标组件包含的性能监控任务,获取当前所述组件实时性能数据;
16、基于所述模块化监控组件和硬件性能计数器获取当前所述系统实时性能数据。
17、在其中一个实施例中,在待监控的性能指标包括线程池性能指标的情况下,所述在对所述请求消息的链路追踪过程中,基于所述模块化监控组件对执行所述请求消息的目标对象进行包装增强,包括:
18、拦截所述请求消息对应的各目标对象的创建,确定所述各目标对象中是否包含线程池对象;
19、在所述各目标对象中包含所述线程池对象的情况下,根据所述模块化监控组件将所述目标对象替换为包装增强后的目标对象;所述包装增强后的目标对象包含线程池标记和线程池监控工具中的线程池监控任务;
20、所述获取所述请求消息传递链路中各所述目标对象执行所述目标服务产生的实时性能数据,包括:
21、根据所述线程池监控任务,获取所述请求消息在线程池组件中进行传递时携带的线程池实时性能数据;
22、根据所述线程池标记将所述线程池性实时能数据与所述线程池性能指标进行关联,得到实施目标服务的实时性能数据。
23、在其中一个实施例中,所述根据预设评价规则对所述实时性能数据进行数据处理,得到目标指标信息,包括:
24、对所述实时性能数据进行数据转换,得到目标格式下的初始指标信息;
25、根据预设评价规则,对所述初始指标信息进行数据过滤和数据聚合,得到目标指标信息。
26、在其中一个实施例中,所述根据预设评价规则,对所述初始指标信息进行数据过滤和数据聚合,得到目标指标信息之后,所述方法还包括:
27、获取历史指标信息;
28、根据数据展示分析平台、所述历史指标信息、所述初始指标信息和所述目标指标信息,构建可视化性能报告和趋势分析报告。
29、第二方面,本技术还提供了一种指标监控装置,包括:
30、链路跟踪模块,用于通过本地服务器中的模块化监控组件对目标服务的请求消息进行链路跟踪;
31、包装增强模块,用于在对所述请求消息的链路追踪过程中,基于所述模块化监控组件对执行所述请求消息的目标对象进行包装增强;
32、第一获取模块,用于获取所述请求消息传递链路中各所述目标对象执行所述目标服务产生的实时性能数据;
33、数据处理模块,用于根据预设评价规则对所述实时性能数据进行数据处理,得到目标指标信息,并基于所述目标指标信息对所述目标服务进行性能分析。
34、在其中一个实施例中,所述实时性能数据包括系统性能数据和组件性能数据,所述组件性能数据包括线程池性能数据和/或feign性能数据和/或sql执行性能数据和/或redis命令执行性能数据和/或rocketmq性能数据。
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、上述指标监控方法、装置、计算机设备、存储介质和计算机程序产品,通过模块化监控组件对目标服务的请求消息进行链路跟踪,可以使请求消息在不同组件的传递中进行包装增强,使得包装增强后的请求消息在传递过程中携带当前性能数据。通过模块化监控组件能够实时获取目标服务的当前性能,避免生成全量日志后且发送至监控服务器后才进行目标服务的性能分析,而是在目标服务的服务器本地,针对目标服务进行实时监控,最终通过预设评价规则对当前的性能数据进行处理,生成用于实时告警的目标指标信息,并根据目标指标信息进行告警,可以保证针对目标服务进行指标监控的即时性。