CN110865919B - 基于java进程的监控方法、装置和计算机设备 - Google Patents

基于java进程的监控方法、装置和计算机设备 Download PDF

Info

Publication number
CN110865919B
CN110865919B CN201911067544.9A CN201911067544A CN110865919B CN 110865919 B CN110865919 B CN 110865919B CN 201911067544 A CN201911067544 A CN 201911067544A CN 110865919 B CN110865919 B CN 110865919B
Authority
CN
China
Prior art keywords
java
constructing
monitoring
local
machine
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.)
Active
Application number
CN201911067544.9A
Other languages
English (en)
Other versions
CN110865919A (zh
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.)
Jiangsu Suning Cloud Computing Co ltd
SuningCom Co ltd
Original Assignee
Suning Cloud Computing 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 Suning Cloud Computing Co Ltd filed Critical Suning Cloud Computing Co Ltd
Priority to CN201911067544.9A priority Critical patent/CN110865919B/zh
Publication of CN110865919A publication Critical patent/CN110865919A/zh
Application granted granted Critical
Publication of CN110865919B publication Critical patent/CN110865919B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于java进程的监控方法、装置和计算机设备,监控方法包括:动态扫描机器上的java进程,获得进程标识;构建机器上java进程的本地链接;在监控进程中构建java进程的管理器代理,构建进程标识到多类型资源管理实例的映射;采集java进程对应的监控数据指标,汇聚到集群维度。本发明解决了java程序的进程监控需求,同时对其他已有***的无侵入性监控;基于纯java的单一语言环境的实现,极大的提高了***的稳定性及可扩展性;针对不同维度的多样采集指标,基于多层次的架构层级的使用,解决了多应用场景、多使用需求的用户痛点问题。

Description

基于java进程的监控方法、装置和计算机设备
技术领域
本发明属于进程监控技术领域,特别是一种基于java进程的监控方法、装置和计算机设备。
背景技术
随着大数据技术逐渐成熟,异构数据源数据交换任务的使用量也达到巨大的量级。***在集群环境的大量服务器构建的大量服务进程容器,除了机器的状态监控外,各个进程的服务状态及性能获取,进程容器的状态分析监控成为亟待解决的焦点问题。
目前已经存在较多关于java进程监控的实现方案。一是直接调用linux命令如jmap、top等来实现对相关指标的监控和采集,这种方法使用简便,但存在较大的性能问题。每次调用一个命令相当于启动一个新的进程,当需要秒级高频监控时,对***的性能影响较大,容易产生响应慢、占用CPU资源多等现象,甚至当机器配置较低时直接导致宕机。另一种方法是直接使用jdk自带工具,但其使用较为复杂,需要设置动参数,同时监控指标少,且CPU相关指标的计算与实际值存在偏差。
发明内容
本发明的目的在于提供一种基于java进程的监控方法、装置和计算机设备,实现高性能、使用简便灵活、易定制、易移植、易维护的针对实际业务场景的jvm监控服务。
实现本发明目的的技术方案为:一种基于java进程的监控方法,包括:
动态扫描机器上的java进程,获得进程标识;
构建机器上java进程的本地链接;
在监控进程中构建java进程的管理器代理,构建进程标识到多类型资源管理实例的映射;
采集java进程对应的监控数据指标,汇聚到集群维度。
一种基于java进程的监控装置,包括:
进程标识获取模块,用于动态扫描机器上的java进程,获得进程标识;
本地链接构建模块,用于构建机器上java进程的本地链接;
映射关系建立模块,用于在监控进程中构建java进程的管理器代理,构建进程标识到多类型资源管理实例的映射;
汇聚模块,用于采集java进程对应的监控数据指标,汇聚到集群维度。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述监控方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述监控方法的步骤。
本发明与现有技术相比,其显著优点为:(1)本发明基于纯java的单线程实现方式,摒弃从操作***获得资源使用数据,将***交互降到最低;(2)对监控的进程无侵入性,无需其他进程***修改改造,把侵入性降到最低;(3)区别于传统进程内部实现进程性能指标采集的方式,指标数据采集在进程之外完成;(4)高可用性,易扩展,易部署特性;采集架构无任何外部资源依赖,易扩展已部署特性提升巨大;(5)采用本发明的监控技术可以完成fullGC和youngGC的数据获取。
附图说明
图1是本发明基于java进程的监控方法流程图。
图2是获得进程标识过程示意图。
图3是构建机器上的进程的本地链接示意图。
图4是构建进程标识到多类型资源管理实例映射的示意图。
图5是汇聚java的进程指标数据到集群维度的示意图。
图6是实施例1针对不同的指标构建JVM服务进程的不健康度检测标准的示意图。
图7是实施例2中进行任务分配调度的流程图。
具体实施方式
随着大数据、云计算以及为服务架构的发展应用,需要在计算机服务器上构建大量的基于java语言的通过虚拟机实现的软件***。现存的监控***大都停留在对硬件资源消耗的监控,基于java进程的资源监控和对软件***的运行状况分析技术工具是亟待需要的。
本发明提出一种基于java进程的监控方法,如图1所示,包括以下步骤:
动态扫描机器上的java进程,获得进程标识;
构建机器上java进程的本地链接;
在监控进程中构建java进程的管理器代理,构建进程标识到多类型资源管理实例的映射;
采集java进程对应的监控数据指标,汇聚到集群维度。
进一步的,如图2所示,获得进程标识的具体方法为:
构建定时调度任务,根据需求设定任务调度间隔;
构建本地的受监控的主机;
获取受监控主机上运行的java进程标识。
进一步的,如图3所示,构建机器上Java进程的本地链接,具体方法为:
获取java进程标识一致的受监控主机的运行的虚拟机实例;
获取本地的管理代理的文件包;
虚拟机实例加载管理代理的文件包,实现虚拟机实例的远程管理;
获取基于jmx的本地机器的进程间链接的URL。
进一步的,如图4所示,构建进程标识到多类型资源管理实例的映射,具体方法为:
基于上一步的地址链接URL,构建基于jmx的链接;
构建管理实例类平台的服务链接器;
在管理服务平台中获得多种类的资源管理实例;
汇聚在本链接基础上获取的资源管理实例,形成进程标识到多种类管理实例的映射关系。
进一步的,采集java进程对应的监控数据指标,汇聚到集群维度,如图5所示,具体为:
使用进程标识下的多样的管理实例,获取相应维度跟粒度的监控数据指标;
对当前进程的监控数据指标并加上进程标识进行向上层机器层面汇聚到本地缓存;
从本地缓存中异步的取出数据并加上机器标识进行向上层集群层面汇聚到外部存储介质存储服务器。
其中,监控数据指标包括GC相关数据,堆栈相关数据,线程,类加载和/或环境信息数据指标。
优选的,本地缓存为环形缓冲区,外部存储介质存储服务器为mysql或es存储服务器。
本发明还提供一种基于java进程的监控装置,包括:
进程标识获取模块,用于动态扫描机器上的java进程,获得进程标识;
本地链接构建模块,用于构建机器上java进程的本地链接;
映射关系建立模块,用于在监控进程中构建java进程的管理器代理,构建进程标识到多类型资源管理实例的映射;
汇聚模块,用于采集java进程对应的监控数据指标,汇聚到集群维度。
本发明的一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述监控方法的步骤。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述监控方法的步骤。
本发明的监控方法及装置支持对机器上运行的java进程的动态扫描感知;支持对机器上游离的java进程纳入监控范围;支持对java进程的***运行状态的剖析;支持对java进程的使用资源的动态统计;支持对集群环境的多机器上多进程统一监控;本发明能够提高对机器资源的有效利用率,对***服务的不健康状态的及早感知预测,采用纯java的实现方式,极大的提高了***的稳定性。
下面结合实施例和附图对java进程指标的应用作进一步说明。
实施例1
针对不同的指标构建java进程的不健康度检测标准,如图6所示。
(1)为充分检测当前进程服务的不健康度,构建针对不同维度方向的不健康度检测标准。
(2)参考FULLGC过于频繁,线程存在阻塞,堆内存使用量过大等量化阀值,构建指标过滤器链,对采集的进程指标进行过滤。
(3)对触发过滤器链中的衡量阀值的进程即预示当前服务进程的不健康,可能产生服务失败或服务效果不理想,需干预处理当前服务进程。
(4)发送短信和邮件告警,及时提醒***管理员。
实施例2
针对当前的Java服务进程信息反馈,进行任务的分配调度:
(1)根据采集的进程监控指标信息,评估当前的服务进程的服务能力。
(2)如当前服务进程性能良好,可进行后续服务任务的分配,分配方法如图7所示,本发明充分利用现有启动的服务进程。
实施例3
统筹多种类型多种架构的服务进程的监控:
现有的监控手段多是构建在进程的内部,自实现其指标监控。势必造成不同的架构,不同的服务种类,不同的语言的进程分别占用机器***资源,却无法统筹实现监控。如部署微服务项目跟spark,flume,hive等底层平台***进程同时运行在某台机器上,此时每种技术架构自身的监控无法感知其他框架的服务进程运行情况。
多种架构的***服务进程,在基于jvm上的实现,都可实现无侵入性的统筹监控。为多技术框架应用在同一项目***体系提供技术支持。
本发明解决了现有技术中可能存在的响应慢、占用资源多等性能问题,同时也克服了使用复杂、维护成本大的缺陷。在高频获取相关指标进行监控的过程中,无需频繁创建对象和内存空间,仅需要在服务启动时创建对象和一块环形缓存区,监控服务作为“生产者”向环形缓存区中写入指标数据,“消费者”不断从环形缓存区中取出数据写入数据库。由于采用了环形缓存区,可有效避免由于消费异常而导致持续生产数据可能产生的缓存区超限问题。此外,其部署于各台服务器上,仅对本机进行监控,避免了由于多机通信可能产生的连接和数据问题。本发明与现有方法的性能对比如下表所示。
表1本发明与现有技术的性能对比
使用本发明的技术方案,在应用于进程监控中,既解决了构建在jvm上的java进程监控需求,同时做到了对其他已有***的无侵入性监控。基于纯java的单一语言环境的实现,极大的提高了***的稳定性及可扩展性。针对不同维度的多样采集指标,基于多层次的架构层级的使用,完美的解决了多应用场景,多使用需求的用户痛点问题。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (6)

1.一种基于java进程的监控方法,其特征在于,包括:
动态扫描机器上的java进程,获得进程标识,具体为:
构建定时调度任务,根据需求设定任务调度间隔;
构建本地的受监控的主机的代理对象;
获取受监控主机上运行的java进程标识;
构建机器上java进程的本地链接,具体为:
获取java进程标识一致的受监控主机的运行的虚拟机实例;
获取本地的管理代理的文件包;
虚拟机实例加载管理代理的文件包,实现虚拟机实例的远程管理;
获取基于jmx的本地机器的进程间链接的URL;
在监控进程中构建java进程的管理器代理,构建进程标识到多类型资源管理实例的映射,具体为:
基于上一步的地址链接URL,构建基于jmx的链接;
构建管理实例类平台的服务链接器;
在管理服务平台中获得多种类的资源管理实例;
汇聚在本链接基础上获取的资源管理实例,形成进程标识到多种类管理实例的映射关系;
采集java进程对应的监控数据指标,汇聚到集群维度,具体为:
使用进程标识下的多样的管理实例,获取相应维度跟粒度的监控数据指标;
对当前进程的监控数据指标并加上进程标识进行向上层机器层面汇聚到本地缓存;
从本地缓存中异步的取出数据并加上机器标识进行向上层集群层面汇聚到外部存储介质存储服务器。
2.根据权利要求1所述的基于java进程的监控方法,其特征在于,监控数据指标包括堆栈相关数据、线程、类加载和环境信息数据指标。
3.根据权利要求1所述的基于java进程的监控方法,其特征在于,本地缓存为环形缓冲区,外部存储介质存储服务器为mysql或es存储服务器。
4.一种基于java进程的监控装置,其特征在于,包括:
进程标识获取模块,用于动态扫描机器上的java进程,获得进程标识,具体为:构建定时调度任务,根据需求设定任务调度间隔;构建本地的受监控的主机的代理对象;获取受监控主机上运行的java进程标识;
本地链接构建模块,用于构建机器上java进程的本地链接,具体为:获取java进程标识一致的受监控主机的运行的虚拟机实例;获取本地的管理代理的文件包;虚拟机实例加载管理代理的文件包,实现虚拟机实例的远程管理;获取基于jmx的本地机器的进程间链接的URL;
映射关系建立模块,用于在监控进程中构建java进程的管理器代理,构建进程标识到多类型资源管理实例的映射,具体为:基于上一步的地址链接URL,构建基于jmx的链接;构建管理实例类平台的服务链接器;在管理服务平台中获得多种类的资源管理实例;汇聚在本链接基础上获取的资源管理实例,形成进程标识到多种类管理实例的映射关系;
汇聚模块,用于采集java进程对应的监控数据指标,汇聚到集群维度,具体为:使用进程标识下的多样的管理实例,获取相应维度跟粒度的监控数据指标;对当前进程的监控数据指标并加上进程标识进行向上层机器层面汇聚到本地缓存;从本地缓存中异步的取出数据并加上机器标识进行向上层集群层面汇聚到外部存储介质存储服务器。
5.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至3中任一项所述方法的步骤。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3中任一项所述的方法的步骤。
CN201911067544.9A 2019-11-04 2019-11-04 基于java进程的监控方法、装置和计算机设备 Active CN110865919B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911067544.9A CN110865919B (zh) 2019-11-04 2019-11-04 基于java进程的监控方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911067544.9A CN110865919B (zh) 2019-11-04 2019-11-04 基于java进程的监控方法、装置和计算机设备

Publications (2)

Publication Number Publication Date
CN110865919A CN110865919A (zh) 2020-03-06
CN110865919B true CN110865919B (zh) 2023-11-28

Family

ID=69654579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911067544.9A Active CN110865919B (zh) 2019-11-04 2019-11-04 基于java进程的监控方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN110865919B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115051979B (zh) * 2022-04-28 2023-09-19 福思(杭州)智能科技有限公司 监控数据调试***、方法、车辆和计算机可读存储介质
CN115617451A (zh) * 2022-09-23 2023-01-17 长春吉大正元信息技术股份有限公司 一种数据处理方法和数据处理装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101799751A (zh) * 2009-12-02 2010-08-11 山东浪潮齐鲁软件产业股份有限公司 一种构建主机监控代理软件的方法
CN102081548A (zh) * 2009-11-30 2011-06-01 华为技术有限公司 Java应用的处理方法、***和SAF平台
CN102222037A (zh) * 2010-04-15 2011-10-19 国际商业机器公司 用于定位java程序的瓶颈的方法和设备
CN106909498A (zh) * 2015-12-22 2017-06-30 阿里巴巴集团控股有限公司 一种Java程序注入故障的方法和***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081548A (zh) * 2009-11-30 2011-06-01 华为技术有限公司 Java应用的处理方法、***和SAF平台
CN101799751A (zh) * 2009-12-02 2010-08-11 山东浪潮齐鲁软件产业股份有限公司 一种构建主机监控代理软件的方法
CN102222037A (zh) * 2010-04-15 2011-10-19 国际商业机器公司 用于定位java程序的瓶颈的方法和设备
CN106909498A (zh) * 2015-12-22 2017-06-30 阿里巴巴集团控股有限公司 一种Java程序注入故障的方法和***

Also Published As

Publication number Publication date
CN110865919A (zh) 2020-03-06

Similar Documents

Publication Publication Date Title
JP4980792B2 (ja) 仮想計算機の性能監視方法及びその方法を用いた装置
CN107040578B (zh) 数据同步方法、装置和***
CN107451147B (zh) 一种kafka集群动态切换的方法和装置
US8954971B2 (en) Data collecting method, data collecting apparatus and network management device
WO2010126805A2 (en) Application efficiency engine
CN108920153B (zh) 一种基于负载预测的Docker容器动态调度方法
CN112910945A (zh) 请求链路跟踪方法和业务请求处理方法
US10055134B2 (en) Data compression method and storage system
CN110865919B (zh) 基于java进程的监控方法、装置和计算机设备
CN111221700B (zh) 一种集群节点状态监控方法、装置、设备及可读存储介质
CN111625419B (zh) 一种日志采集方法、***、设备及计算机可读存储介质
JP2016048536A (ja) クラスタコンピューティングシステム用のマスタデバイス、スレーブデバイスおよびそのコンピューティング方法
CN112698952A (zh) 计算资源统一管理方法、装置、计算机设备及存储介质
CN112152874A (zh) 分布式***中应用监控数据的采集与分析***及方法
CN115883407A (zh) 一种数据采集方法、***、设备及存储介质
CN103475690A (zh) Memcached节点配置方法及装置
JP5597293B2 (ja) 計算機システム及びプログラム
US20140096127A1 (en) Systems and methods for installing, managing, and provisioning applications
CN112559565A (zh) 一种异常检测方法、***及装置
CN117251373A (zh) 压力测试方法、装置、设备以及存储介质
CN106330595B (zh) 分布式平台的心跳检测方法和装置
CN115525392A (zh) 容器监控方法、装置、电子设备及存储介质
CN115562933A (zh) 作业监控数据的处理方法及装置、存储介质、电子设备
CN115422008A (zh) 无侵入式的进程监控方法、装置、设备及存储介质
CN109902067B (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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: No.1-1 Suning Avenue, Xuzhuang Software Park, Xuanwu District, Nanjing, Jiangsu Province, 210000

Patentee after: Jiangsu Suning cloud computing Co.,Ltd.

Country or region after: China

Address before: No.1-1 Suning Avenue, Xuzhuang Software Park, Xuanwu District, Nanjing, Jiangsu Province, 210000

Patentee before: Suning Cloud Computing Co.,Ltd.

Country or region before: China

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20240517

Address after: 210000, 1-5 story, Jinshan building, 8 Shanxi Road, Nanjing, Jiangsu.

Patentee after: SUNING.COM Co.,Ltd.

Country or region after: China

Address before: No.1-1 Suning Avenue, Xuzhuang Software Park, Xuanwu District, Nanjing, Jiangsu Province, 210000

Patentee before: Jiangsu Suning cloud computing Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right