CN109144838A - 应用程序监控方法及装置、计算机装置及计算机存储介质 - Google Patents
应用程序监控方法及装置、计算机装置及计算机存储介质 Download PDFInfo
- Publication number
- CN109144838A CN109144838A CN201811142609.7A CN201811142609A CN109144838A CN 109144838 A CN109144838 A CN 109144838A CN 201811142609 A CN201811142609 A CN 201811142609A CN 109144838 A CN109144838 A CN 109144838A
- Authority
- CN
- China
- Prior art keywords
- handling capacity
- application program
- application
- application example
- request
- 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.)
- Pending
Links
- 238000009434 installation Methods 0.000 title claims abstract description 50
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012544 monitoring process Methods 0.000 title claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000012806 monitoring device Methods 0.000 claims abstract description 7
- 238000004590 computer program Methods 0.000 claims description 22
- 230000002159 abnormal effect Effects 0.000 claims description 19
- 239000002699 waste material Substances 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000005314 correlation function Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 229910002804 graphite Inorganic materials 0.000 description 2
- 239000010439 graphite Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种应用程序监控方法,包括:获取计算机装置当前运行的应用程序的应用实例的实例名称;根据所述实例名称获取所述应用实例处理的请求数;根据所述请求数计算所述应用实例对应的吞吐量;输出所述吞吐量;判断所述吞吐量是否满足预设调整条件;若所述吞吐量满足预设调整条件,则调整所述应用程序的应用实例。本发明还提供一种应用程序监控装置、计算机装置及计算机可读存储介质。本发明可以针对应用程序的每个应用实例获取对应的吞吐量,根据吞吐量的大小进行相应处理,避免了请求过多造成应用程序不稳定甚至卡死,也避免了请求过少造成系统资源的浪费,提高了应用程序性能。
Description
技术领域
本发明涉及软件运维技术领域,具体涉及一种应用程序监控方法及装置、计算机装置和计算机可读存储介质。
背景技术
计算机装置中,应用程序会使用各种系统资源进行任务处理。当有任务需要处理时,应用程序会收到访问指定系统资源的请求,应用程序对该请求建立线程,然后利用所建立的线程对该请求进行处理。若请求过多,应用程序来不及处理,会造成应用程序不稳定甚至卡死。如果请求过少,则会造成系统资源的浪费。应用程序处理的请求数一般用吞吐量来衡量。因此,需要对应用程序的吞吐量进行监控及控制,以提高应用程序的性能。
发明内容
鉴于以上内容,有必要提出一种应用程序监控方法及装置、计算机装置和计算机可读存储介质,其可以监控应用程序的吞吐量并根据吞吐量对应用程序进行控制。
本申请的第一方面提供一种应用程序监控方法,所述方法包括:
获取计算机装置当前运行的应用程序的应用实例的实例名称;
根据所述实例名称获取所述应用实例处理的请求数;
根据所述请求数计算所述应用实例对应的吞吐量;
输出所述吞吐量;
判断所述吞吐量是否满足预设调整条件;
若所述吞吐量满足预设调整条件,则调整所述应用程序的应用实例。
另一种可能的实现方式中,所述获取计算机装置当前运行的应用程序的应用实例的实例名称包括:
从所述应用程序的环境配置文件中获取所述实例名称。
另一种可能的实现方式中,所述根据所述实例名称获取所述应用实例处理的请求数包括:
通过调用connection接口获取所述请求数。
另一种可能的实现方式中,所述调整所述应用程序的应用实例之前,所述方法还包括:
采集所述应用程序的线程运行信息,根据所述线程运行信息判断所述应用程序的运行是否异常;或者
获取所述应用程序的应用日志,根据所述应用日志判断所述应用程序的运行是否异常。
另一种可能的实现方式中,所述方法还包括:
判断所述吞吐量是否满足预设报警条件,若所述吞吐量满足预设报警条件,则进行报警。
另一种可能的实现方式中,所述若所述吞吐量满足预设调整条件,则调整所述应用程序的应用实例包括:
若所述吞吐量大于或等于第一预设吞吐量,则增加所述应用程序的应用实例;和/或
若所述吞吐量小于或等于第二预设吞吐量,则减少所述应用程序的应用实例。
另一种可能的实现方式中,所述输出所述吞吐量包括:
通过Grafana展示所述吞吐量;或者
通过Highcharts展示所述吞吐量。
本申请的第二方面提供一种应用程序监控装置,所述装置包括:
第一获取单元,用于获取计算机装置当前运行的应用程序的应用实例的实例名称;
第二获取单元,用于根据所述实例名称获取所述应用实例处理的请求数;
计算单元,用于根据所述请求数计算所述应用实例对应的吞吐量;
输出单元,用于输出所述吞吐量;
判断单元,用于判断所述吞吐量是否满足预设调整条件;
调整单元,用于若所述吞吐量满足预设调整条件,则调整所述应用程序的应用实例。
本申请的第三方面提供一种计算机装置,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述应用程序监控方法。
本申请的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述应用程序监控方法。
本发明获取计算机装置当前运行的应用程序的应用实例的实例名称;根据所述实例名称获取所述应用实例处理的请求数;根据所述请求数计算所述应用实例对应的吞吐量;输出所述吞吐量;判断所述吞吐量是否满足预设调整条件;若所述吞吐量满足预设调整条件,则调整所述应用程序的应用实例。本发明可以针对应用程序的每个应用实例获取对应的吞吐量,根据吞吐量的大小进行相应处理,避免了请求过多造成应用程序不稳定甚至卡死,也避免了请求过少造成系统资源的浪费,提高了应用程序性能。
附图说明
图1是本发明实施例提供的应用程序监控方法的流程图。
图2是本发明实施例提供的应用程序监控装置的结构图。
图3是本发明实施例提供的计算机装置的示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
优选地,本发明的应用程序监控方法应用在一个或者多个计算机装置中。所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机装置可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
实施例一
图1是本发明实施例一提供的应用程序监控方法的流程图。所述应用程序监控方法应用于计算机装置。所述应用程序监控方法对计算机装置中运行的应用程序的吞吐量进行监控并根据吞吐量对应用程序进行控制。
如图1所示,所述应用程序监控方法具体包括以下步骤:
步骤101,获取计算机装置当前运行的应用程序的应用实例的实例名称。
计算机装置可以运行一个应用程序,也可以运行多个应用程序。所述应用程序可以是java应用程序。
应用程序的每个应用实例对应应用程序的一个进程。
在本实施例中,可以从应用程序的环境配置文件(例如env文件)中获取应用实例的实例名称。例如,读取应用程序的环境配置文件,从读取的环境配置文件中获取应用实例的实例名称,例如为spri_lcloud-rmp-prd-ins9740。
步骤102,根据所述实例名称获取所述应用实例处理的请求数。
在一具体实施例中,所述应用程序是java应用程序,可以通过调用connection接口获取所述应用实例处理的请求数。通过调用connection接口获取的请求数是累加的请求数。例如,在第一时间获取到第一请求数,在第一时间之后的第二时间获取到第二请求数,该第二请求数为第一请求数与第一时间到第二时间内处理的请求数之和。
可以按照预设时间间隔(例如一分钟)获取所述请求数。例如,在第1分钟获取的请求数为100,在第2分钟获取的请求数为200,在第三分钟获取的请求数为290。
可以将获取的请求数存储到指定数据库。
所述指定数据库可以是时间序列数据库(即时序数据库),例如OpenTSDB、nfluxDB。时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。
OpenTSDB是基于Hbase的分布式的、可伸缩的时间序列数据库。存储到OpenTSDB的数据,是以metric为单位的,metric就是1个监控项,例如请求数。OpenTSDB使用HBase作为存储,由于有良好的设计,因此对metric的数据存储支持到秒级别。OpenTSDB支持数据永久存储,即保存的数据不会主动删除;并且原始数据会一直保存(有些监控系统会将较久之前的数据聚合之后保存)。
InfluxDB是一个开源分布式时序、事件和指标数据库。InfluxDB使用Go语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。InfluxDB有三大特性:1.TimeSeries(时间序列):可以使用与时间有关的相关函数(如最大,最小,求和等);2.Metrics(度量):可以实时对大量数据进行计算;3.Eevents(事件):支持任意的事件数据。
步骤103,根据所述请求数计算所述应用实例对应的吞吐量。
吞吐量是指单位时间内处理用户的请求数。在本实施例中,所述吞吐量可以是每分钟处理的请求数。在其他的实施例中,所述吞吐量可以是其他单位时间(例如每秒或者每小时)处理的请求数。
在本实施例中,可以根据相邻时间获取的请求数计算所述吞吐量。例如,在第1分钟获取的请求数为100,在第2分钟获取的请求数为200,则第2分钟的吞吐量为(200-100)/1=100/分。
步骤104,输出所述吞吐量。
可以生成监控信息展示界面,在所述监控信息展示界面中展示所述吞吐量。
如果所述计算机装置中运行的应用程序的应用实例为多个,可以得到多个应用实例的吞吐量。可以对多个应用实例的吞吐量进行排序,显示排序后的多个应用实例的吞吐量。例如,可以按照从大到小,或者按照从小到大的顺序显示多应用实例的吞吐量。
可以通过图表展示所述应用实例的吞吐量。所述图表可以包括折线图、面积图、热力图、饼图、表格等。
在一具体实施例中,可以通过Grafana展示所述应用实例的吞吐量。可以通过Grafana的采集agent,传送所述CPU使用率到Grafana平台展示。
Grafana是一个可视化面板(Dashboard),支持各种图表和布局展示,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。Grafana具有以下特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;支持多个数据源。
或者,可以通过Highcharts展示所述应用实例的吞吐量。
Highcharts是一个用纯JavaScript编写的一个图表库。Highcharts能够很简单便捷的在web网站或是web应用程序添加有交互性的图表。Highcharts支持监控平台的各种图例。
步骤105,判断所述吞吐量是否满足预设调整条件。
可以判断所述吞吐量是否大于或等于第一预设吞吐量。
判断所述吞吐量是否大于或等于第一预设吞吐量是为了确定应用程序的负载是否过大或增长。所述第一预设吞吐量可以是预设大小的吞吐量,例如最大吞吐量阈值,如110/分。所述第一预设吞吐量也可以是预设时间的吞吐量(例如上周同一时间的吞吐量)或者预设时间的吞吐量的第一相对值(例如上周同一时间的吞吐量的110%)。若所述吞吐量大于或等于第一预设吞吐量,则应用程序的负载过大或增长。例如,若所述吞吐量大于或等于所述最大吞吐量阈值,则应用程序的负载过大,例如由于业务增长导致请求数突增。又如,若所述吞吐量大于或等于所述预设时间的吞吐量或预设时间的吞吐量的第一相对值,则应用程序的负载增长。
在一具体实施例中,为了防止误操作,在判断所述吞吐量大于或等于第一预设吞吐量时,还可以判断所述吞吐量是否小于或等于第三预设值,即判断所述吞吐量是否大于或等于第一预设吞吐量且小于或等于第三预设值(所述第一预设吞吐量与第三预设值确定第一取值区间),例如大于或等于110/分且小于或等于120/分。若所述吞吐量大于或等于第一预设吞吐量且小于或等于第三预设值,则执行下一步骤,即调整所述应用程序的应用实例(对应于增加所述应用程序的应用实例)。若所述吞吐量大于第三预设值,则不执行下一步骤。
或者,可以判断所述吞吐量是否小于或等于第二预设吞吐量。
判断所述吞吐量是否小于或等于第二预设吞吐量是为了确定应用程序的负载是否过小或减少。所述第二预设吞吐量可以是预设大小的吞吐量,例如最小吞吐量阈值,如90/分。所述第二预设吞吐量也可以是预设时间的吞吐量(例如上周同一时间的吞吐量)或预设时间的吞吐量的第二相对值(例如上周同一时间的吞吐量的90%)。若所述吞吐量小于或等于第二预设吞吐量,则应用程序的负载过小或减少,容易造成系统资源浪费。
在一具体实施例中,为了防止误操作,在判断所述吞吐量是否小于或等于第二预设吞吐量时,还可以判断所述吞吐量是否大于或等于第四预设值,即判断所述吞吐量是否小于或等于第二预设吞吐量且大于或等于第四预设值(所述第二预设吞吐量与第四预设值确定第二取值区间),例如小于或等于90/分且大于或等于80/分。若所述吞吐量小于或等于第二预设吞吐量且大于或等于第四预设值,则执行下一步骤,即调整所述应用程序的应用实例(对应于减少所述应用程序的应用实例)。若所述吞吐量小于第四预设值,则不执行下一步骤。例如,若所述吞吐量为0,则不执行下一步骤。此时应用程序出现异常卡死,导致无法提供服务。
步骤106,若所述吞吐量满足预设调整条件,则调整所述应用程序的应用实例。
在本实施例中,若所述吞吐量大于或等于第一预设吞吐量,则增加所述应用程序的应用实例。
若所述吞吐量大于或等于第一预设吞吐量,可以增加所述应用程序的应用实例,以处理过高的负载。例如,若所述吞吐量大于大于或等于最大吞吐量阈值,则增加所述应用程序的应用实例。可以根据应用程序的实际业务量增加所述应用程序的应用实例。
在本实施例中,为了排除应用程序异常导致的吞吐量增长,若所述吞吐量大于或等于第一预设吞吐量,可以采集所述应用程序的线程运行信息,根据所述线程运行信息判断所述应用程序的运行是否异常。或者,可以获取所述应用程序的应用日志,根据应用日志分判断所述应用程序的运行是否异常。若根据线程运行信息或应用日志判断应用程序无异常(即吞吐量正常增长),则增加所述应用程序的应用实例。否则,若根据线程运行信息或应用日志判断应用程序异常(即吞吐量异常增长),则对应用程序进行修改/优化。例如,若应用程序的功能出现死循环调用导致吞吐量突增,则修改应用程序的相应代码。
若所述吞吐量小于或等于第二预设吞吐量,则减少所述应用程序的应用实例。
若所述吞吐量小于或等于第二预设吞吐量,可以减少所述应用程序的应用实例,以避免系统资源浪费。例如,若所述吞吐量小于或等于最小吞吐量阈值,则减少所述应用程序的应用实例。可以根据应用程序的实际业务量减少所述应用程序的应用实例。
在本实施例中,为了排除应用程序异常导致的吞吐量减小,若所述吞吐量小于或等于第二预设吞吐量,可以采集所述应用程序的线程运行信息,根据所述线程运行信息判断所述应用程序的运行是否异常。或者,可以获取所述应用程序的应用日志,根据应用日志判断所述应用程序的运行是否异常。若根据线程运行信息或应用日志判断应用程序无异常(即吞吐量正常减小),则减少所述应用程序的应用实例。否则,若根据线程运行信息或应用日志判断应用程序异常(即吞吐量异常减小),则对应用程序进行修改/优化。例如,吞吐量为0时应用程序出现异常卡死,导致无法提供服务。这种情况下,可以根据线程运行信息或应用日志分析应用程序卡死的原因,对应用程序进行修改/优化。
实施例一的应用程序监控方法应用程序监控方法,获取计算机装置当前运行的应用程序的应用实例的实例名称;根据所述实例名称获取所述应用实例处理的请求数;根据所述请求数计算所述应用实例对应的吞吐量;输出所述吞吐量;判断所述吞吐量是否满足预设调整条件;若所述吞吐量满足预设调整条件,则调整所述应用程序的应用实例。实施例一可以针对应用程序的每个应用实例获取对应的吞吐量,根据吞吐量的大小进行相应处理,避免了请求过多造成应用程序不稳定甚至卡死,也避免了请求过少造成系统资源的浪费,提高了应用程序性能。
在另一实施例中,所述应用程序监控方法还可以包括:判断所述吞吐量是否满足预设报警条件(例如所述吞吐量大于最大吞吐量报警阈值或所述吞吐量小于最小吞吐量报警阈值),若所述吞吐量满足预设报警条件,则进行报警。可以通过发出警报声、显示报警画面、发送报警消息、发送报警邮件等方式进行报警。
实施例二
图2为本发明实施例二提供的应用程序监控装置的结构图。如图2所示,所述应用程序监控装置10可以包括:第一获取单元201、第二获取单元202、计算单元203、输出单元204、判断单元205、调整单元206。
第一获取单元201,用于获取计算机装置当前运行的应用程序的应用实例的实例名称。
计算机装置可以运行一个应用程序,也可以运行多个应用程序。所述应用程序可以是java应用程序。
应用程序的每个应用实例对应应用程序的一个进程。
在本实施例中,可以从应用程序的环境配置文件(例如env文件)中获取应用实例的实例名称。例如,读取应用程序的环境配置文件,从读取的环境配置文件中获取应用实例的实例名称,例如为spri_lcloud-rmp-prd-ins9740。
第二获取单元202,还用于根据所述实例名称获取所述应用实例处理的请求数。
在一具体实施例中,所述应用程序是java应用程序,可以通过调用connection接口获取所述应用实例处理的请求数。通过调用connection接口获取的请求数是累加的请求数。例如,在第一时间获取到第一请求数,在第一时间之后的第二时间获取到第二请求数,该第二请求数为第一请求数与第一时间到第二时间内处理的请求数之和。
可以按照预设时间间隔(例如一分钟)获取所述请求数。例如,在第1分钟获取的请求数为100,在第2分钟获取的请求数为200,在第三分钟获取的请求数为290。
可以将获取的请求数存储到指定数据库。
所述指定数据库可以是时间序列数据库(即时序数据库),例如OpenTSDB、nfluxDB。时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。
OpenTSDB是基于Hbase的分布式的、可伸缩的时间序列数据库。存储到OpenTSDB的数据,是以metric为单位的,metric就是1个监控项,例如请求数。OpenTSDB使用HBase作为存储,由于有良好的设计,因此对metric的数据存储支持到秒级别。OpenTSDB支持数据永久存储,即保存的数据不会主动删除;并且原始数据会一直保存(有些监控系统会将较久之前的数据聚合之后保存)。
InfluxDB是一个开源分布式时序、事件和指标数据库。InfluxDB使用Go语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。InfluxDB有三大特性:1.TimeSeries(时间序列):可以使用与时间有关的相关函数(如最大,最小,求和等);2.Metrics(度量):可以实时对大量数据进行计算;3.Eevents(事件):支持任意的事件数据。
计算单元203,用于根据所述请求数计算所述应用实例对应的吞吐量。
吞吐量是指单位时间内处理用户的请求数。在本实施例中,所述吞吐量可以是每分钟处理的请求数。在其他的实施例中,所述吞吐量可以是其他单位时间(例如每秒或者每小时)处理的请求数。
在本实施例中,可以根据相邻时间获取的请求数计算所述吞吐量。例如,在第1分钟获取的请求数为100,在第2分钟获取的请求数为200,则第2分钟的吞吐量为(200-100)/1=100/分。
输出单元204,用于输出所述吞吐量。
可以生成监控信息展示界面,在所述监控信息展示界面中展示所述吞吐量。
如果所述计算机装置中运行的应用程序的应用实例为多个,可以得到多个应用实例的吞吐量。可以对多个应用实例的吞吐量进行排序,显示排序后的多个应用实例的吞吐量。例如,可以按照从大到小,或者按照从小到大的顺序显示多应用实例的吞吐量。
可以通过图表展示所述应用实例的吞吐量。所述图表可以包括折线图、面积图、热力图、饼图、表格等。
在一具体实施例中,可以通过Grafana展示所述应用实例的吞吐量。可以通过Grafana的采集agent,传送所述CPU使用率到Grafana平台展示。
Grafana是一个可视化面板(Dashboard),支持各种图表和布局展示,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。Grafana具有以下特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;支持多个数据源。
或者,可以通过Highcharts展示所述应用实例的吞吐量。
Highcharts是一个用纯JavaScript编写的一个图表库。Highcharts能够很简单便捷的在web网站或是web应用程序添加有交互性的图表。Highcharts支持监控平台的各种图例。
判断单元205,用于判断所述吞吐量是否满足预设调整条件。
可以判断所述吞吐量是否大于或等于第一预设吞吐量。
判断所述吞吐量是否大于或等于第一预设吞吐量是为了确定应用程序的负载是否过大或增长。所述第一预设吞吐量可以是预设大小的吞吐量,例如最大吞吐量阈值,如110/分。所述第一预设吞吐量也可以是预设时间的吞吐量(例如上周同一时间的吞吐量)或者预设时间的吞吐量的第一相对值(例如上周同一时间的吞吐量的110%)。若所述吞吐量大于或等于第一预设吞吐量,则应用程序的负载过大或增长。例如,若所述吞吐量大于或等于所述最大吞吐量阈值,则应用程序的负载过大,例如由于业务增长导致请求数突增。又如,若所述吞吐量大于或等于所述预设时间的吞吐量或预设时间的吞吐量的第一相对值,则应用程序的负载增长。
在一具体实施例中,为了防止误操作,在判断所述吞吐量大于或等于第一预设吞吐量时,还可以判断所述吞吐量是否小于或等于第三预设值,即判断所述吞吐量是否大于或等于第一预设吞吐量且小于或等于第三预设值(所述第一预设吞吐量与第三预设值确定第一取值区间),例如大于或等于110/分且小于或等于120/分。若所述吞吐量大于或等于第一预设吞吐量且小于或等于第三预设值,则执行下一步骤,即调整所述应用程序的应用实例(对应于增加所述应用程序的应用实例)。若所述吞吐量大于第三预设值,则不执行下一步骤。
或者,可以判断所述吞吐量是否小于或等于第二预设吞吐量。
判断所述吞吐量是否小于或等于第二预设吞吐量是为了确定应用程序的负载是否过小或减少。所述第二预设吞吐量可以是预设大小的吞吐量,例如最小吞吐量阈值,如90/分。所述第二预设吞吐量也可以是预设时间的吞吐量(例如上周同一时间的吞吐量)或预设时间的吞吐量的第二相对值(例如上周同一时间的吞吐量的90%)。若所述吞吐量小于或等于第二预设吞吐量,则应用程序的负载过小或减少,容易造成系统资源浪费。
在一具体实施例中,为了防止误操作,在判断所述吞吐量是否小于或等于第二预设吞吐量时,还可以判断所述吞吐量是否大于或等于第四预设值,即判断所述吞吐量是否小于或等于第二预设吞吐量且大于或等于第四预设值(所述第二预设吞吐量与第四预设值确定第二取值区间),例如小于或等于90/分且大于或等于80/分。若所述吞吐量小于或等于第二预设吞吐量且大于或等于第四预设值,则执行下一步骤,即调整所述应用程序的应用实例(对应于减少所述应用程序的应用实例)。若所述吞吐量小于第四预设值,则不执行下一步骤。例如,若所述吞吐量为0,则不执行下一步骤。此时应用程序出现异常卡死,导致无法提供服务。
调整单元206,用于若所述吞吐量满足预设调整条件,则调整所述应用程序的应用实例。
在本实施例中,若所述吞吐量大于或等于第一预设吞吐量,则增加所述应用程序的应用实例。
若所述吞吐量大于或等于第一预设吞吐量,可以增加所述应用程序的应用实例,以处理过高的负载。例如,若所述吞吐量大于大于或等于最大吞吐量阈值,则增加所述应用程序的应用实例。可以根据应用程序的实际业务量增加所述应用程序的应用实例。
在本实施例中,为了排除应用程序异常导致的吞吐量增长,若所述吞吐量大于或等于第一预设吞吐量,可以采集所述应用程序的线程运行信息,根据所述线程运行信息判断所述应用程序的运行是否异常。或者,可以获取所述应用程序的应用日志,根据应用日志分判断所述应用程序的运行是否异常。若根据线程运行信息或应用日志判断应用程序无异常(即吞吐量正常增长),则增加所述应用程序的应用实例。否则,若根据线程运行信息或应用日志判断应用程序异常(即吞吐量异常增长),则对应用程序进行修改/优化。例如,若应用程序的功能出现死循环调用导致吞吐量突增,则修改应用程序的相应代码。
若所述吞吐量小于或等于第二预设吞吐量,则减少所述应用程序的应用实例。
若所述吞吐量小于或等于第二预设吞吐量,可以减少所述应用程序的应用实例,以避免系统资源浪费。例如,若所述吞吐量小于或等于最小吞吐量阈值,则减少所述应用程序的应用实例。可以根据应用程序的实际业务量减少所述应用程序的应用实例。
在本实施例中,为了排除应用程序异常导致的吞吐量减小,若所述吞吐量小于或等于第二预设吞吐量,可以采集所述应用程序的线程运行信息,根据所述线程运行信息判断所述应用程序的运行是否异常。或者,可以获取所述应用程序的应用日志,根据应用日志判断所述应用程序的运行是否异常。若根据线程运行信息或应用日志判断应用程序无异常(即吞吐量正常减小),则减少所述应用程序的应用实例。否则,若根据线程运行信息或应用日志判断应用程序异常(即吞吐量异常减小),则对应用程序进行修改/优化。例如,吞吐量为0时应用程序出现异常卡死,导致无法提供服务。这种情况下,可以根据线程运行信息或应用日志分析应用程序卡死的原因,对应用程序进行修改/优化。
实施例二的应用程序监控装置10应用程序监控方法,获取计算机装置当前运行的应用程序的应用实例的实例名称;根据所述实例名称获取所述应用实例处理的请求数;根据所述请求数计算所述应用实例对应的吞吐量;输出所述吞吐量;判断所述吞吐量是否满足预设调整条件;若所述吞吐量满足预设调整条件,则调整所述应用程序的应用实例。实施例二可以针对应用程序的每个应用实例获取对应的吞吐量,根据吞吐量的大小进行相应处理,避免了请求过多造成应用程序不稳定甚至卡死,也避免了请求过少造成系统资源的浪费,提高了应用程序性能。
在另一实施例中,所述应用程序监控装置10还可以包括:报警单元,用于判断所述吞吐量是否满足预设报警条件(例如所述吞吐量大于最大吞吐量报警阈值或所述吞吐量小于最小吞吐量报警阈值),若所述吞吐量满足预设报警条件,则进行报警。可以通过发出警报声、显示报警画面、发送报警消息、发送报警邮件等方式进行报警。
实施例三
本实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述应用程序监控方法实施例中的步骤,例如图1所示的步骤101-106:
步骤101,获取计算机装置当前运行的应用程序的应用实例的实例名称;
步骤102,根据所述实例名称获取所述应用实例处理的请求数;
步骤103,根据所述请求数计算所述应用实例对应的吞吐量;
步骤104,输出所述吞吐量;
步骤105,判断所述吞吐量是否满足预设调整条件;
步骤106,若所述吞吐量满足预设调整条件,则调整所述应用程序的应用实例。
或者,该计算机程序被处理器执行时实现上述装置实施例中各模块/单元的功能,例如图2中的单元201-206:
第一获取单元201,用于获取计算机装置当前运行的应用程序的应用实例的实例名称;
第二获取单元202,用于根据所述实例名称获取所述应用实例处理的请求数;
计算单元203,用于根据所述请求数计算所述应用实例对应的吞吐量;
输出单元204,用于输出所述吞吐量;
判断单元205,用于判断所述吞吐量是否满足预设调整条件;
调整单元206,用于若所述吞吐量满足预设调整条件,则调整所述应用程序的应用实例。
实施例四
图3为本发明实施例四提供的计算机装置的示意图。所述计算机装置1包括存储器20、处理器30以及存储在所述存储器20中并可在所述处理器30上运行的计算机程序40,例如应用程序监控程序。所述处理器30执行所述计算机程序40时实现上述应用程序监控方法实施例中的步骤,例如图1所示的步骤101-106:
步骤101,获取计算机装置当前运行的应用程序的应用实例的实例名称;
步骤102,根据所述实例名称获取所述应用实例处理的请求数;
步骤103,根据所述请求数计算所述应用实例对应的吞吐量;
步骤104,输出所述吞吐量;
步骤105,判断所述吞吐量是否满足预设调整条件;
步骤106,若所述吞吐量满足预设调整条件,则调整所述应用程序的应用实例。
或者,所述处理器30执行所述计算机程序40时实现上述装置实施例中各模块/单元的功能,例如图2中的单元201-206:
第一获取单元201,用于获取计算机装置当前运行的应用程序的应用实例的实例名称;
第二获取单元202,用于根据所述实例名称获取所述应用实例处理的请求数;
计算单元203,用于根据所述请求数计算所述应用实例对应的吞吐量;
输出单元204,用于输出所述吞吐量;
判断单元205,用于判断所述吞吐量是否满足预设调整条件;
调整单元206,用于若所述吞吐量满足预设调整条件,则调整所述应用程序的应用实例。
示例性的,所述计算机程序40可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器30执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序40在所述计算机装置1中的执行过程。例如,所述计算机程序40可以被分割成图2中的第一获取单元201、第二获取单元202、计算单元203、输出单元204、判断单元205、调整单元206,各单元具体功能参见实施例二。
所述计算机装置1可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。本领域技术人员可以理解,所述示意图3仅仅是计算机装置1的示例,并不构成对计算机装置1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置1还可以包括输入输出设备、网络接入设备、总线等。
所称处理器30可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器30也可以是任何常规的处理器等,所述处理器30是所述计算机装置1的控制中心,利用各种接口和线路连接整个计算机装置1的各个部分。
所述存储器20可用于存储所述计算机程序40和/或模块/单元,所述处理器30通过运行或执行存储在所述存储器20内的计算机程序和/或模块/单元,以及调用存储在存储器20内的数据,实现所述计算机装置1的各种功能。所述存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机装置1的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述计算机装置1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在本发明所提供的几个实施例中,应该理解到,所揭露的计算机装置和方法,可以通过其它的方式实现。例如,以上所描述的计算机装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。计算机装置权利要求中陈述的多个单元或计算机装置也可以由同一个单元或计算机装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种应用程序监控方法,其特征在于,所述方法包括:
获取计算机装置当前运行的应用程序的应用实例的实例名称;
根据所述实例名称获取所述应用实例处理的请求数;
根据所述请求数计算所述应用实例对应的吞吐量;
输出所述吞吐量;
判断所述吞吐量是否满足预设调整条件;
若所述吞吐量满足预设调整条件,则调整所述应用程序的应用实例。
2.如权利要求1所述的方法,其特征在于,所述获取计算机装置当前运行的应用程序的应用实例的实例名称包括:
从所述应用程序的环境配置文件中获取所述实例名称。
3.如权利要求1所述的方法,其特征在于,所述根据所述实例名称获取所述应用实例处理的请求数包括:
通过调用connection接口获取所述请求数。
4.如权利要求1所述的方法,其特征在于,所述调整所述应用程序的应用实例之前,所述方法还包括:
采集所述应用程序的线程运行信息,根据所述线程运行信息判断所述应用程序的运行是否异常;或者
获取所述应用程序的应用日志,根据所述应用日志判断所述应用程序的运行是否异常。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
判断所述吞吐量是否满足预设报警条件,若所述吞吐量满足预设报警条件,则进行报警。
6.如权利要求1所述的方法,其特征在于,所述若所述吞吐量满足预设调整条件,则调整所述应用程序的应用实例包括:
若所述吞吐量大于或等于第一预设吞吐量,则增加所述应用程序的应用实例;和/或
若所述吞吐量小于或等于第二预设吞吐量,则减少所述应用程序的应用实例。
7.如权利要求1所述的方法,其特征在于,所述输出所述吞吐量包括:
通过Grafana展示所述吞吐量;或者
通过Highcharts展示所述吞吐量。
8.一种应用程序监控装置,其特征在于,所述装置包括:
第一获取单元,用于获取计算机装置当前运行的应用程序的应用实例的实例名称;
第二获取单元,用于根据所述实例名称获取所述应用实例处理的请求数;
计算单元,用于根据所述请求数计算所述应用实例对应的吞吐量;
输出单元,用于输出所述吞吐量;
判断单元,用于判断所述吞吐量是否满足预设调整条件;
调整单元,用于若所述吞吐量满足预设调整条件,则调整所述应用程序的应用实例。
9.一种计算机装置,其特征在于:所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1-7中任一项所述应用程序监控方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述应用程序监控方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811142609.7A CN109144838A (zh) | 2018-09-28 | 2018-09-28 | 应用程序监控方法及装置、计算机装置及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811142609.7A CN109144838A (zh) | 2018-09-28 | 2018-09-28 | 应用程序监控方法及装置、计算机装置及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109144838A true CN109144838A (zh) | 2019-01-04 |
Family
ID=64813356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811142609.7A Pending CN109144838A (zh) | 2018-09-28 | 2018-09-28 | 应用程序监控方法及装置、计算机装置及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144838A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110473113A (zh) * | 2019-07-08 | 2019-11-19 | 中国平安人寿保险股份有限公司 | 基于disruptor提高业务系统吞吐量方法、装置及介质、服务器 |
CN113923132A (zh) * | 2021-09-23 | 2022-01-11 | 深信服科技股份有限公司 | 数据提醒方法、装置、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9264338B1 (en) * | 2013-04-08 | 2016-02-16 | Sprint Communications Company L.P. | Detecting upset conditions in application instances |
CN106452818A (zh) * | 2015-08-13 | 2017-02-22 | 阿里巴巴集团控股有限公司 | 一种资源调度的方法和系统 |
CN107404417A (zh) * | 2017-07-25 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种监控数据的处理方法、处理装置及处理系统 |
CN107688535A (zh) * | 2017-08-15 | 2018-02-13 | 武汉斗鱼网络科技有限公司 | 一种移动设备app性能数据显示方法及装置 |
CN108021485A (zh) * | 2016-11-04 | 2018-05-11 | 北大方正集团有限公司 | 应用程序运行状态的监控方法及装置 |
CN108153651A (zh) * | 2016-12-06 | 2018-06-12 | 阿里巴巴集团控股有限公司 | 卡慢异常定位方法、电子设备及系统 |
-
2018
- 2018-09-28 CN CN201811142609.7A patent/CN109144838A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9264338B1 (en) * | 2013-04-08 | 2016-02-16 | Sprint Communications Company L.P. | Detecting upset conditions in application instances |
CN106452818A (zh) * | 2015-08-13 | 2017-02-22 | 阿里巴巴集团控股有限公司 | 一种资源调度的方法和系统 |
CN108021485A (zh) * | 2016-11-04 | 2018-05-11 | 北大方正集团有限公司 | 应用程序运行状态的监控方法及装置 |
CN108153651A (zh) * | 2016-12-06 | 2018-06-12 | 阿里巴巴集团控股有限公司 | 卡慢异常定位方法、电子设备及系统 |
CN107404417A (zh) * | 2017-07-25 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种监控数据的处理方法、处理装置及处理系统 |
CN107688535A (zh) * | 2017-08-15 | 2018-02-13 | 武汉斗鱼网络科技有限公司 | 一种移动设备app性能数据显示方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110473113A (zh) * | 2019-07-08 | 2019-11-19 | 中国平安人寿保险股份有限公司 | 基于disruptor提高业务系统吞吐量方法、装置及介质、服务器 |
CN110473113B (zh) * | 2019-07-08 | 2024-04-09 | 中国平安人寿保险股份有限公司 | 基于disruptor提高业务系统吞吐量方法、装置及介质、服务器 |
CN113923132A (zh) * | 2021-09-23 | 2022-01-11 | 深信服科技股份有限公司 | 数据提醒方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542714A (zh) | 应用程序监控方法及装置、计算机装置及计算机存储介质 | |
CN109840142B (zh) | 基于云监控的线程控制方法、装置、电子设备及存储介质 | |
US7912949B2 (en) | Systems and methods for recording changes to a data store and propagating changes to a client application | |
CN109815007A (zh) | 基于云监控的线程控制方法、装置、电子设备及存储介质 | |
CN109104336A (zh) | 服务请求处理方法、装置、计算机设备及存储介质 | |
CN109669837A (zh) | 设备状态预警方法、系统、计算机装置及可读存储介质 | |
CN112269830A (zh) | 大数据分析方法、系统、计算机设备及其存储介质 | |
CN109840141A (zh) | 基于云监控的线程控制方法、装置、电子设备及存储介质 | |
CN109753243A (zh) | 副本部署方法、云服务器及存储介质 | |
CN109144838A (zh) | 应用程序监控方法及装置、计算机装置及计算机存储介质 | |
CA3150345A1 (en) | Method and system for patient flow | |
CN109800261A (zh) | 双数据库连接池的动态控制方法、装置及相关设备 | |
CN113987086A (zh) | 数据处理方法、数据处理装置、电子设备以及存储介质 | |
CN109800124A (zh) | Cpu使用率监控方法、装置、电子设备及存储介质 | |
CN114693226A (zh) | 审批流程构建方法、装置、设备以及存储介质 | |
CN104331405B (zh) | 数据报表的处理方法及装置 | |
CN109634812A (zh) | Linux系统的进程CPU占用率控制方法、终端设备及存储介质 | |
CN109637640A (zh) | 一种超时智能转诊方法、系统、计算机设备及可读介质 | |
CN109684059A (zh) | 用于监控数据的方法及装置 | |
CN115373960A (zh) | 一种数据库查询性能分析方法、装置及存储介质 | |
CN113242148B (zh) | 监控告警相关信息的生成方法、装置、介质及电子设备 | |
CN115187364A (zh) | 银行分布式场景下保证金风险监控的方法及装置 | |
CN109828885B (zh) | RocketMQ内存监控方法、装置、电子设备及存储介质 | |
CN109766238B (zh) | 基于session数的运维平台性能监控方法、装置及相关设备 | |
CN114841670A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190104 |