CN113010390A - 基于Java数据采集探针的自我监控与熔断系统和方法 - Google Patents

基于Java数据采集探针的自我监控与熔断系统和方法 Download PDF

Info

Publication number
CN113010390A
CN113010390A CN202011419674.7A CN202011419674A CN113010390A CN 113010390 A CN113010390 A CN 113010390A CN 202011419674 A CN202011419674 A CN 202011419674A CN 113010390 A CN113010390 A CN 113010390A
Authority
CN
China
Prior art keywords
fusing
monitoring
self
application
resources
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
Application number
CN202011419674.7A
Other languages
English (en)
Inventor
司冬雪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cloudwise Beijing Technology Co Ltd
Original Assignee
Cloudwise Beijing Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cloudwise Beijing Technology Co Ltd filed Critical Cloudwise Beijing Technology Co Ltd
Priority to CN202011419674.7A priority Critical patent/CN113010390A/zh
Publication of CN113010390A publication Critical patent/CN113010390A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance 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

本发明涉及一种基于Java数据采集探针的自我监控与熔断系统和方法。系统包括:自我监控模块,用于监控预定资源信息;熔断判定模块,用于依据预定资源信息是否充足判定是否熔断;熔断标志位模块,用于依据熔断判定模块的判定结果设置熔断标志位值;监控程序运行状态控制模块,用于依据熔断标志位值控制自我监控模块的监控程序运行状态中是否包含对应用性能数据的采集。实施时,通过监控预定资源信息是否充足,并据此充足判定是否熔断,再依据判定结果设置熔断标志位值,最后依据熔断标志位值控制监控程序运行状态中是否包含对应用性能数据的采集。借此,可在服务器/应用资源不足的情况下,及时释放出占用的资源给应用,从而保证应用稳定运行。

Description

基于Java数据采集探针的自我监控与熔断系统和方法
技术领域
本发明属于应用性能管理(APM)领域,具体涉及一种基于Java数据采集探针的自我监控与熔断系统和方法,主要用于在服务器/应用资源不足的情况下,探针可以及时释放出占用的资源给到应用,从而保证应用稳定运行。
背景技术
对于某些大型公司而言,内部往往有多条业务线,每条业务线下面又有几百个微服务,每个微服务的运行情况怎么样,以及代码级别的性能问题如何定位,对于运维人员而言是需要了解的必要信息。
在这种情况下,可以引入APM产品,即通过Agent探针采集应用的性能数据,构建服务之间的网络拓扑,并采集请求级别的详细数据,用来快速定位代码级别性能问题。
例如,可以使用JDK的Instrumentation类开发一个独立于应用本身的代理程序,通过这个代理程序一方面可以监控当前java应用的JVM状态信息,另一方面可以修改预定义的Class文件,即对预定义的Class文件中的某些方法进行埋点,通过埋点采集应用的性能数据,并发送给后端程序分析,存储,并最终在前端展示。
但是随之而来的一个问题是,当将采集探针集成到应用中后,探针采集应用的性能数据时,例如,代理程序通过-javaagent(JVM参数)使用,需要对埋点的数据进行组装,处理和发送等,也会占用一部分服务器和应用的各种资源。通常情况下,探针不会对服务器和应用造成大的影响,但是,当业务繁忙期(例如业务激增),无论是服务器的cpu、内存、还是本身应用的jvm内存信息,占用的资源都非常高,再加上探针本身占用的资源,导致服务器和应用资源非常紧张,对业务本身就会有一些影响。
由此可知,常规的探针采集器不具备完善的熔断机制,当服务器的资源(cpu、内存、堆内存和网络等)不足时,不能有效的释放出资源对应用进行保护,严重情况下还可能会影响到应用正常运行。
因此,当资源不足时,如何保证应用可以稳定运行,是否可以让代理程序释放出资源给到应用,又如何给到应用,成为本领域技术人员亟待解决的技术问题,
发明内容
为了解决现有技术的上述问题,一方面,本发明提供一种基于Java数据采集探针的自我监控与熔断系统,可以在服务器/应用资源不足的情况下,及时释放出占用的资源给到应用,从而保证应用稳定运行。
为了达到上述目的,本发明采用的主要技术方案包括:
一种基于Java数据采集探针的自我监控与熔断系统,其包括:
自我监控模块,用于监控预定资源信息;
熔断判定模块,用于依据预定资源信息是否充足判定是否熔断;
熔断标志位模块,用于依据熔断判定模块的判定结果设置熔断标志位值;
监控程序运行状态控制模块,用于依据熔断标志位值控制自我监控模块的监控程序运行状态中是否包含对应用性能数据的采集。
借助上述方案,本发明的基于Java数据采集探针的自我监控与熔断系统,其可以在服务器/应用资源不足的情况下,及时释放出占用的资源给到应用,从而保证应用稳定运行。
本发明一个实施例的基于Java数据采集探针的自我监控与熔断系统,其中,预定资源信息包括下列中的任一或任几项:服务器cpu资源,服务器内存资源,服务器网络资源,jvm内存资源,jvm gc耗时占比,以及APM后端服务运行情况。
本发明一个实施例的基于Java数据采集探针的自我监控与熔断系统,其中,还包括熔断设置模块,用于设置熔断阙值(包括CPU使用率、内存使用率、CPU时间消耗占比、Heap内存使用率),当预定资源信息中的预定项(预定项是指任一项或任几项)达到预定阙值时,判定为熔断。
本发明一个实施例的基于Java数据采集探针的自我监控与熔断系统,其中,数据采集探针是使用JDK的Instrumentation类开发的独立于应用本身的代理程序,通过这个代理程序一方面可以监控当前java应用的JVM状态信息,另一方面可以修改预定义的Class文件。
本发明一个实施例的基于Java数据采集探针的自我监控与熔断系统,其中,修改预定义的Class文件是指,对预定义的Class文件中的预定位置进行埋点,通过埋点采集应用的性能数据,并发送给后端程序分析,存储,并最终在前端展示。
本发明一个实施例的基于Java数据采集探针的自我监控与熔断系统,其中,代理程序通过JVM参数javaagent,对埋点的数据进行组装,处理和发送。
具体实施时,可以通过自我监控模块监控下列信息,包括:服务器cpu资源,服务器内存资源,服务器网络资源,jvm内存资源,jvm gc耗时占比,以及APM后端服务运行情况。当某种资源不足时,将熔断标志位设置为1,即停止对应用性能数据的采集,但是监控程序仍然运行,当资源恢复正常后,再将熔断标志位设置为0,即恢复熔断,继续对应用的性能数据进行采集。
另一方面,本发明还提供一种基于Java数据采集探针的自我监控与熔断方法,可以在服务器/应用资源不足的情况下,及时释放出占用的资源给到应用,从而保证应用稳定运行。
为了达到上述目的,本发明采用的主要技术方案包括:
一种基于Java数据采集探针的自我监控与熔断方法,其包括如下步骤:
S1、监控预定资源信息是否充足;
S2、依据预定资源信息是否充足判定是否熔断;
S3、依据熔断判定模块的判定结果设置熔断标志位值;
S4、依据熔断标志位值控制监控程序运行状态中是否包含对应用性能数据的采集。
借助上述方案,本发明的基于Java数据采集探针的自我监控与熔断方法,其可以在服务器/应用资源不足的情况下,及时释放出占用的资源给到应用,从而保证应用稳定运行。
本发明一个实施例的基于Java数据采集探针的自我监控与熔断方法,其中,步骤S1中:预定资源信息包括下列中的任一或任几项:服务器cpu资源,服务器内存资源,服务器网络资源,jvm内存资源,jvm gc耗时占比,以及APM后端服务运行情况。
本发明一个实施例的基于Java数据采集探针的自我监控与熔断方法,其中,当预定资源信息中的预定项(预定项是指任一项或任几项)达到预定阙值时,判定为熔断。
实施时,步骤S4中:当熔断标志位设置为1时,监控程序不包括对应用性能数据的采集,但是监控程序仍然保持运行;当熔断标志位设置为0时,监控程序包括对应用性能数据的采集。
本发明的基于Java数据采集探针的自我监控与熔断系统和方法,其通过在数据采集探针设置自我监控模块,监控预定资源信息是否充足,并据此判定是否熔断,可以在资源不足的情况下,停止探针的数据采集,避免和应用抢夺服务器资源,保证应用稳定运行。
附图说明
图1为本发明一个实施例的基于Java数据采集探针的自我监控与熔断系统的框架示意图;
图2为本发明又一实施例的基于Java数据采集探针的自我监控与熔断系统的框架示意图;
图3为本发明又一实施例的基于Java数据采集探针的自我监控与熔断系统的框架示意图;
图4为本发明又一实施例的基于Java数据采集探针的自我监控与熔断系统的框架示意图;
图5为本发明一个实施例的基于Java数据采集探针的自我监控与熔断方法的主要流程示意图。
具体实施方式
为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
参见图1,本发明一个实施例的基于Java数据采集探针的自我监控与熔断系统,其包括:
自我监控模块,用于监控预定资源信息(包括:服务器cpu资源,服务器内存资源,服务器网络资源,jvm内存资源,jvm gc耗时占比,以及APM后端服务运行情况中的任一种或几种);
熔断判定模块,用于依据预定资源信息是否充足判定是否熔断;
熔断标志位模块,用于依据熔断判定模块的判定结果设置熔断标志位值;
监控程序运行状态控制模块,用于依据熔断标志位值控制监控程序运行状态中是否包含对应用性能数据的采集。
本实施例中,可以采用图5所示的基于Java数据采集探针的自我监控与熔断方法对应用进行监控,具体步骤包括:
S1、监控预定资源信息是否充足;
S2、依据预定资源信息是否充足判定是否熔断;
S3、依据熔断判定模块的判定结果设置熔断标志位值;
S4、依据熔断标志位值控制监控程序运行状态中是否包含对应用性能数据的采集。
借助上述方案,本发明的基于Java数据采集探针的自我监控与熔断系统,其可以在服务器/应用资源不足的情况下,及时释放出占用的资源给到应用,从而保证应用稳定运行。
参见图3,本发明一个较佳实施例的基于Java数据采集探针的自我监控与熔断系统,其中,还包括熔断设置模块,用于设置熔断阙值(包括CPU使用率、内存使用率、CPU时间消耗占比、Heap内存使用率),当预定资源信息中的预定项(预定项是指任一项或任几项)达到预定阙值时,判定为熔断。借此,可以根据场景需求,调整设定阙值,使其监控效果更佳。
例如,当CPU使用率≥99%时,或者内存使用率≥98%时,或者CPU时间消耗占比≥95%时,或者Heap内存使用率≥96%时,判定为熔断,将熔断标志位设置为1,停止对应用性能数据的采集。
在实际应用时,判定为熔断停止对应用性能数据采集时,监控程序仍然运行,当资源恢复正常后,再将熔断标志位设置为0,即恢复熔断,继续对应用的性能数据进行采集。
参见图4,本发明一个实施例的基于Java数据采集探针的自我监控与熔断系统,其Java Agent模块(也称为代理程序或代理程序模块)中包括:
自我监控模块,用于监控预定资源信息(包括:服务器cpu资源,服务器内存资源,服务器网络资源,jvm内存资源,jvm gc耗时占比,以及APM后端服务运行情况中的任一种或几种);
熔断判定模块,用于依据预定资源信息是否充足判定是否熔断(可以设于自我监控模块内);
熔断标志位模块,用于依据熔断判定模块的判定结果设置熔断标志位值(可以设于监控程序运行状态控制模块内);
监控程序运行状态控制模块,用于依据熔断标志位值控制监控程序运行状态中是否包含对应用性能数据的采集;
熔断设置模块,用于设置熔断阙值(包括CPU使用率、内存使用率、CPU时间消耗占比、Heap内存使用率),当预定资源信息中的预定项(预定项是指任一项或任几项)达到预定阙值时,判定为熔断。
实施时,通过熔断设置模块设置熔断阙值,例如设置为当CPU使用率≥99%时,或者内存使用率≥98%时,或者CPU时间消耗占比≥95%时,或者Heap内存使用率≥96%时,判定为熔断,将熔断标志位模块的熔断标志位设置为1,监控程序运行状态控制模块控制自我监控模块停止对应用性能数据的采集。开始运行之后,熔断标志位重置为0,自我监控模块持续运行,采集预定资源信息(包括:服务器cpu资源,服务器内存资源,服务器网络资源,jvm内存资源,jvm gc耗时占比,以及APM后端服务运行情况中的任一种或几种),以判定是否达到熔断阙值,当预定资源不足时,熔断判定模块判定为熔断,将熔断标志位模块的熔断标志位设置为1,监控程序运行状态控制模块控制自我监控模块停止对应用性能数据的采集,当预定资源充足时,熔断判定模块判定为恢复,将熔断标志位模块的熔断标志位重置为0,监控程序运行状态控制模块控制自我监控模块继续对应用性能数据的采集。
借此,可以通过Java Agent模块(即探针)实现对应用的实时监控,同时,即便在业务量很大的情况下,Java Agent模块使用的资源会得到有效的释放,从而保证了应用的稳定运行。
参见图2,本发明一个实施例的基于Java数据采集探针的自我监控与熔断系统,其包括独立于各应用本身的代理程序(使用JDK的Instrumentation类开发),代理程序通过-javaagent(JVM参数)使用,通过代理程序一方面可以监控当前java应用的JVM状态信息,另一方面可以修改预定义的Class文件,即对预定义的Class文件中的某些方法进行埋点,通过埋点采集应用的性能数据,并发送给后端程序分析,存储,并最终在前端展示。由于代理程序需要对埋点的数据进行组装,处理和发送,会消耗服务器和应用的各种资源,因此,在代理程序中设置自我监控模块,监控服务器和应用的资源信息(监控的信息包括:服务器cpu资源,服务器内存资源,服务器网络资源,jvm内存资源,jvm gc耗时占比,以及APM后端服务运行情况),当发现预定资源不足时,判定为熔断,将熔断标志位设置为1,停止对应用性能数据的采集,即让出资源,但是自我监控模块的监控程序在监控程序运行状态控制模块的控制下仍然运行,当自我监控程序监控到预定资源恢复正常后,
再将熔断标志位设置为0,即恢复熔断,继续对应用的性能数据进行采集。这样,就可以在服务器和应用资源紧张情况下,让代理程序释放出资源给到应用,保证应用可以稳定的运行。
综上所述,本发明的基于Java数据采集探针的自我监控与熔断系统和方法,通过在代理程序中设置自我监控模块,并保持自我监控模块对预定资源的监控,借以根据资源是否充足判定其是否熔断,进而实现仅在资源充足时对应用性能数据的采集,而在资源紧张时停止对应用性能数据的采集,从而有效保证了应用在资源不足的情况下仍能正常运行。

Claims (10)

1.一种基于Java数据采集探针的自我监控与熔断系统,其特征在于,其包括:
自我监控模块,用于监控预定资源信息;
熔断判定模块,用于依据预定资源信息是否充足判定是否熔断;
熔断标志位模块,用于依据熔断判定模块的判定结果设置熔断标志位值;
监控程序运行状态控制模块,用于依据熔断标志位值控制自我监控模块的监控程序运行状态中是否包含对应用性能数据的采集。
2.如权利要求1所述的基于Java数据采集探针的自我监控与熔断系统,其中,预定资源信息包括下列中的任一或任几项:服务器cpu资源,服务器内存资源,服务器网络资源,jvm内存资源,jvm gc耗时占比,以及APM后端服务运行情况。
3.如权利要求1所述的基于Java数据采集探针的自我监控与熔断系统,其中,还包括熔断设置模块,用于设置熔断阙值,当预定资源信息中的预定项达到预定阙值时,判定为熔断。
4.如权利要求1所述的基于Java数据采集探针的自我监控与熔断系统,其中,数据采集探针是使用JDK的Instrumentation类开发的独立于应用本身的代理程序,通过这个代理程序一方面可以监控当前java应用的JVM状态信息,另一方面可以修改预定义的Class文件。
5.如权利要求4所述的基于Java数据采集探针的自我监控与熔断系统,其中,修改预定义的Class文件是指,对预定义的Class文件中的预定位置进行埋点,通过埋点采集应用的性能数据,并发送给后端程序分析,存储,并最终在前端展示。
6.如权利要求4所述的基于Java数据采集探针的自我监控与熔断系统,其中,代理程序通过JVM参数javaagent,对埋点的数据进行组装,处理和发送。
7.一种基于Java数据采集探针的自我监控与熔断方法,其包括如下步骤:
S1、监控预定资源信息是否充足;
S2、依据预定资源信息是否充足判定是否熔断;
S3、依据熔断判定模块的判定结果设置熔断标志位值;
S4、依据熔断标志位值控制监控程序运行状态中是否包含对应用性能数据的采集。
8.如权利要求7所述的基于Java数据采集探针的自我监控与熔断方法,其特征在于,步骤S1中:预定资源信息包括下列中的任一或任几项:服务器cpu资源,服务器内存资源,服务器网络资源,jvm内存资源,jvm gc耗时占比,以及APM后端服务运行情况。
9.如权利要求8所述的基于Java数据采集探针的自我监控与熔断方法,其中,当预定资源信息中的预定项(预定项是指任一项或任几项)达到预定阙值时,判定为熔断。
10.如权利要求7所述的基于Java数据采集探针的自我监控与熔断方法,其特征在于,步骤S4中:当熔断标志位设置为1时,监控程序不包括对应用性能数据的采集,但是监控程序仍然保持运行;当熔断标志位设置为0时,监控程序包括对应用性能数据的采集。
CN202011419674.7A 2020-12-07 2020-12-07 基于Java数据采集探针的自我监控与熔断系统和方法 Pending CN113010390A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011419674.7A CN113010390A (zh) 2020-12-07 2020-12-07 基于Java数据采集探针的自我监控与熔断系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011419674.7A CN113010390A (zh) 2020-12-07 2020-12-07 基于Java数据采集探针的自我监控与熔断系统和方法

Publications (1)

Publication Number Publication Date
CN113010390A true CN113010390A (zh) 2021-06-22

Family

ID=76383206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011419674.7A Pending CN113010390A (zh) 2020-12-07 2020-12-07 基于Java数据采集探针的自我监控与熔断系统和方法

Country Status (1)

Country Link
CN (1) CN113010390A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117009955A (zh) * 2023-09-26 2023-11-07 北京安普诺信息技术有限公司 基于代码疫苗的iast、rasp探针控制方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104503891A (zh) * 2014-12-10 2015-04-08 北京京东尚科信息技术有限公司 对jvm线程进行在线监控的方法和装置
CN107807872A (zh) * 2017-10-18 2018-03-16 广西电网有限责任公司电力科学研究院 一种输变电系统运行状态监测方法
CN110083436A (zh) * 2019-05-14 2019-08-02 上海理想信息产业(集团)有限公司 一种基于Java字节码增强技术的业务数据实时监控系统及方法
CN110262955A (zh) * 2019-06-25 2019-09-20 四川长虹电器股份有限公司 基于pinpoint的应用性能监控工具

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104503891A (zh) * 2014-12-10 2015-04-08 北京京东尚科信息技术有限公司 对jvm线程进行在线监控的方法和装置
CN107807872A (zh) * 2017-10-18 2018-03-16 广西电网有限责任公司电力科学研究院 一种输变电系统运行状态监测方法
CN110083436A (zh) * 2019-05-14 2019-08-02 上海理想信息产业(集团)有限公司 一种基于Java字节码增强技术的业务数据实时监控系统及方法
CN110262955A (zh) * 2019-06-25 2019-09-20 四川长虹电器股份有限公司 基于pinpoint的应用性能监控工具

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
华为技术有限公司: "云监控服务 用户指南", pages 164 - 166, Retrieved from the Internet <URL:https://support.huaweicloud.com> *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117009955A (zh) * 2023-09-26 2023-11-07 北京安普诺信息技术有限公司 基于代码疫苗的iast、rasp探针控制方法及装置
CN117009955B (zh) * 2023-09-26 2024-01-09 北京安普诺信息技术有限公司 基于代码疫苗的iast、rasp探针控制方法及装置

Similar Documents

Publication Publication Date Title
US20030196136A1 (en) Remote administration in a distributed system
WO2012072363A1 (en) A method computer program and system to optimize memory management of an application running on a virtual machine
JPWO2004099985A1 (ja) 実行環境の危険予測/回避方法,システム,プログラムおよびその記録媒体
CN102075384A (zh) 一种性能测试系统及方法
EP2324406A1 (en) Method and apparatus for monitoring the performance of a power delivery control system
CN101136805A (zh) 一种性能告警系统及其性能门限的获取方法
CN113010390A (zh) 基于Java数据采集探针的自我监控与熔断系统和方法
CN108241528A (zh) 一种用户自定义海量网络安全数据动态采集方法
CN107168853A (zh) 一种服务器性能信息获取方法、系统和基板控制管理器
CN115218962A (zh) 一种基于大数据智慧化城市供水的数据收集检测系统
CN114363222A (zh) 一种基于Netconf协议的网络设备巡检方法和系统
CN114422386B (zh) 一种微服务网关的监测方法及装置
CN111813590A (zh) 用于诊断主控模块异常复位的方法与装置、及主控模块
CN112527597A (zh) 一种DotNet数据采集探针的自我监控与熔断方法
CN111831467A (zh) java进程内存溢出自熔断的方法、系统和电子设备
CN114490091B (zh) 工业数据采集管理系统中监控规则引擎性能的方法及装置
CN111240936A (zh) 一种数据完整性校验的方法及设备
CN106375372B (zh) 一种大数据资源分配方法和装置
CN104346233A (zh) 一种用于计算机系统的故障恢复方法及装置
CN112965811B (zh) 一种监控数据的优化方法及服务端
CN101267354A (zh) 一种网络环境设备信息的收集和管理方法
CN112035322A (zh) Jvm监控方法及装置
CN101442441A (zh) 一种用于集成网络管理系统中的智能管理装置
CN110995500A (zh) 节点日志管控方法、系统及相关组件
CN117033044B (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