UAVStack JVM监控分析工具:图形化展示采集及分析监控数据

引言

作为AllInOne的智能化服务技术栈,UAVStack提供了非常全面的监控数据采样功能,同时支持数据监控与预警。近期,我们整合了原有的数据采集展示功能,新增JVM分析功能,推出了更易用的JVM监控分析工具。

熟悉JDK的开发者都知道,JDK本身提供了一套JVM分析工具,包括jinfo、jmap、jstack等。用户可以通过命令行轻松获取JVM内存堆栈信息、内存对象分配以及JVM启动基本参数信息。但这些工具需要在命令行环境中执行,且生产环境下则需要通过堡垒机转发。

开源社区一些不错的JVM分析工具也可以提供获取JVM基本信息、追踪堆栈、获取内存信息等功能,但同样需要命令行CLI的支持。

UAVStack推出的JVM监控分析工具提供基于页面的展现方式,以图形化的方式展示采集到的监控数据;同时提供JVM基本参数获取、内存dump、线程分析、内存分配采样和热点方法分析等功能。

一、架构

JVM监控分析工具基于UAVStack既有架构,整体分为前端、后台及中间件增强框架(MOF)。其中:

  • 前端负责展示数据、向后台发送用户执行指令;
  • 后台负责下发指令、响应用户查询、处理采集到的数据;
  • 中间件增强框架(MOF)负责接收后台下发的指令、执行指令并返回数据或将数据写入文件,然后通过UAV提供的文件归集功能上送数据。

整体架构流程如下图所示:

二、关键技术

2.1 JMX

JMX提供相关接口,获取基础的JVM监控数据,如内存堆大小、GC情况等,是JVM监控数据的基础。

2.2 中间件增强框架(MOF)

作为分析工具整条链路的基础,MOF依附于用户应用,主要提供以下基础支持:

  • 基础数据采集:MOF植入应用中,JMX定期获取并上报相关JVM的基本信息数据,为展示和预警提供数据基础。
  • 请求捕获、指令执行:JVM监控分析工具的大多数功能都需要下发指令至应用所在的服务器。MOF负责把下发指令的请求拦截下来,执行并返回对应的结果。

2.3 Java Attach API

Java Attach API是由Sun提供的一套非标准API,可以将用户连接到运行中的虚拟机进程上,进行agent的挂载等操作。

在JVM监控分析工具中,Java Attach API主要用于Attach到虚拟机进程,进行如下操作:

  • 获取JMX Connection:从外部获取JVMConnection,得到MXBean,抓取运行数据。(CPU采样分析)
  • 获取VirtualMachine对象:调用接口,得到堆内存分布信息。(内存采样分析)

三、功能展示

3.1 基本监控

选择应用实例后即可进入基本监控页面。

该页面主要展示CPU使用率、线程情况、内存占用和GC情况。用户可以根据需求调整时间范围,查看不同时段的监控数据。

3.2 JVM摘要

JVM摘要页面显示当前虚拟机的基本参数信息,包括基本信息、JVM参数和系统属性。其中:

  • 基本信息包括pid、主机信息、启动参数以及JVM的启动时间等最基本、最重要的信息;
  • JVM参数包括所有JVM启动参数,用户可查看指定的堆大小、垃圾回收器信息等;
  • 系统属性包括写入System.Properties中的所有配置信息以及Javaagent的配置属性。

3.3 线程分析

线程分析通过执行jstack获取线程基本信息,并对输出结果进行分析,得到线程状态数量、有无死锁等信息。

3.4 内存Dump

内存Dump通过执行jmap获取指定JVM的堆栈dump文件。

用户可以便捷地在前端一键生成dump,不需要再登录堡垒机。点击“刷新”可以查看近期dump内存的操作记录。

3.5 CPU分析

CPU分析是基于线程栈的采样分析,主要提供两个功能:线程执行时间以及方法热点采样。

  • 线程执行时间是指线程在采样期间的活动时间。查询结果按照线程活动总时间排序,同时提供线程名称和线程执行时间信息,用户可据此判断应用的执行情况。

  • 方法热点采样统计所有方法的执行时间,提供方法的类名和方法名信息。其中,方法的自用执行时间不包括方法调用其他方法的执行时间。查询结果按照方法的自用执行时间降序排序,用户可以查看当前应用内部耗时较长的执行方法,判断应用是否异常、是否需要优化。

3.6 内存分析

内存分析是基于线程以及堆的统计采样分析,主要提供两个功能:每个线程的内存分配和堆内分配细节。

  • 线程内存分配提供每个线程的内存分配大小和线程名称等信息,按照内存分配大小降序排列。用户可查看当前占用内存较大的线程。

  • 堆内分配提供了各个类在堆内的分配实例数以及所占用的堆内存,按照堆内存大小降序排列。用户可把该功能当作简易的dump及分析工具,快速分析内存分配情况,发现内存分配问题。

总结

JVM监控分析工具是从监控、分析到展示的一体化工具。JDK自带的工具虽然也可以实现除CPU分析之外的其他功能,但不够便捷,也无法实现从采样、分析到图形化展示的一体化效果。JVM监控分析工具解决了开发人员没有线上应用堡垒机权限、无法分析采集到的数据等痛点,同时提供CPU与内存采样分析等功能,以较低的性能开销获取较为全面的JVM运行数据,帮助应用开发人员发现与分析问题,为应用开发优化提供参考依据。

UAVStack已在Github上开放源码,并提供了安装部署、架构说明和用户指南等双语文档。

开源地址:https://github.com/uavorg

作者:张明明

首发于:UAVStack智能运维

原文地址:https://blog.51cto.com/14159827/2445190

时间: 2024-10-12 18:47:45

UAVStack JVM监控分析工具:图形化展示采集及分析监控数据的相关文章

echarts图形化展示

一,使用echarts做图形化展示 1),使用echarts最需要注意的是一个图形需要的参数,只要参数提供正确,那么使用echarts是简单的 2),官网:http://echarts.baidu.com/index.html 二,引入需要的js文件(下载官方提供的) <script src="js/echarts.js"></script> <script src="js/dark.js"></script> <

利用VisualEsxtop工具图形化查看esxtop参数

怎样使用VisualEsxtop工具 众多VMware的工程师都知道esxtop/rextop在进行故障排查.性能检测的场景中的重要性:一般而言我们都可以通过各种shell工具连接到ESXI主机,默认输入esxtop显示的是CPU相关的信息面板 当然我们可以在输入esxtop后通过输入相关字母切换到不同的信息面板 c = cpu m = memory(内存) n = network (网络) i = interrupts (中断) d = disk adapter (磁盘适配器) u = dis

关于树的父子节点的图形化展示

功能需求是实现树的父子节点的图形展示关系,且可以点击节点的时候,会相应地切换显示.因此网上寻找相关的插件来看看是不是满足需求.参考了许多的博客,感觉最有价值的就是这篇博客http://www.cnblogs.com/liuyungao/p/5624163.html,但是我最终也没有选择里面说的插件,最后用了OrgChart,软件的github地址:https://github.com/dabeng/OrgChart. 之前找的那篇博客,自己也稍微研究了一下,但是没有深入,发现有的是不能很契合我的

zabbix、agent端服务器图形化展示

[[email protected] ~]# cat /etc/hostname agent.zabbix.com [[email protected] ~]# cat /etc/hosts 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1         localhost localhost.localdomain localhost6 localhost6.localdoma

日志分析工具、日志管理系统、syslog分析

系统日志(Syslog)管理是几乎所有企业的重要需求.系统管理员将syslog看作是解决网络上系统日志支持的系统和设备性能问题的关键资源.人们往往低估了对完整的sys-log监控解决方案的需求,导致长时间筛选大量系统日志来解决某一个问题.高效的事件日志syslog分析可减少系统停机时间.提高网络性能,并有助于加强企业的安全策略. EventLog Analyzer像syslog守护进程或syslog服务器一样执行,并通过侦听syslog端口(UDP)来收集sys-log事件.Event log

KRPano资源分析工具使用说明(KRPano XML/JS解密 切片图批量下载 球面图还原 加密混淆JS还原美化)

软件交流群:571171251(软件在群内提供) krpano技术交流群:551278936(软件在群内提供) 软件功能介绍 KRPano资源分析工具具有以下特性: 1.分析保存网站资源,包括查看网站资源树形(平铺)结构,单个资源文件实时打开,整站资源批量保存,资源过滤筛选保存等功能 2.一键解密被KRPano加密的XML文件 3.一键解密被KRPano加密后的JS文件 4.解密/美化被加密或混淆的JS文件 5.KRPano网站切片图批量下载 6.KRPano切片图一键还原球面图 7.批量下载多

js正则表达式图形化工具-rline

github地址:https://github.com/finance-sh/rline 在线demo: http://lihuazhai.com/demo/test.html 这是一个js正则表达式图形化工具,有以下功能: 在输入框填入正则表达式,支持格式:1,没有斜线,如:\d|\s ; 2,有斜线,如:/\d|\s/ 点击展示按钮,将会在下方生成正则流程图:同时在控制台中将会输出该正则的数据结构. 实例: 请在高级浏览器中运行. 我们的github地址:https://github.com

使用KRPano资源分析工具一键下载全景网站切片图

软件交流群:571171251(软件免费版本在群内提供) krpano技术交流群:551278936(软件免费版本在群内提供) 最新博客地址:blog.turenlong.com KRPano资源分析工具支持批量下载全景网站的全景切片图,例如下面的一个网站 http://vr.firstep.cn/dawa/lvyou/pano/honghaitanlangdao/tour.html 首先我们先在资源查看器中的筛选框中,输入xml,查看该网站的全景xml文件: 在tour.xml文件中,我们可以

开发与测试分析工具集锦(网络摘要)不断更新

一.测试工具 (一)软件测试工具 (二)网络分析工具 1.TcpDump工具(网络安全分析工具 ):抓包分析                     tcpdump 是一个运行在命令行下的嗅探工具.它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包.tcpdump 是一个在BSD许可证下发布的自由软件.                     tcpdump是非常强大的网络安全分析工具,可以将网络上截获的数据包保存到文件以备分析.可以定义过滤规则,只截获感兴趣的数据包,