性能指标监控方法、装置、设备及存储介质与流程

文档序号:32043278发布日期:2022-11-03 06:04阅读:77来源:国知局
性能指标监控方法、装置、设备及存储介质与流程

1.本发明涉及数据监控技术领域,尤其涉及一种性能指标监控方法、装置、设备及存储介质。


背景技术:

2.随着科技的发展,在瓦楞纸包装行业中,可以通过包装工业互联网平台实现与租户的联系。其中,包装工业互联网平台是一个基于sass的云平台,是针对多租户多组织多用户的平台,为了能够更好的服务租户,对平台的性能要求就较高,因此需要对平台系统进行性能测试和性能监控。
3.现有的技术中可以通过基于python的多协成性能测试框架自带的web-ui监控对平台中的指标数据进行监控,但由于web-ui监控指标数据无法对数据进行持久化存储,在运行完locust脚本后无法进行历史数据的访问和查询,必须重新运行压测脚本,造成人力资源和时间的浪费。因此,如何对采集的监控指标数据进行监控,成为一个亟待解决的问题。


技术实现要素:

4.本发明的主要目的在于提供了一种性能指标监控方法、装置、设备及存储介质,旨在解决现有技术中每次对监控指标数据进行监控时,都需要重新运行压测脚本的技术问题。
5.为实现上述目的,本发明提供了一种性能指标监控方法,所述方法包括以下步骤:接收部署在从机中的locust性能测试脚本在执行过程中采集的压测数据;将所述压测数据发送至预先部署在prometheus监控系统中的目标监控脚本;通过目标监控脚本对所述压测数据进行预处理,得到指标数据;将所述指标数据赋值给对应的监控指标,获得监控指标数据。
6.可选地,所述接收部署在从机中的locust性能测试脚本在执行过程中采集的压测数据的步骤之前,还包括:基于locust框架配置目标监控脚本,并将所述目标监控脚本部署至所述prometheus监控系统。
7.可选地,所述将所述指标数据赋值给对应的监控指标,获得监控指标数据的步骤之后,还包括:将所述监控指标数据存储至所述prometheus监控系统;获取所述prometheus监控系统的网络地址信息;根据所述网络地址信息配置prometheus监控系统的数据源信息;基于预设可视化工具和所述数据源信息对所述prometheus监控系统存储的监控指标数据进行展示和实时更新。
8.可选地,所述基于预设可视化工具和所述数据源信息对所述prometheus监控系统
存储的监控指标数据进行展示和实时更新的步骤,包括:根据所述数据源信息获取所述prometheus监控系统存储的监控指标数据的位置信息;通过所述位置信息获取对应的目标监控指标数据,并基于预设可视化工具对所述目标监控指标数据进行展示和实时更新。
9.可选地,所述接收部署在从机中的locust性能测试脚本在执行过程中采集的压测数据的步骤之前,还包括:基于docker容器生成prometheus监控系统和预设可视化工具的docker镜像包;基于所述docker镜像包将prometheus监控系统和预设可视化工具部署至工业互联网平台。
10.可选地,所述压测数据包括每秒处理事务数;相应的,所述通过目标监控脚本对所述压测数据进行预处理,得到指标数据的步骤,包括:通过所述目标监控脚本统计所述从机中的locust性能测试脚本在执行过程中每分钟内发送的总请求数;基于所述总请求数确定所述每秒处理事务数,并基于所述每秒处理事务数获得对应的指标数据。
11.可选地,所述压测数据包括响应时间;相应的,所述通过目标监控脚本对所述压测数据进行预处理,得到指标数据的步骤,包括:通过所述目标监控脚本统计所述从机中的locust性能测试脚本在执行过程中从发送目标请求到接收所述目标请求花费的总时间;基于所述总时间确定所述响应时间,并基于所述响应时间获得对应的指标数据。
12.此外,为实现上述目的,本发明还提出一种性能指标监控装置,所述装置包括:数据接收模块,用于接收部署在从机中的locust性能测试脚本在执行过程中采集的压测数据;数据发送模块,用于将所述压测数据发送至预先部署在prometheus监控系统中的目标监控脚本;数据处理模块,用于通过目标监控脚本对所述压测数据进行预处理,得到指标数据;数据赋值模块,用于将所述指标数据赋值给对应的监控指标,获得监控指标数据。
13.此外,为实现上述目的,本发明还提出一种性能指标监控设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的性能指标监控程序,所述性能指标监控程序配置为实现如上文所述的性能指标监控方法的步骤。
14.此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有性能指标监控程序,所述性能指标监控程序被处理器执行时实现如上文所述的性能指标监控方法的步骤。
15.在本发明中,公开了接收部署在从机中的locust性能测试脚本在执行过程中采集的压测数据;将压测数据发送至预先部署在prometheus监控系统中的目标监控脚本;通过
目标监控脚本对压测数据进行预处理,得到指标数据;将指标数据赋值给对应的监控指标,获得监控指标数据;相较于现有技术中通过多协成性能测试框架自带的web-ui监控对监控指标数据进行监控,由于本发明通过将部署在从机中的locust性能测试脚本在执行过程中采集的压测数据发送至目标监控脚本,通过目标监控脚本对压测数据进行处理后得到指标数据,并将指标数据赋值给对应的监控指标获得监控指标数据,从而解决了现有技术中每次对监控指标数据进行监控时,都需要重新运行压测脚本的技术问题,进而降低了人力和时间成本。
附图说明
16.图1是本发明实施例方案涉及的硬件运行环境的性能指标监控设备的结构示意图;图2为本发明性能指标监控方法第一实施例的流程示意图;图3为本发明性能指标监控方法第一实施例中locust框架分布示意图;图4为本发明性能指标监控方法第二实施例的流程示意图;图5为本发明性能指标监控方法第三实施例的流程示意图;图6为本发明性能指标监控装置第一实施例的结构框图。
17.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
18.应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
19.参照图1,图1为本发明实施例方案涉及的硬件运行环境的性能指标监控设备结构示意图。
20.如图1所示,该性能指标监控设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(random access memory,ram),也可以是稳定的非易失性存储器(non-volatile memory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
21.本领域技术人员可以理解,图1中示出的结构并不构成对性能指标监控设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
22.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及性能指标监控程序。
23.在图1所示的性能指标监控设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明性能指标监控设备中的处理器1001、存储器1005可以设置在性能指标监控设备中,所述性能指标监控设备通过处理器1001调用存储器1005中存储的性能指标监控程序,并执行本发明实施例提供的性能指标监控方法。
24.本发明实施例提供了一种性能指标监控方法,参照图2,图2为本发明性能指标监控方法第一实施例的流程示意图。
25.本实施例中,所述性能指标监控方法包括以下步骤:步骤s10:接收部署在从机中的locust性能测试脚本在执行过程中采集的压测数据。
26.需要说明的是,本实施例的方法的执行主体可以为对工业互联网平台进行性能指标监控的性能指标监控设备,或者是其他能够实现相同或相似功能的、包含了该性能指标监控设备的性能指标监控系统。此处以性能指标监控设备(以下简称设备)对本实施例和下述各实施例提供的性能指标监控方法进行具体说明。
27.应当理解的是,上述从机可以为locust分布式压力测试中使用多机分布式压力测试时对应的多台执行机。实际应用中,当一台电脑无法满足足够大的并发用户数量时,就需要多台机器来模拟请求,因此需要部署多个从机实现locust分布式压力测试。
28.可以理解的是,上述locust性能测试脚本可以为上述从机进行压测时的压测脚本。实际应用中,在进行locust分布式压力测试时,可以部署一台机器作为主机master,其他机器作为从机worker,其中,从机worker可以运行上述locust性能测试脚本,并指向主机master服务器和端口,从而可以通过主机master相应的地址信息和端口信息将运行locust性能测试脚本后获得的数据发送至主机master。
29.需要说明的是,上述压测数据可以为从机在运行上述locust性能测试脚本后获得的数据,例如:请求地址、请求方式、成功数、失败数、成功率、失败率、错误信息、每秒处理事务数、平均响应时间、最小响应时间、最大响应时间、总请求流量等数据,本实施例对此不加以限制。
30.在具体实现中,如图3所述,图3中可以在基于python的多协成性能测试框架locust中部署一台主机master和多台从机worker,并将目标监控脚本作为主机master运行,将locust性能测试脚本作为从机worker运行,在进行locust分布式压力测试时,主机master负责分配任务和采集数据,多个从机worker负责进行压测,并将从机worker指向主机master服务器和端口,从而从机可以通过主机的地址信息和端口信息将压测后的数据发送至主机,使主机对接收的压测数据进行处理和加工。
31.步骤s20:将所述压测数据发送至预先部署在prometheus监控系统中的目标监控脚本。
32.应当理解的是,上述prometheus监控系统可以为开源的具有系统监控、报警等功能的系统。其中,prometheus监控系统采集的监控数据均以指标的形式存储在内置的时间序列数据库中。
33.可以理解的是,上述目标监控脚本可以为对上述压测数据进行数据处理和加工的脚本。例如:prometheus-exporter.py监控脚本。实际应用中,可以基于locust框架对目标监控脚本进行配置。
34.进一步地,为了预先将目标监控脚本部署在prometheus监控系统中,上述步骤s10之前,所述方法还包括:基于locust框架配置目标监控脚本,并将所述目标监控脚本部署至所述prometheus监控系统。
35.需要说明的是,上述locust框架即基于python的多协成性能测试框架。
36.应当理解的是,可以通过prometheus监控系统的metric方法将上述目标监控脚本集成到prometheus监控系统中,其中,metric方法可以为prometheus监控系统中自带的metric组件,在对性能指标数据进行监控时,可以通过目标监控脚本中的方案将需要的指标数据取出来,再将取出来的指标数据集成到prometheus监控系统中,后续一旦出现脚本中需要获取的数据,就可以自动采集这些数据,并通过目标监控脚本将这些数据存储到数据对应的数据库中,完成对指标数据的监控。
37.步骤s30:通过目标监控脚本对所述压测数据进行预处理,得到指标数据。
38.需要说明的是,本实施例中可以通过prometheus监控系统中的export对压测数据进行采集和存储,即可以将采集的数据转化为对应的文本格式,并提供http请求,其中,export为prometheus监控系统中提供监控指标的程序。实际应用中,可以通过配置目标监控脚本压测数据集成到prometheus监控系统的export中,export再对获取的数据进行实时采集和存储。
39.应当理解的是,上述指标数据可以为上述目标监控脚本对多个从机发送的数据进行处理后获得的数据。实际应用中,在进行压测的过程时,上述locust性能测试脚本会不断发送请求给平台,目标监控脚本接收到这些请求后可以对这些请求中的数据进行处理,获得对应的指标数据。
40.步骤s40:将所述指标数据赋值给对应的监控指标,获得监控指标数据。
41.可以理解的是,上述监控指标可以为对平台性能进行反映的指标,例如:每秒处理事务数和响应时间等。其中,平台性能包括平台并发处理能力、平台大数据量的容量处理能力和平台长时间运行的稳定性等,不同的平台性能可以通过对应的监控指标进行反映。实际应用中,可以对相应的监控指标进行监控分析,从而满足平台系统性能需求。
42.应当理解的是,上述监控指标数据可以为将目标监控脚本对locust性能测试脚本发送的压测数据进行处理后获得的指标数据赋值给对应的监控指标后得到的数据。实际应用中,prometheus监控系统采集的指标数据均通过监控指标的形式保存在prometheus监控系统内置的时间序列数据库中,从而获得监控指标数据,并且可以通过监控指标对应的监控指标数据对平台对应的性能进行分析。
43.本实施例公开了接收部署在从机中的locust性能测试脚本在执行过程中采集的压测数据;将压测数据发送至预先部署在prometheus监控系统中的目标监控脚本;通过目标监控脚本对压测数据进行预处理,得到指标数据;将指标数据赋值给对应的监控指标,获得监控指标数据;相较于现有技术中通过多协成性能测试框架自带的web-ui监控对监控指标数据进行监控,由于本实施例通过将部署在从机中的locust性能测试脚本在执行过程中采集的压测数据发送至目标监控脚本,通过目标监控脚本对压测数据进行处理后得到指标数据,并将指标数据赋值给对应的监控指标获得监控指标数据,从而解决了现有技术中每次对监控指标数据进行监控时,都需要重新运行压测脚本的技术问题,进而降低了人力和时间成本。
44.参考图4,图4为本发明性能指标监控方法第二实施例的流程示意图。
45.基于上述第一实施例,为了是监控指标数据进行可视化展示,本实施例中,所述步骤s40之后,所述方法还包括:步骤s50:将所述监控指标数据存储至所述prometheus监控系统。
46.需要说明的是,在prometheus监控系统中存在pull和push两种方式,如果是pull形式的话则是主机主动向从机拉取数据,则从机中需要通过采集器对数据进行采集监控,并对采集的数据进行存储。此外,还可以将监控指标的数据存储进行自定义的独立数据库存储,例如:将监控指标数据存储至自定义的postgres时序数据库,以便后续可以基于数据库的历史数据进行更好的操作,从而扩展对监控指标数据的横向对比分析。
47.步骤s60:获取所述prometheus监控系统的网络地址信息。
48.应当理解的是,上述网络地址信息可以为prometheus监控系统中的地址和端口等信息。实际应用中,可以将上述目标监控脚本的路径、名称和ip地址配置到prometheus监控系统自带的prometheus.yml文件中。
49.步骤s70:根据所述网络地址信息配置prometheus监控系统的数据源信息。
50.可以理解的是,上述数据源信息可以为在预设可视化工具对应的ui界面上配置的prometheus监控系统的地址和端口等信息。
51.步骤s80:基于预设可视化工具和所述数据源信息对所述prometheus监控系统存储的监控指标数据进行展示和实时更新。
52.需要说明的是,上述预设可视化工具可以为用于可视化大型测量数据的开源程序,例如:grafana或其他与grafana功能相同和相似的工具,本实施例对此不加以限制。实际应用中,预设可视化工具可以通过将采集的数据进行分析和查询,然后进行可视化的展示,并能实现报警等功能。
53.应当理解的是,在实际应用中,可以根据prometheus监控系统的数据源信息获取prometheus监控系统中存储监控指标数据的位置信息,并根据位置信息获取对应的监控指标数据,从而通过预设可视化根据对获取的监控指标数据进行展示和实时更新。
54.进一步地,为了使prometheus监控系统和预设可视化工具应用于任意服务器和平台,上述步骤s10之前,所述方法还包括:基于docker容器生成prometheus监控系统和预设可视化工具的docker镜像包;基于所述docker镜像包将prometheus监控系统和预设可视化工具部署至工业互联网平台。
55.需要说明的是,上述docker容器为开源的应用容器引擎,可以通过相应的方式将上述prometheus监控系统和上述预设可视化工具以及对应的依赖包到员工可移植的容器中,然后发布到任何安装了docker引擎的服务器上,从而实现对prometheus监控系统和预设可视化工具的移植,使prometheus监控系统和预设可视化工具应用于任意服务器和平台中,实现prometheus监控系统和预设可视化工具的跨平台使用。
56.在具体实现中,需要在上述预设可视化工具中配置prometheus监控系统对应的地址和端口等信息,即数据库信息,在配置好之后就可以展现出从哪里获取对应的数据。预设可视化工具可以指向prometheus监控系统对应的地址和端口,然后应用自带的开源的库对prometheus监控系统中的目标监控脚本进行监控。其中,可以在预设可视化工具对应的ui界面配置prometheus监控系统的数据源信息,即登录到预设可视化工具对应的ui界面对应的数据源配置的位置,通过在界面上进行搜索找到prometheus监控系统,并在对应的位置输入prometheus监控系统的端口等信息,最后点击保存,保存后系统会查询地址信息和端口信息,若可以正常运行则保存成功,完成在预设可视化工具中对prometheus监控系统的数据源信息的配置。
57.本实施例通过根据prometheus监控系统的网络地址信息配置prometheus监控系统的数据源信息,根据数据源信息获取prometheus监控系统存储的监控指标数据的位置信息,再基于位置信息获取对应的监控指标数据,从而基于预设可视化工具对prometheus监控系统存储的监控指标数据进行展示和实时更新,有利于更清晰更直观地监控系统指标的变化和系统的稳定性。同时,基于docker容器生成的docker镜像包将prometheus监控系统和预设可视化工具部署至工业互联网平台,可以实现对prometheus监控系统和预设可视化工具的容器话部署,并且使prometheus监控系统和预设可视化工具可以跨系统和跨平台使用。
58.参考图5,图5为本发明性能指标监控方法第三实施例的流程示意图。
59.基于上述各实施例,为了基于压测数据获得对应的指标数据,本实施例中,上述压测数据包括每秒处理事务数;上述步骤s30包括:步骤s301:通过所述目标监控脚本统计所述从机中的locust性能测试脚本在执行过程中每分钟内发送的总请求数。
60.需要说明的是,在压测过程中,从机中的locust性能测试脚本会不断发送请求给平台,此时可以记录一分钟内locust性能测试脚本发送的总请求数。
61.步骤s302:基于所述总请求数确定所述每秒处理事务数,并基于所述每秒处理事务数获得对应的指标数据。
62.应当理解的是,上述每秒处理事务数可以为每秒能够响应的查询次数,或者每秒能应对多少网络流量。实际应用中,可以将上述每分钟内发送的总请求数除以六十,从而获得每秒处理事务数,再将求得的每秒处理事务数赋值给对应的指标数据。
63.进一步地,为了获取响应时间对应的指标数据,上述步骤s30包括:通过所述目标监控脚本统计所述从机中的locust性能测试脚本在执行过程中从发送目标请求到接收所述目标请求花费的总时间;基于所述总时间确定所述响应时间,并基于所述响应时间获得对应的指标数据。
64.本实施例通过目标监控脚本统计从机中的locust性能测试脚本在执行过程中每分钟内发送的总请求数确定每秒处理事务数,并基于每秒处理事务数获得对应的指标数据,从而可以根据指标数据对平台性能进行监控。
65.此外,本发明实施例还提出一种存储介质,所述存储介质上存储有性能指标监控程序,所述性能指标监控程序被处理器执行时实现如上文所述的性能指标监控方法的步骤。
66.参照图6,图6为本发明性能指标监控装置第一实施例的结构框图。
67.如图6所示,本发明实施例提出的性能指标监控装置包括:数据接收模块601,用于接收部署在从机中的locust性能测试脚本在执行过程中采集的压测数据;数据发送模块602,用于将所述压测数据发送至预先部署在prometheus监控系统中的目标监控脚本;数据处理模块603,用于通过目标监控脚本对所述压测数据进行预处理,得到指标数据;数据赋值模块604,用于将所述指标数据赋值给对应的监控指标,获得监控指标数
据。
68.本实施例的性能指标监控装置公开了接收部署在从机中的locust性能测试脚本在执行过程中采集的压测数据;将压测数据发送至预先部署在prometheus监控系统中的目标监控脚本;通过目标监控脚本对压测数据进行预处理,得到指标数据;将指标数据赋值给对应的监控指标,获得监控指标数据;相较于现有技术中通过多协成性能测试框架自带的web-ui监控对监控指标数据进行监控,由于本实施例通过将部署在从机中的locust性能测试脚本在执行过程中采集的压测数据发送至目标监控脚本,通过目标监控脚本对压测数据进行处理后得到指标数据,并将指标数据赋值给对应的监控指标获得监控指标数据,从而解决了现有技术中每次对监控指标数据进行监控时,都需要重新运行压测脚本的技术问题,进而降低了人力和时间成本。
69.本发明性能指标监控装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
70.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
71.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
72.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
73.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1