您可以通过线程池和连接池监控功能监控具体应用所使用的线程池或连接池的各项指标,包括核心线程数量、当前线程数量、最大线程数量、活跃线程数量、任务队列容量。
前提条件
仅专家版支持线程池和连接池监控功能。
开启线程池和连接池监控
2.7.1.3之前版本的Agent暂不支持线程池和连接池监控,请先升级Agent至2.7.1.3或以上版本。具体操作,请参见升级ARMS探针。
2.7.3.5及以上版本Agent默认已开启线程池和连接池监控。
2.7.1.3及以上版本的Agent请执行以下操作手动开启。
登录ARMS控制台,在左侧导航栏选择 。
在应用列表页面顶部选择目标地域,然后单击目标应用名称。
说明语言列显示图标的应用为接入应用监控的应用,显示-图标的应用为接入可观测链路 OpenTelemetry 版的应用。
在左侧导航栏单击应用设置。
在自定义配置页签下的高级设置区域,打开线程池监控的开关。
查看线程池和连接池监控指标
开启线程池和连接池监控功能后,您可以在应用详情的线程池监控和连接池监控页签查看各项监控指标。
线程池支持的框架
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 |
| 核心线程数,一般是静态配置,不会改变。 |
arms_thread_pool_max_pool_size |
| 最大空闲连接数,一般是静态配置,不会改变。 |
arms_thread_pool_active_thread_count |
| 活跃线程数,即当前正在执行任务的线程。 |
arms_thread_pool_current_thread_count |
| 当前线程数,包含活跃线程数和当前正在等待任务的线程数。 |
arms_thread_pool_max_thread_count |
| 线程池历史最大线程数。 |
arms_thread_pool_scheduled_task_count |
| 线程池调度任务数。 |
arms_thread_pool_completed_task_count |
| 线程池执行完成任务数。 |
arms_thread_pool_rejected_task_count |
| 线程池拒绝任务数。 |
arms_thread_pool_queue_size |
| 线程池任务队列大小。 |
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 |