CN113010390A - 基于Java数据采集探针的自我监控与熔断***和方法 - Google Patents
基于Java数据采集探针的自我监控与熔断***和方法 Download PDFInfo
- 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
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 71
- 239000000523 sample Substances 0.000 title claims abstract description 49
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000010586 diagram Methods 0.000 description 4
- 238000013480 data collection Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
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
本发明涉及一种基于Java数据采集探针的自我监控与熔断***和方法。***包括:自我监控模块,用于监控预定资源信息;熔断判定模块,用于依据预定资源信息是否充足判定是否熔断;熔断标志位模块,用于依据熔断判定模块的判定结果设置熔断标志位值;监控程序运行状态控制模块,用于依据熔断标志位值控制自我监控模块的监控程序运行状态中是否包含对应用性能数据的采集。实施时,通过监控预定资源信息是否充足,并据此充足判定是否熔断,再依据判定结果设置熔断标志位值,最后依据熔断标志位值控制监控程序运行状态中是否包含对应用性能数据的采集。借此,可在服务器/应用资源不足的情况下,及时释放出占用的资源给应用,从而保证应用稳定运行。
Description
技术领域
本发明属于应用性能管理(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时,监控程序包括对应用性能数据的采集。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117009955A (zh) * | 2023-09-26 | 2023-11-07 | 北京安普诺信息技术有限公司 | 基于代码疫苗的iast、rasp探针控制方法及装置 |
Citations (4)
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的应用性能监控工具 |
-
2020
- 2020-12-07 CN CN202011419674.7A patent/CN113010390A/zh active Pending
Patent Citations (4)
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)
Title |
---|
华为技术有限公司: "云监控服务 用户指南", pages 164 - 166, Retrieved from the Internet <URL:https://support.huaweicloud.com> * |
Cited By (2)
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 |
---|---|---|
JP4170988B2 (ja) | 実行環境の危険予測/回避方法,システム,プログラムおよびその記録媒体 | |
US6993681B2 (en) | Remote administration in a distributed system | |
JP2009199533A (ja) | 運用管理装置、運用管理システム、情報処理方法、及び運用管理プログラム | |
CN102075384A (zh) | 一种性能测试***及方法 | |
CN113010390A (zh) | 基于Java数据采集探针的自我监控与熔断***和方法 | |
CN108241528A (zh) | 一种用户自定义海量网络安全数据动态采集方法 | |
CN114363222A (zh) | 一种基于Netconf协议的网络设备巡检方法和*** | |
CN114422386B (zh) | 一种微服务网关的监测方法及装置 | |
CN115150460A (zh) | 一种节点安全注册方法、装置、设备及可读存储介质 | |
CN111813590A (zh) | 用于诊断主控模块异常复位的方法与装置、及主控模块 | |
CN117033044B (zh) | 可视化访问***及方法 | |
CN112965811B (zh) | 一种监控数据的优化方法及服务端 | |
CN112035322A (zh) | Jvm监控方法及装置 | |
CN114490091B (zh) | 工业数据采集管理***中监控规则引擎性能的方法及装置 | |
CN116620245A (zh) | 一种电子制动***云端故障记录方法、装置、设备及介质 | |
CN106375372B (zh) | 一种大数据资源分配方法和装置 | |
CN101267354A (zh) | 一种网络环境设备信息的收集和管理方法 | |
CN113542001A (zh) | Osd故障心跳检测方法、装置、设备及存储介质 | |
CN112072191A (zh) | 一种动车组电池管理方法、设备以及存储介质 | |
CN113157401A (zh) | 一种Java虚拟机管理方法及装置 | |
CN101442441A (zh) | 一种用于集成网络管理***中的智能管理装置 | |
CN114415953B (zh) | 一种对数据源进行数据采集的方法和装置 | |
CN102196318B (zh) | 一种点对点***及节目发布源的监控方法和装置 | |
CN102509247A (zh) | Ems***一键智能体检方法 | |
CN113760510A (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 |