全部產品
Search
文件中心

Application Real-Time Monitoring Service:線程池和串連池監控

更新時間:Jul 06, 2024

您可以通過線程池和串連池監控功能監控具體應用所使用的線程池或串連池的各項指標,包括核心線程數量、當前線程數量、最大線程數量、活躍線程數量、任務隊列容量。

前提條件

接入應用監控

重要

僅專家版支援線程池和串連池監控功能。

開啟線程池和串連池監控

2.7.1.3之前版本的Agent暫不支援線程池和串連池監控,請先升級Agent至2.7.1.3或以上版本。具體操作,請參見升級ARMS探針

  • 2.7.3.5及以上版本Agent預設已開啟線程池和串連池監控。

  • 2.7.1.3及以上版本的Agent請執行以下操作手動開啟。

  1. 登入ARMS控制台,在左側導覽列選擇應用監控 > 應用列表

  2. 應用列表頁面頂部選擇目標地區,然後單擊目標應用程式名稱。

    說明

    語言列的表徵圖含義如下:

    Java表徵圖:接入應用監控的Java應用。

    image:接入應用監控的Golang應用。

    -:接入Managed Service for OpenTelemetry的應用。

  3. 在左側導覽列單擊應用設定

  4. 自訂配置頁簽下的進階設定地區,開啟線程池監控的開關。

查看線程池和串連池監控指標

開啟線程池和串連池監控功能後,您可以在應用詳情線程池監控串連池監控頁簽查看各項監控指標。

圖 1. 線程池監控線程池監控

圖 2. 串連池監控串連池監控

線程池支援的架構

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