您可以通過線程池和連接池監控功能監控具體應用所使用的線程池或連接池的各項指標,包括核心線程數量、當前線程數量、最大線程數量、活躍線程數量、任務隊列容量。
前提條件
僅專家版支持線程池和連接池監控功能。
開啟線程池和連接池監控
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 |