CN107179975A - 监控方法和装置 - Google Patents
监控方法和装置 Download PDFInfo
- Publication number
- CN107179975A CN107179975A CN201610133234.2A CN201610133234A CN107179975A CN 107179975 A CN107179975 A CN 107179975A CN 201610133234 A CN201610133234 A CN 201610133234A CN 107179975 A CN107179975 A CN 107179975A
- Authority
- CN
- China
- Prior art keywords
- goal approach
- time
- mentioned
- amplification
- execution time
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Alarm Systems (AREA)
Abstract
本申请公开了监控方法和装置。所述监控方法的一具体实施方式包括:监测目标方法是否被调用;响应于所述目标方法被调用,在执行所述目标方法的同时并行执行以下监控步骤:定时获取所述目标方法的已执行时间以及预存的执行时间基线值,其中,所述执行时间基线值是定时地根据在刚过去的预定时间段内收集到并保存的所述目标方法的执行时间确定并保存的;基于所述已执行时间与所述执行时间基线值的比较,确定所述目标方法是否出现异常情况;如果确定所述目标方法出现异常情况,则发送告警信息,所述告警信息包括所述已执行时间。该实施方式实现了动态判断方法的执行时间是否正常,并且能够在方法执行过程中及时记录异常信息并发出告警信息。
Description
技术领域
本申请涉及计算机技术领域,具体涉及应用软件技术领域,尤其涉及监控方法和装置。
背景技术
随着互联网的迅速发展,越来越多的用户在终端设备上安装并使用各种应用。应用上线后,用户使用过程中,可能由于部分方法(函数)执行时间过长,造成整体应用无法正常服务。因此需要在应用上线后对方法的执行效率等参数进行监控,以防止应用异常。
目前,现有技术通常采用如下方案对方法的执行效率等参数进行监控:在目标方法执行的头尾设置记录标记,并预设报警阀值;在目标方法执行完成后,获取并记录目标方法执行的开始结束时间以及执行时间等信息;通过对记录的信息进行定时统计,得到目标方法的执行时间等参数;通过统计出的信息与预设的阈值进行比较,超过阈值即发送提醒信息。
然而,对于应用访问量逐渐增大的趋势,现有技术不能动态判断方法的执行时间是否正常,需人工调整报警的相关阈值。此外,现有技术只能在目标方法执行完成后才获取目标的执行时间,在方法执行过程中不能及时记录异常信息并发出告警信息。
发明内容
本申请的目的在于提出一种监控方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种监控方法,所述方法包括:监测目标方法是否被调用;响应于所述目标方法被调用,在执行所述目标方法的同时并行执行以下监控步骤:定时获取所述目标方法的已执行时间以及预存的执行时间基线值,其中,所述执行时间基线值是定时地根据在刚过去的预定时间段内收集到并保存的所述目标方法的执行时间确定并保存的;基于所述已执行时间与所述执行时间基线值的比较,确定所述目标方法是否出现异常情况;如果确定所述目标方法出现异常情况,则发送告警信息,所述告警信息包括所述已执行时间。
在一些实施例中,所述基于所述已执行时间与所述执行时间基线值的比较,确定所述目标方法是否出现异常情况,包括:如果所述已执行时间超过时间告警阈值,则确定所述目标方法出现异常情况,其中所述时间告警阈值等于所述执行时间基线值乘以预设系数。
在一些实施例中,所述监控步骤还包括:定时获取预存的所述目标方法的并行执行数量以及并行数量基线值,其中,所述并行数量基线值是定时地根据在刚过去的所述预定时间段内收集到并保存的所述目标方法的并行执行数量确定并保存的;基于当前获取到的并行执行数量与所述并行数量基线值的比较,确定所述目标方法是否出现异常情况;如果确定所述目标方法出现异常情况,则发送所述告警信息;以及所述告警信息还包括所述当前获取到的并行执行数量。
在一些实施例中,所述监控步骤是在执行所述目标方法的同时通过线程池中新创建的线程并行执行的;以及所述方法还包括:在所述目标方法执行完成后,释放所述线程,并从所述线程池中删除所述线程;获取在线程池中监控所述目标方法的线程的数量;将预存的所述目标方法的并行执行数量更新为所述线程的数量,并保存所述目标方法的本次执行时间。
在一些实施例中,所述监控步骤还包括:记录传入所述目标方法的入口参数;以及所述告警信息还包括所述入口参数。
在一些实施例中,所述方法还包括:监测调用所述目标方法的应用所消耗的内存占用量以及所述内存占用量在第一预定时间长度内的增幅;如果所述增幅超过内存增幅阈值,则发出内存告警信息;其中,所述内存增幅阈值等于预存的内存增幅的基线值乘以预设系数,所述内存增幅的基线值是定时地根据在刚过去的预定时间段内收集到并保存的所述内存占用量在第二预定时间长度内的增幅确定并保存的;以及所述内存告警信息包括:所述内存占用量在第一预定时间长度内的增幅以及预存的在刚过去的预定时间段内所述应用所调用的各个方法的执行时间和并行执行数量。
第二方面,本申请提供了一种监控装置,所述装置包括:拦截单元,用于监测目标方法是否被调用;监控单元,用于响应于所述目标方法被调用,在执行所述目标方法的同时对所述方法进行监控,所述监控单元包括:获取子单元,用于定时获取所述目标方法的已执行时间以及预存的执行时间基线值,其中,所述执行时间基线值是定时地根据在刚过去的预定时间段内收集到并保存的所述目标方法的执行时间确定并保存的;异常确定子单元,用于基于所述已执行时间与所述执行时间基线值的比较,确定所述目标方法是否出现异常情况;告警子单元,用于在确定所述目标方法出现异常情况时,发送告警信息,所述告警信息包括所述已执行时间。
在一些实施例中,所述异常确定子单元还用于在所述已执行时间超过时间告警阈值时,确定所述目标方法出现异常情况,其中所述时间告警阈值等于所述执行时间基线值乘以预设系数。
在一些实施例中,所述获取子单元还用于定时获取预存的所述目标方法的并行执行数量以及并行数量基线值,其中,所述并行数量基线值是定时地根据在刚过去的所述预定时间段内收集到并保存的所述目标方法的并行执行数量确定并保存的;所述异常确定子单元还用于基于当前获取到的并行执行数量与所述并行数量基线值的比较,确定所述目标方法是否出现异常情况;以及所述告警信息还包括所述当前获取到的并行执行数量。
在一些实施例中,所述监控单元是在执行所述目标方法的同时并行通过线程池中新创建的线程调用的;以及所述装置还包括:线程释放单元,用于在所述目标方法执行完成后,释放所述线程,并从所述线程池中删除所述线程;线程数量获取单元,用于获取在线程池中监控所述目标方法的线程的数量;执行信息更新单元,用于将预存的所述目标方法的并行执行数量更新为所述线程的数量,并保存所述目标方法的本次执行时间。
在一些实施例中,所述监控单元还包括参数记录子单元,用于记录传入所述目标方法的入口参数;以及所述告警信息还包括所述入口参数。
在一些实施例中,所述装置还包括:内存监测单元,用于监测调用所述目标方法的应用所消耗的内存占用量以及所述内存占用量在第一预定时间长度内的增幅;内存告警单元,用于在所述增幅超过内存增幅阈值,发出内存告警信息;其中,所述内存增幅阈值等于预存的内存增幅的基线值乘以预设系数,所述内存增幅的基线值是定时地根据在刚过去的预定时间段内收集到并保存的所述内存占用量在第二预定时间长度内的增幅确定并保存的;以及所述内存告警信息包括:所述内存占用量在第一预定时间长度内的增幅以及预存的在刚过去的预定时间段内所述应用所调用的各个方法的执行时间和并行执行数量。
本申请提供的监控方法和装置,通过在执行目标方法的同时,并行地定时获取目标方法的已执行时间以及预存的定时地根据在刚过去的预定时间段内收集到并保存的目标方法的执行时间确定的执行时间基线值,并基于所述已执行时间与所述执行时间基线值的比较,确定所述目标方法是否出现异常情况,并在确定所述目标方法出现异常情况时发送告警信息,实现了动态判断方法的执行时间是否正常,无需人工调整报警的相关阈值,并且能够在方法执行过程中及时记录异常信息并发出告警信息。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的监控方法的一个实施例的流程图;
图3是根据本申请的监控方法的另一个实施例的流程图;
图4是根据本申请的监控装置的一个实施例的结构示意图;
图5是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的监控方法或监控装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以发送服务请求等。终端设备101、102、103上可以安装有各种客户端应用,例如购物类应用、搜索类应用、浏览器应用、社交平台软件等。
终端设备101、102、103可以是支持安装应用和信息通信的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上的购物类应用、搜索类应用等提供支持的数据库服务器或云服务器。服务器可以根据接收到的服务请求执行对应的服务方法以进行存储、分析等处理,并将处理结果反馈给终端设备。
需要说明的是,本申请实施例提供的监控方法通常由服务器105执行。相应地,监控装置通常设置于服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,图2示出了根据本申请的监控方法的一个实施例的流程200。
如图2所示,本实施例的监控方法包括以下步骤:
步骤201,监测目标方法是否被调用。
在本实施例中,监控方法运行于其上的电子设备(例如图1所示的服务器)可以通过用于方法前拦截的拦截器来监测目标方法是否被调用,如果拦截到目标方法,则监测到目标方法被调用。其中,以Java的Spring框架AOP(Aspect Oriented Programming,面向切面编程)为例,用于方法前拦截的拦截器可以是实现MethodBeforeAdvice接口的类。通过配置文件将拦截器和目标方法联系起来,即可以实现对目标方法的拦截。
步骤202,响应于上述目标方法被调用,在执行上述目标方法的同时并行对上述目标方法进行监控。
其中,步骤202包括以下监控步骤:
步骤2021,定时获取上述目标方法的已执行时间以及预存的执行时间基线值。
其中,上述执行时间基线值是定时地根据在刚过去的预定时间段内收集到并保存的上述目标方法的执行时间确定并保存的。
在本实施例中,服务器可以通过在监测到目标方法被调用时在线程池中新建一个单独的线程,通过该线程定时获取上述目标方法的已执行时间以及上述执行时间基线值。其中,上述执行时间基线值可以是定时地(例如每周一)根据在刚过去的预定时间段(例如一周)内收集到并保存的上述目标方法的执行时间计算得到的执行时间平均值;也可以是根据在刚过去的预定时间段内收集到并保存的上述目标方法的执行时间,通过预定预测算法(例如曲线拟合预存、灰色预测)得到的当前上述目标方法的预测执行时间。从而在后续可以对于应用访问量逐渐增大的趋势,动态判断方法的执行时间是否正常。其中,上述收集到并保存的上述目标方法的执行时间是预先在目标方法每次被调用且执行完成时收集到并保存的。
步骤2022,基于上述已执行时间与上述执行时间基线值的比较,确定上述目标方法是否出现异常情况。
在本实施例中,服务器可以通过确定上述已执行时间与上述执行时间基线值的之间的差值的绝对值是否大于预设的差异阈值来确定上述目标方法是否出现异常情况。
在本实施例的一些可选的实现方式中,步骤2022可以包括:如果上述已执行时间超过时间告警阈值,则确定上述目标方法出现异常情况。其中,上述时间告警阈值等于上述执行时间基线值乘以预设系数。
步骤2023,如果确定上述目标方法出现异常情况,则发送告警信息,上述告警信息包括上述已执行时间。
在本实施例中,服务器可以通过邮件的方式发送上述告警信息,还可以通过短信或其他及时通讯工具来发送上述告警信息。
在本实施例的一些可选的实现方式中,步骤202还可以包括:记录传入上述目标方法的入口参数。以及,上述告警信息还可以包括上述入口参数。其中,服务器可以根据配置文件或者入口参数所占空间的大小来确定是否记录上述入口参数,如果入口参数为包含多属性信息的大对象,为了减小对服务器性能的影响,可以不记录上述入口参数,反之,则可以记录上述入口参数。从而可以在确定上述目标方法出现异常情况时,将入口参数信息加入到发送的告警信息中,以使接收到告警信息的相关人员可以更快地定位和解决问题。
在本实施例的一些可选的实现方式中,本实施例提供的监控方法还可以包括:监测调用上述目标方法的应用所消耗的内存占用量以及上述内存占用量在第一预定时间长度内的增幅;如果上述增幅超过内存增幅阈值,则发出内存告警信息。其中,上述内存增幅阈值等于预存的内存增幅的基线值乘以预设系数,上述内存增幅的基线值是定时地根据在刚过去的预定时间段内收集到并保存的上述内存占用量在第二预定时间长度内的增幅确定并保存的。以及,上述内存告警信息可以包括:上述内存占用量在第一预定时间长度内的增幅以及预存的在刚过去的预定时间段内上述应用所调用的各个方法的执行时间和并行执行数量。其中,第一预定时间长度通常可以为较短的时间长度,例如:1秒。服务器一旦监测到上述内存占用量在第一预定时间长度内的增幅超过内存增幅阈值,就会发出内存告警信息。上述内存增幅的基线值可以是定时地根据在刚过去的预定时间段内收集到并保存的上述内存占用量在第二预定时间长度内的增幅计算到的平均内存增幅;也可以是定时地根据在刚过去的预定时间段内收集到并保存的上述内存占用量在第二预定时间长度内的增幅,通过预定预测算法(例如曲线拟合预存、灰色预测)得到的内存增幅预测值。上述第二预定时间长度可以是进行收集保存上述内存占用量的周期,可以由人工根据实际情况设定。
本实现方式通过在应用的内存占用突增时发送上述内存告警信息,使得接收到内存告警信息的相关技术人员可以及时对异常情况进行排查。同时,由于内存告警信息中包括在刚过去的预定时间段内上述应用所调用的各个方法的执行时间和并行执行数量等信息,使得相关技术人员可以更快地定位和解决问题。
在本实施例的一些可选的实现方式中,本实施例提供的监控方法还可以包括:在步骤201之后,响应于上述目标方法被调用,根据预设的抽样规则确定是否对上述目标方法进行监控;如果确定对上述目标方法进行监控,则执行步骤202。其中,上述抽样规则可以为预设的抽样比例(例如1/100,即在监测到上述目标方法被调用的100次中,随机对其中的1次调用的执行进行监控)。从而可以在对方法进行监控的同时,减轻服务器的压力。
本实施例提供的监控方法,通过在执行目标方法的同时,并行地定时获取上述目标方法的已执行时间以及预存的定时地根据在刚过去的预定时间段内收集到并保存的上述目标方法的执行时间确定的执行时间基线值,并基于上述已执行时间与上述执行时间基线值的比较,确定上述目标方法是否出现异常情况,并在确定上述目标方法出现异常情况时发送告警信息,实现了动态判断方法的执行时间是否正常,无需人工调整报警的相关阈值,并且能够在方法执行过程中及时记录异常信息并发出告警信息。
进一步参考图3,图3示出了根据本申请的监控方法的另一个实施例的流程300。
如图3所示,本实施例的监控方法包括以下步骤:
步骤301,监测目标方法是否被调用。
在本实施例中,步骤301的具体处理可参考图2对应实施例中步骤201的相关描述,在此不再赘述。
步骤302,响应于上述目标方法被调用,在执行上述目标方法的同时并行对上述目标方法进行监控。
其中,步骤302包括以下监控步骤:
步骤3021,定时获取上述目标方法的已执行时间、并行执行数量、预存的执行时间基线值以及并行数量基线值。
其中,上述执行时间基线值是定时地根据在刚过去的预定时间段内收集到并保存的上述目标方法的执行时间确定并保存的。上述并行数量基线值是定时地根据在刚过去的上述预定时间段内收集到并保存的上述目标方法的并行执行数量确定并保存的。
在本实施例中,定时获取上述目标方法的已执行时间和预存的执行时间基线值的具体处理可参考图2对应实施例中步骤2021的相关描述,在此不再赘述。
关于获取上述目标方法的并行执行数量和并行数量基线值,服务器可以在获取上述目标方法的已执行时间和预存的执行时间基线值的同时,通过当前监测上述目标方法的线程的数目获取上述并行执行数量;或者可以在预定存储介质中获取在每次监测到上述目标方法被调用时和方法执行完成时实时更新的并行执行数量。同时,服务器可以在预定存储介质中获取上述目标方法的并行数量基线值。其中,上述目标方法的并行数量基线值可以是定时地(例如每周一)根据在刚过去的预定时间段(例如一周)内收集到并保存的上述目标方法的并行执行数量计算得到的并行执行数量平均值;也可以是根据在刚过去的预定时间段内收集到并保存的上述目标方法的并行执行数量,通过预定预测算法得到的当前上述目标方法的预测并行执行数量。
步骤3022,基于上述已执行时间与上述执行时间基线值的比较,确定上述目标方法是否出现异常情况。
在本实施例中,步骤3022的具体处理可参考图2对应实施例中步骤2022的相关描述,在此不再赘述。
步骤3023,基于当前获取到的并行执行数量与上述并行数量基线值的比较,确定上述目标方法是否出现异常情况。
本实施例中,服务器可以通过确定上述并行执行数量与并行数量基线值的之间的差值的绝对值是否大于预设的差异阈值来确定上述目标方法是否出现异常情况。
在本实施例的一些可选的实现方式中,步骤3023可以包括:如果上述并行执行数量超过并行数量告警阈值,则确定上述目标方法出现异常情况。其中,上述并行数量告警阈值等于上述并行数量基线值乘以预设系数。
需要说明的是,步骤3023可以与步骤3022同时执行,也可以在步骤3022之前或者之后执行,本实施例不对其执行顺序进行限定。
步骤3024,如果确定上述目标方法出现异常情况,则发送告警信息,上述告警信息包括上述已执行时间和上述当前获取到的并行执行数量。
本实施例中,如果在步骤3022和步骤3023中的任一步骤中确定上述目标方法出现异常情况,则服务器可以通过邮件的方式发送上述告警信息,还可以通过短信或其他及时通讯工具来发送上述告警信息。
在本实施例的一些可选的实现方式中,步骤302可以是在执行上述目标方法的同时通过线程池中新创建的线程并行执行的。以及,本实施例提供的监控方法还可以包括:在上述目标方法执行完成后,释放上述线程,并从上述线程池中删除上述线程;获取在线程池中监控上述目标方法的线程的数量;将预存的上述目标方法的并行执行数量更新为上述线程的数量,并保存上述目标方法的本次执行时间。通过该实现方式,使服务器收集并保存到了离散的时间点的上述目标方法的执行时间和并行执行数量,从而可以根据上述离散的时间点的上述目标方法的执行时间和并行执行数量,计算上述目标方法的执行时间基线值以及并行数量基线值。
在本实施例的一些可选的实现方式中,本实施例提供的监控方法还可以包括:监测调用上述目标方法的应用所消耗的内存占用量以及上述内存占用量在第一预定时间长度内的增幅;如果上述增幅超过内存增幅阈值,则发出内存告警信息。其中,上述内存增幅阈值等于预存的内存增幅的基线值乘以预设系数,上述内存增幅的基线值是定时地根据在刚过去的预定时间段内收集到并保存的上述内存占用量在第二预定时间长度内的增幅确定并保存的;以及,上述内存告警信息包括上述内存占用量在第一预定时间长度内的增幅以及预存的在刚过去的预定时间段内上述应用所调用的各个方法的执行时间和并行执行数量。本实现方式的具体处理及其所带来的技术效果可参考图2对应实施例中相应实现方式的相关说明,在此不再赘述。
从图3中可以看出,与图2对应的实施例相比,本实施例中的监控方法的流程300增加了对目标方法的并行执行数量进行监控的步骤。由此,本实施例描述的方案可以更加全面地监控方法的异常情况,并在告警信息中提供更多的方法执行信息。
下面参考图4,作为对上述各图所示方法的实现,本申请提供了一种监控装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于服务器中。
如图4所示,本实施例提供的监控装置400包括:拦截单元401、监控单元402。其中,拦截单元401用于监测目标方法是否被调用;监控单元402用于响应于上述目标方法被调用,在执行上述目标方法的同时对上述方法进行监控,上述监控单元402包括:获取子单元4021,用于定时获取上述目标方法的已执行时间以及预存的执行时间基线值,其中,上述执行时间基线值是定时地根据在刚过去的预定时间段内收集到并保存的上述目标方法的执行时间确定并保存的;异常确定子单元4022,用于基于上述已执行时间与上述执行时间基线值的比较,确定上述目标方法是否出现异常情况;告警子单元4023,用于在确定上述目标方法出现异常情况时,发送告警信息,上述告警信息包括上述已执行时间。
在本实施例中,拦截单元401、获取子单元4021、异常确定子单元4022以及告警子单元4023的具体处理可分别参考图2对应实施例中步骤201、步骤2021、步骤2022、步骤2023的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,异常确定子单元4022还可以用于在上述已执行时间超过时间告警阈值时,确定上述目标方法出现异常情况,其中上述时间告警阈值等于上述执行时间基线值乘以预设系数。该实现方式的具体处理可参考图2对应实施例中步骤2022中的可选实现方式的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,上述获取子单元4021还可以用于定时获取预存的上述目标方法的并行执行数量以及并行数量基线值,其中,上述并行数量基线值是定时地根据在刚过去的上述预定时间段内收集到并保存的上述目标方法的并行执行数量确定并保存的。以上述异常确定子单元4022还可以用于基于当前获取到的并行执行数量与上述并行数量基线值的比较,确定上述目标方法是否出现异常情况。以及,上述告警信息还可以包括上述当前获取到的并行执行数量。该实现方式的具体处理可参考图3对应实施例中步骤3021、步骤3023和步骤3024中相应部分的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,监控单元402可以是在执行上述目标方法的同时并行通过线程池中新创建的线程调用的。以及,本实施例提供的监控装置400还可以包括:线程释放单元(图中未示出),用于在上述目标方法执行完成后,释放上述线程,并从上述线程池中删除上述线程;线程数量获取单元(图中未示出),用于获取在线程池中监控上述目标方法的线程的数量;执行信息更新单元(图中未示出),用于将预存的上述目标方法的并行执行数量更新为上述线程的数量,并保存上述目标方法的本次执行时间。该实现方式的具体处理可参考图3对应实施例中相应实现方式的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,监控单元402还可以包括参数记录子单元4024,用于记录传入上述目标方法的入口参数。以及,上述告警信息还可以包括上述入口参数。该实现方式的具体处理及其所带来的技术效果可参考图2对应实施例中相应实现方式的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,本实施例提供的监控装置400还可以包括:内存监测单元(图中未示出),用于监测调用上述目标方法的应用所消耗的内存占用量以及上述内存占用量在第一预定时间长度内的增幅;内存告警单元(图中未示出),用于在上述增幅超过内存增幅阈值,发出内存告警信息。其中,上述内存增幅阈值等于预存的内存增幅的基线值乘以预设系数,上述内存增幅的基线值是定时地根据在刚过去的预定时间段内收集到并保存的上述内存占用量在第二预定时间长度内的增幅确定并保存的;以及上述内存告警信息包括:上述内存占用量在第一预定时间长度内的增幅以及预存的在刚过去的预定时间段内上述应用所调用的各个方法的执行时间和并行执行数量。该实现方式的具体处理及其所带来的技术效果可参考图2对应实施例中相应实现方式的相关说明,在此不再赘述。
本实施例提供的监控装置,通过在执行目标方法的同时,通过获取子单元4021并行地定时获取上述目标方法的已执行时间以及预存的定时地根据在刚过去的预定时间段内收集到并保存的上述目标方法的执行时间确定的执行时间基线值,并通过异常确定子单元4022基于上述已执行时间与上述执行时间基线值的比较,确定上述目标方法是否出现异常情况,并在异常确定子单元4022确定上述目标方法出现异常情况时通过告警子单元4023发送告警信息,实现了动态判断方法的执行时间是否正常,无需人工调整报警的相关阈值,并且能够在方法执行过程中及时记录异常信息并发出告警信息。
下面参考图5,其示出了适于用来实现本申请实施例的服务器的计算机系统500的结构示意图。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分506加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括硬盘等的存储部分506;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分507。通信部分507经由诸如因特网的网络执行通信处理。驱动器508也根据需要连接至I/O接口605。可拆卸介质509,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器508上,以便于从其上读出的计算机程序根据需要被安装入存储部分506。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,上述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分507从网络上被下载和安装,和/或从可拆卸介质509被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括拦截单元、监控单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,拦截单元还可以被描述为“用于监测目标方法是否被调用的单元”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:监测目标方法是否被调用;响应于所述目标方法被调用,在执行所述目标方法的同时并行执行以下监控步骤:定时获取所述目标方法的已执行时间以及预存的执行时间基线值,其中,所述执行时间基线值是定时地根据在刚过去的预定时间段内收集到并保存的所述目标方法的执行时间确定并保存的;基于所述已执行时间与所述执行时间基线值的比较,确定所述目标方法是否出现异常情况;如果确定所述目标方法出现异常情况,则发送告警信息,所述告警信息包括所述已执行时间。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (12)
1.一种监控方法,其特征在于,所述方法包括:
监测目标方法是否被调用;
响应于所述目标方法被调用,在执行所述目标方法的同时并行执行以下监控步骤:
定时获取所述目标方法的已执行时间以及预存的执行时间基线值,其中,所述执行时间基线值是定时地根据在刚过去的预定时间段内收集到并保存的所述目标方法的执行时间确定并保存的;
基于所述已执行时间与所述执行时间基线值的比较,确定所述目标方法是否出现异常情况;
如果确定所述目标方法出现异常情况,则发送告警信息,所述告警信息包括所述已执行时间。
2.根据权利要求1所述的方法,其特征在于,所述基于所述已执行时间与所述执行时间基线值的比较,确定所述目标方法是否出现异常情况,包括:
如果所述已执行时间超过时间告警阈值,则确定所述目标方法出现异常情况,其中所述时间告警阈值等于所述执行时间基线值乘以预设系数。
3.根据权利要求1所述的方法,其特征在于,所述监控步骤还包括:
定时获取预存的所述目标方法的并行执行数量以及并行数量基线值,其中,所述并行数量基线值是定时地根据在刚过去的所述预定时间段内收集到并保存的所述目标方法的并行执行数量确定并保存的;
基于当前获取到的并行执行数量与所述并行数量基线值的比较,确定所述目标方法是否出现异常情况;
如果确定所述目标方法出现异常情况,则发送所述告警信息;以及
所述告警信息还包括所述当前获取到的并行执行数量。
4.根据权利要求3所述的方法,其特征在于,所述监控步骤是在执行所述目标方法的同时通过线程池中新创建的线程并行执行的;以及
所述方法还包括:
在所述目标方法执行完成后,释放所述线程,并从所述线程池中删除所述线程;
获取在线程池中监控所述目标方法的线程的数量;
将预存的所述目标方法的并行执行数量更新为所述线程的数量,并保存所述目标方法的本次执行时间。
5.根据权利要求1所述的方法,其特征在于,所述监控步骤还包括:记录传入所述目标方法的入口参数;以及
所述告警信息还包括所述入口参数。
6.根据权利要求1-5任一所述的方法,其特征在于,所述方法还包括:
监测调用所述目标方法的应用所消耗的内存占用量以及所述内存占用量在第一预定时间长度内的增幅;
如果所述增幅超过内存增幅阈值,则发出内存告警信息;
其中,所述内存增幅阈值等于预存的内存增幅的基线值乘以预设系数,所述内存增幅的基线值是定时地根据在刚过去的预定时间段内收集到并保存的所述内存占用量在第二预定时间长度内的增幅确定并保存的;以及
所述内存告警信息包括:所述内存占用量在第一预定时间长度内的增幅以及预存的在刚过去的预定时间段内所述应用所调用的各个方法的执行时间和并行执行数量。
7.一种监控装置,其特征在于,所述装置包括:
拦截单元,用于监测目标方法是否被调用;
监控单元,用于响应于所述目标方法被调用,在执行所述目标方法的同时对所述方法进行监控,所述监控单元包括:
获取子单元,用于定时获取所述目标方法的已执行时间以及预存的执行时间基线值,其中,所述执行时间基线值是定时地根据在刚过去的预定时间段内收集到并保存的所述目标方法的执行时间确定并保存的;
异常确定子单元,用于基于所述已执行时间与所述执行时间基线值的比较,确定所述目标方法是否出现异常情况;
告警子单元,用于在确定所述目标方法出现异常情况时,发送告警信息,所述告警信息包括所述已执行时间。
8.根据权利要求7所述的装置,其特征在于,所述异常确定子单元还用于在所述已执行时间超过时间告警阈值时,确定所述目标方法出现异常情况,其中所述时间告警阈值等于所述执行时间基线值乘以预设系数。
9.根据权利要求7所述的装置,其特征在于,所述获取子单元还用于定时获取预存的所述目标方法的并行执行数量以及并行数量基线值,其中,所述并行数量基线值是定时地根据在刚过去的所述预定时间段内收集到并保存的所述目标方法的并行执行数量确定并保存的;
所述异常确定子单元还用于基于当前获取到的并行执行数量与所述并行数量基线值的比较,确定所述目标方法是否出现异常情况;以及
所述告警信息还包括所述当前获取到的并行执行数量。
10.根据权利要求9所述的装置,其特征在于,所述监控单元是在执行所述目标方法的同时并行通过线程池中新创建的线程调用的;以及
所述装置还包括:
线程释放单元,用于在所述目标方法执行完成后,释放所述线程,并从所述线程池中删除所述线程;
线程数量获取单元,用于获取在线程池中监控所述目标方法的线程的数量;
执行信息更新单元,用于将预存的所述目标方法的并行执行数量更新为所述线程的数量,并保存所述目标方法的本次执行时间。
11.根据权利要求7所述的装置,其特征在于,所述监控单元还包括参数记录子单元,用于记录传入所述目标方法的入口参数;以及
所述告警信息还包括所述入口参数。
12.根据权利要求7-11任一所述的装置,其特征在于,所述装置还包括:
内存监测单元,用于监测调用所述目标方法的应用所消耗的内存占用量以及所述内存占用量在第一预定时间长度内的增幅;
内存告警单元,用于在所述增幅超过内存增幅阈值,发出内存告警信息;
其中,所述内存增幅阈值等于预存的内存增幅的基线值乘以预设系数,所述内存增幅的基线值是定时地根据在刚过去的预定时间段内收集到并保存的所述内存占用量在第二预定时间长度内的增幅确定并保存的;以及
所述内存告警信息包括:所述内存占用量在第一预定时间长度内的增幅以及预存的在刚过去的预定时间段内所述应用所调用的各个方法的执行时间和并行执行数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610133234.2A CN107179975A (zh) | 2016-03-09 | 2016-03-09 | 监控方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610133234.2A CN107179975A (zh) | 2016-03-09 | 2016-03-09 | 监控方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107179975A true CN107179975A (zh) | 2017-09-19 |
Family
ID=59830027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610133234.2A Pending CN107179975A (zh) | 2016-03-09 | 2016-03-09 | 监控方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107179975A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271290A (zh) * | 2018-07-27 | 2019-01-25 | 广州华多网络科技有限公司 | 一种监测线程使用率的方法、装置及存储装置 |
CN109739741A (zh) * | 2018-11-26 | 2019-05-10 | 北京网众共创科技有限公司 | 系统测试方法和装置、存储介质及电子装置 |
CN109800124A (zh) * | 2018-12-15 | 2019-05-24 | 中国平安人寿保险股份有限公司 | Cpu使用率监控方法、装置、电子设备及存储介质 |
CN110136400A (zh) * | 2019-03-29 | 2019-08-16 | 广州明珞汽车装备有限公司 | 一种电极帽更换报警方法和系统 |
CN110362459A (zh) * | 2019-06-18 | 2019-10-22 | 中国平安人寿保险股份有限公司 | 一种基于SpringAop的系统性能监控方法及装置、电子设备 |
CN110908850A (zh) * | 2018-09-14 | 2020-03-24 | 阿里巴巴集团控股有限公司 | 数据获取方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060026570A1 (en) * | 2004-08-02 | 2006-02-02 | Chan Hoi Y | Approach to monitor application states for self-managing systems |
CN101876938A (zh) * | 2009-11-11 | 2010-11-03 | 北京神州泰岳软件股份有限公司 | 一种基于消息队列的应用软件响应时间测量方法 |
CN103064776A (zh) * | 2011-10-21 | 2013-04-24 | 中国移动通信集团广西有限公司 | 一种性能监控方法及装置 |
CN103345440A (zh) * | 2013-06-05 | 2013-10-09 | 深圳天珑无线科技有限公司 | 电子设备累计运行时间的统计方法及装置、电子设备 |
CN103761474A (zh) * | 2014-01-24 | 2014-04-30 | 北京京东尚科信息技术有限公司 | 一种用于监控方法执行时间的监控方法和装置 |
CN104536868A (zh) * | 2014-11-26 | 2015-04-22 | 北京广通信达科技有限公司 | 一种it系统运行指标动态阈值分析方法 |
CN104636259A (zh) * | 2015-03-18 | 2015-05-20 | 厦门雅迅网络股份有限公司 | 一种基于运行期动态跟踪的函数执行超时与死锁检测方法 |
-
2016
- 2016-03-09 CN CN201610133234.2A patent/CN107179975A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060026570A1 (en) * | 2004-08-02 | 2006-02-02 | Chan Hoi Y | Approach to monitor application states for self-managing systems |
CN101876938A (zh) * | 2009-11-11 | 2010-11-03 | 北京神州泰岳软件股份有限公司 | 一种基于消息队列的应用软件响应时间测量方法 |
CN103064776A (zh) * | 2011-10-21 | 2013-04-24 | 中国移动通信集团广西有限公司 | 一种性能监控方法及装置 |
CN103345440A (zh) * | 2013-06-05 | 2013-10-09 | 深圳天珑无线科技有限公司 | 电子设备累计运行时间的统计方法及装置、电子设备 |
CN103761474A (zh) * | 2014-01-24 | 2014-04-30 | 北京京东尚科信息技术有限公司 | 一种用于监控方法执行时间的监控方法和装置 |
CN104536868A (zh) * | 2014-11-26 | 2015-04-22 | 北京广通信达科技有限公司 | 一种it系统运行指标动态阈值分析方法 |
CN104636259A (zh) * | 2015-03-18 | 2015-05-20 | 厦门雅迅网络股份有限公司 | 一种基于运行期动态跟踪的函数执行超时与死锁检测方法 |
Non-Patent Citations (2)
Title |
---|
杨雷: "《MapReduce作业执行性能优化若干关键技术研究》", 31 December 2015, 东北大学出版社 * |
胡明华、汤铭端: "基于分布函数的程序执行时间的静态预估", 《计算机工程与设计》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271290A (zh) * | 2018-07-27 | 2019-01-25 | 广州华多网络科技有限公司 | 一种监测线程使用率的方法、装置及存储装置 |
CN110908850A (zh) * | 2018-09-14 | 2020-03-24 | 阿里巴巴集团控股有限公司 | 数据获取方法及装置 |
CN109739741A (zh) * | 2018-11-26 | 2019-05-10 | 北京网众共创科技有限公司 | 系统测试方法和装置、存储介质及电子装置 |
CN109800124A (zh) * | 2018-12-15 | 2019-05-24 | 中国平安人寿保险股份有限公司 | Cpu使用率监控方法、装置、电子设备及存储介质 |
CN110136400A (zh) * | 2019-03-29 | 2019-08-16 | 广州明珞汽车装备有限公司 | 一种电极帽更换报警方法和系统 |
CN110362459A (zh) * | 2019-06-18 | 2019-10-22 | 中国平安人寿保险股份有限公司 | 一种基于SpringAop的系统性能监控方法及装置、电子设备 |
CN110362459B (zh) * | 2019-06-18 | 2023-02-03 | 中国平安人寿保险股份有限公司 | 一种基于SpringAop的系统性能监控方法及装置、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107179975A (zh) | 监控方法和装置 | |
KR102548217B1 (ko) | 데이터 스트림의 실시간 처리를 위한 시스템 및 방법 | |
CN105281981B (zh) | 网络服务的数据流量监控方法和装置 | |
JP5674212B2 (ja) | 映像ストリーム処理のための方法、コンピュータプログラムおよびシステム | |
CN104158882B (zh) | 一种基于云中间件的pos系统 | |
CN106886558B (zh) | 一种数据处理方法以及服务器 | |
CN107301091A (zh) | 资源分配方法和装置 | |
US20190005047A1 (en) | Intelligent database connection management | |
CN111651170B (zh) | 一种实例动态调整方法、装置及相关设备 | |
CN106886422A (zh) | 软件升级方法及装置、电子设备 | |
CN106059841A (zh) | 一种对部署的中间件进行监控的方法 | |
CN111666298A (zh) | 基于flink的用户服务类别检测方法、装置、计算机设备 | |
CN111161072A (zh) | 基于区块链的随机数生成方法、设备及存储介质 | |
CN105262876B (zh) | 通话处理方法、提供电话号码的号码信息的方法和装置 | |
CN106851189A (zh) | 视频信息处理方法、系统和装置 | |
CN115361450B (zh) | 请求信息处理方法、装置、电子设备、介质和程序产品 | |
CN107657155A (zh) | 用于鉴定用户操作权限的方法和装置 | |
CN108073658A (zh) | 一种数据同步系统及方法 | |
CN105224880A (zh) | 信息采集方法和装置 | |
CN107819750A (zh) | 请求消息的处理方法、装置、存储介质、处理器及系统 | |
CN113450149A (zh) | 一种信息处理方法、装置、电子设备及计算机可读介质 | |
US11783328B2 (en) | Systems and methods for wallet, token, and transaction management using distributed ledgers | |
CN114238041A (zh) | 一种告警方法、装置、电子设备及存储介质 | |
CN112862500A (zh) | 用户权益处理机动态装配方法及其装置、设备与介质 | |
CN113568802A (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: 20170919 |