文档

Java应用实例监控

更新时间:

为Java应用安装探针后,ARMS即可开始监控Java应用,您可以在实例监控页面了解应用的基础监控、实例GC和JVM内存等信息。

前提条件

重要

ARMS应用监控面向已开通新版计费的用户提供全新的监控详情页面,新版计费详情,请参见产品计费(新版)

对于未开通新版计费的用户,如需查看新版监控详情页面,可在应用列表页面单击切换新版

已为应用安装探针,具体操作,请参见应用监控接入概述

查看实例监控

  1. 登录ARMS控制台,在左侧导航栏选择应用监控 > 应用列表

  2. 应用列表页面顶部选择目标地域,然后单击目标应用名称。

    说明

    语言列的图标含义如下:

    Java图标:接入应用监控的Java应用。

    image:接入应用监控的Golang应用。

    image:接入应用监控的Python应用。

    -:接入可观测链路 OpenTelemetry 版的应用。

  3. 在上方导航栏单击实例监控

页面说明

实例监控页面会根据应用接入的信息自动适配展示大盘,并针对ECS环境和容器环境做区别展示。

在容器场景下,如果已经接入可观测监控 Prometheus 版,则优先以可观测监控 Prometheus 版数据作为容器信息的展示。容器环境接入可观测监控 Prometheus 版的操作,请参见容器可观测

容器环境如果未接入可观测监控 Prometheus 版,需要确保应用监控探针版本在4.1.0或以上,对应数据展示容器的基础信息。应用监控探针说明,请参见探针(Java Agent)版本说明

ECS环境

image.png

  • 在快捷筛选区域(图示①),您可以按主机地址对图表、实例列表进行筛选。

  • 在趋势图区域(图示②),您可以查看实例的基础监控、实例GC和JVM内存的时序曲线。

    • 基础监控:应用在指定时间范围内CPU、内存和磁盘使用率趋势图。通过图标名称右侧的下拉框可以切换展示各使用率的平均值和最大值。

    • 实例GC:应用在指定时间范围内Full GC和Young GC的趋势图。通过图表名称右侧的下拉框可以切换展示GC的次数和平均耗时。

    • JVM内存:应用在指定时间范围内堆内存已使用和最大值趋势图。通过图标名称右侧的下拉框可以切换展示非堆内存已使用和最大值趋势图。

      说明

      ARMS应用监控采集的数据来自JMX,其中非堆内存所包含的内存区域比Java进程中实际的非堆内存区域少,因此可能会出现监控中堆内存+非堆内存总和与通过top命令看到的RES大小存在一定差值,相关细节请参见JVM监控内存详情说明

    单击image.png图标,可以在弹出的对话框中查看该指标在某个时间段的统计情况或对比不同日期在同一时间段的统计情况,通过选择image.png图标可以切换柱状图、趋势图进行展示。

  • 在实例列表区域(图示③),您可以查看实例IP、CPU利用率、内存利用率、磁盘利用率、负载、Full GC次数、Young GC次数、堆内存使用量、非堆内存使用量、RED三指标(请求数、错误数、平均耗时)等信息。

    在实例列表,您可以执行以下操作:

    • 单击实例IP,可以查看实例详情,更多信息,请参见实例详情

    • 单击操作列的调用链,可以查看该实例的链路详情。更多信息,请参见调用链分析

容器环境(Prometheus版)

image

  • 在快捷筛选区域(图示①),您可以按集群和主机地址对图表、实例列表进行筛选。

  • 在趋势图区域(图示②),您可以查看实例的基础监控、实例GC和JVM内存的时序曲线。

    • 基础监控:应用在指定时间范围内CPU用量和内存用量趋势图。

    • 实例GC:应用在指定时间范围内Full GC和Young GC的趋势图。通过图表名称右侧的下拉框可以切换展示GC的次数和平均耗时。

    • JVM内存:应用在指定时间范围内堆内存已使用和最大值趋势图。通过图标名称右侧的下拉框可以切换展示非堆内存已使用和最大值趋势图。

      说明

      ARMS应用监控采集的数据来自JMX,其中非堆内存所包含的内存区域比Java进程中实际的非堆内存区域少,因此可能会出现监控中堆内存+非堆内存总和与通过top命令看到的RES大小存在一定差值,相关细节请参见JVM监控内存详情说明

    单击image.png图标,可以在弹出的对话框中查看该指标在某个时间段的统计情况或对比不同日期在同一时间段的统计情况,通过选择image.png图标可以切换柱状图、趋势图进行展示。

  • 在实例列表区域(图示③),您可以查看实例IP、CPU用量、CPU请求、CPU限制、CPU利用率(未设置CPU限制时,此项展示为-)、内存用量、内存请求、内存限制、内存利用率(未设置内存限制时,此项展示为-)、磁盘用量、磁盘限制、磁盘利用率(未设置磁盘限制时,此项展示为-)、负载、Full GC 次数、Young GC 次数、堆内存使用量、非堆内存使用量、RED三指标(请求数、错误数、平均耗时)等。

    在实例列表,您可以执行以下操作:

    • 单击实例IP或操作列的详情,可以查看实例详情,更多信息,请参见实例详情

    • 单击操作列的调用链,可以查看该实例的链路详情。更多信息,请参见调用链分析

容器环境(ARMS自采集版)

image

  • 在快捷筛选区域(图示①),您可以按主机地址对图表、实例列表进行筛选。

  • 在趋势图区域(图示②),您可以查看实例的基础监控、实例GC和JVM内存的时序曲线。

    • 基础监控:应用在指定时间范围内CPU用量和内存用量趋势图。

    • 实例GC:应用在指定时间范围内Full GC和Young GC的趋势图。通过图表名称右侧的下拉框可以切换展示GC的次数和平均耗时。

    • JVM内存:应用在指定时间范围内堆内存已使用和最大值趋势图。通过图标名称右侧的下拉框可以切换展示非堆内存已使用和最大值趋势图。

      说明

      ARMS应用监控采集的数据来自JMX,其中非堆内存所包含的内存区域比Java进程中实际的非堆内存区域少,因此可能会出现监控中堆内存+非堆内存总和与通过top命令看到的RES大小存在一定差值,相关细节请参见JVM监控内存详情说明

    单击image.png图标,可以在弹出的对话框中查看该指标在某个时间段的统计情况或对比不同日期在同一时间段的统计情况,通过选择image.png图标可以切换柱状图、趋势图进行展示。

  • 在实例列表区域(图示③),您可以查看实例IP、CPU用量、内存用量、负载、Full GC 次数、Young GC 次数、堆内存使用量、非堆内存使用量、RED三指标(请求数、错误数、平均耗时)等。

    在实例列表,您可以执行以下操作:

    • 单击实例IP或操作列的详情,可以查看实例详情,更多信息,请参见实例详情

    • 单击操作列的调用链,可以查看该实例的链路详情。更多信息,请参见调用链分析

实例详情

概览

概览页签可以查看目标接口的请求数、错误数、平均耗时和慢调用信息。

image.png

JVM监控

JVM监控页签可以查看对应实例的GC、内存、线程、文件等信息。

image.png

池化监控

池化监控页签可以查看应用所使用的线程池或连接池的各项指标,包括核心线程数量、当前线程数量、最大线程数量、活跃线程数量、任务队列容量。

image.png

展开查看池化监控支持的框架。

线程池支持的框架

4.1.x及以上探针版本

支持框架:

  • java.util.ThreadPoolExecutor:一般用于Tomcat8~9.1、Dubbo、HSF、Vertx以及用户自定义线程池。

  • org.apache.tomcat.util.threads.ThreadPoolExecutor:一般用于Tomcat9.1+。

  • org.eclipse.jetty.util.thread.QueuedThreadPool:一般用于Jetty。

  • org.xnio.XnioWorker:一般用于Undertow。

采集的指标如下:

指标名

支持框架

指标描述

arms_thread_pool_core_pool_size

  • ThreadPoolExecutor(JDK)

  • ThreadPoolExecutor(Tomcat 9.1+)

  • XnioWorke

  • QueuedThreadPool

核心线程数,一般是静态配置,不会改变。

arms_thread_pool_max_pool_size

  • ThreadPoolExecutor(JDK)

  • ThreadPoolExecutor(Tomcat 9.1+)

  • XnioWorke

  • QueuedThreadPool

最大空闲连接数,一般是静态配置,不会改变。

arms_thread_pool_active_thread_count

  • ThreadPoolExecutor(JDK)

  • ThreadPoolExecutor(Tomcat 9.1+)

  • XnioWorke

  • QueuedThreadPool

活跃线程数,即当前正在执行任务的线程。

arms_thread_pool_current_thread_count

  • ThreadPoolExecutor(JDK)

  • ThreadPoolExecutor(Tomcat 9.1+)

  • QueuedThreadPool

当前线程数,包含活跃线程数和当前正在等待任务的线程数。

arms_thread_pool_max_thread_count

  • ThreadPoolExecutor(JDK)

  • ThreadPoolExecutor(Tomcat 9.1+)

线程池历史最大线程数。

arms_thread_pool_scheduled_task_count

  • ThreadPoolExecutor(JDK)

  • ThreadPoolExecutor(Tomcat 9.1+)

线程池调度任务数。

arms_thread_pool_completed_task_count

  • ThreadPoolExecutor(JDK)

  • ThreadPoolExecutor(Tomcat 9.1+)

线程池执行完成任务数。

arms_thread_pool_rejected_task_count

  • ThreadPoolExecutor(JDK)

  • ThreadPoolExecutor(Tomcat 9.1+)

  • QueuedThreadPool

线程池拒绝任务数。

arms_thread_pool_queue_size

  • ThreadPoolExecutor(JDK)

  • ThreadPoolExecutor(Tomcat 9.1+)

  • XnioWorke

  • QueuedThreadPool

线程池任务队列大小。

4.1.x以下探针版本

线程池监控支持Tomcat、HSF、Dubbo、Vert.x和Undertow框架,其中,3.1.x及以下版本探针支持Undertow1.x~Undertow2.0.x版本线程池监控,3.2.x及以上版本探针支持Undertow所有版本线程池监控。

采集的指标如下:

指标名称

指标

线程池核心线程数

arms_threadpool_core_size

线程池最大线程数

arms_threadpool_max_size

线程池活跃线程数

arms_threadpool_active_size

线程池队列大小

arms_threadpool_queue_size

线程池当前大小

arms_threadpool_current_size

线程池监控支持SchedulerX框架,采集的指标如下:

指标名称

指标

线程池活跃线程数

arms_threadpool_active_size

连接池支持的框架

4.1.x及以上探针版本

支持框架:DBCP(>2.0)、Vibur DBCP(>11.0)、c3p0(>0.9.2)、Druid、HikariCP(>3.0)、Jedis(>3.0)、Lettuce(>5.0)、Redisson(>3.0)。

采集的指标如下:

指标名

支持框架

指标描述

arms_connection_pool_connection_count

DBCP、c3p0、Vibur DBCP、Druid、Hikaricp、Jedis、Lettuce、Redisson

连接数,可通过State区分Active和Idle连接数。

arms_connection_pool_connection_min_idle_count

DBCP、Jedis、Druid、HikariCP、Lettuce

最小空闲连接数,一般是静态配置,不会改变。

arms_connection_pool_connection_max_idle_count

DBCP、Jedis、Druid、Lettuce、

最大空闲连接数,一般是静态配置,不会改变。

arms_connection_pool_connection_max_count

DBCP、Druid、Vibur DBCP、HikariCP

最大连接数,一般是静态配置,不会改变。

arms_connection_pool_pending_request_count

c3p0、HikariCP、Jedis

阻塞的连接请求数。

4.1.x以下探针版本

连接池监控支持okHttp2、okHttp3框架,采集的指标如下:

指标名称

指标

连接池活跃连接数

arms_threadpool_active_size

连接池当前连接数

arms_threadpool_current_size

连接池监控支持Apache HTTPClient框架,采集的指标如下:

指标名称

指标

连接池当前连接数

arms_threadpool_current_size

连接池最大连接数

arms_threadpool_max_size

连接池等待队列数

arms_threadpool_queue_size

连接池监控支持Druid框架,采集的指标如下:

指标名称

指标

连接池活跃连接数

arms_threadpool_active_size

连接池最大连接数

arms_threadpool_max_size

连接池监控支持Hikaricp框架,采集的指标如下:

指标名称

指标

连接池活跃连接数

arms_threadpool_active_size

连接池最大连接数

arms_threadpool_max_size

主机监控

主机监控页签可以查看CPU、内存、Disk(磁盘)、Load(负载)、网络流量和网络数据包的各项指标。

image.png

容器监控

容器环境(Prometheus版)

接入可观测监控 Prometheus 版的操作请参见Prometheus实例 for 容器服务

容器监控页签可以查看容器视角的CPU、内存、Disk(磁盘)、Load(负载)、网络流量和网络数据包的各项指标。

image.png

容器环境(ARMS自采集版)

未接入可观测监控 Prometheus 版的情况下,需要确保ARMS探针版本在4.1.0或以上。探针版本说明请参见探针(Java Agent)版本说明

容器监控页签可以查看容器视角的CPU、内存、网络流量的时序曲线。

image

调用链分析

调用链分析功能基于已存储的全量链路明细数据,通过自由组合筛选条件与聚合维度进行实时分析,可以满足不同场景的自定义诊断需求。更多信息,请参见调用链分析Span数据信息

相关文档

应用监控详细的指标信息,请参见应用监控指标说明