Konfigurasi yang salah atau kehabisan kapasitas pada kolam thread dan kolam koneksi dapat menyebabkan timeout permintaan, kebocoran koneksi, serta kegagalan berantai. Pemantauan kolam thread dan kolam koneksi di Application Real-Time Monitoring Service (ARMS) mengumpulkan metrik secara real-time dari aplikasi Java Anda sehingga Anda dapat:
Mendeteksi kejenuhan kolam thread sebelum menyebabkan timeout permintaan
Mengidentifikasi kebocoran koneksi dengan melacak rasio koneksi aktif terhadap koneksi idle
Menyesuaikan ukuran konfigurasi kolam berdasarkan data pemanfaatan aktual
ARMS mengumpulkan metrik dari framework populer, termasuk Tomcat, Dubbo, Jetty, Undertow, HikariCP, Druid, dan lainnya.
Fitur ini hanya didukung oleh Edisi Pro Pemantauan Aplikasi.
Sebelum memulai
Pastikan aplikasi Anda dipantau oleh ARMS. Untuk informasi selengkapnya, lihat Ikhtisar.
Kompatibilitas versi
| Versi agen ARMS | Pemantauan kolam thread dan kolam koneksi | Tindakan yang diperlukan |
|---|---|---|
| V2.7.3.5 dan yang lebih baru | Diaktifkan secara default | Tidak ada |
| V2.7.1.3 hingga V2.7.3.4 | Didukung, memerlukan pengaktifan manual | Lihat Aktifkan pemantauan secara manual |
| Sebelum V2.7.1.3 | Tidak didukung | Perbarui agen ARMS ke V2.7.1.3 atau yang lebih baru |
Aktifkan pemantauan secara manual
Jika versi agen ARMS Anda V2.7.3.5 atau lebih baru, pemantauan sudah diaktifkan. Lewati bagian ini.
Untuk agen ARMS versi V2.7.1.3 hingga V2.7.3.4:
Masuk ke Konsol ARMS. Di panel navigasi sebelah kiri, pilih Application Monitoring > Application List.
Pada halaman Application List, pilih wilayah di bilah navigasi atas, lalu klik nama aplikasi.
Ikon pada kolom Language menunjukkan bahasa pemrograman: -
: Java -
: Go -
: Python - - (Hyphen): aplikasi yang dipantau di Managed Service for OpenTelemetryDi panel navigasi sebelah kiri, klik Application Settings.
Klik tab Custom Configuration. Di bagian Pooled Monitoring Configuration, aktifkan Thread pool, connection pool monitoring.
Lihat data pemantauan
Buka halaman Application Details untuk aplikasi Anda. Data pemantauan tersedia di dua tab:
Thread pool monitoring: menampilkan metrik thread per kolam, seperti ukuran inti, jumlah aktif, dan kedalaman antrian.

Connection pool monitoring: menampilkan metrik koneksi per kolam, seperti total koneksi, koneksi idle, dan permintaan tertunda.

Framework dan metrik yang didukung
Framework kolam thread
Agen ARMS V4.1.x dan yang lebih baru
Tabel berikut mencantumkan kelas Java yang diinstrumentasi oleh agen ARMS beserta framework yang sesuai.
| Kelas Java | Framework |
|---|---|
java.util.ThreadPoolExecutor | Apache Tomcat 8 hingga 9.1, Apache Dubbo, HSF (High-speed Service Framework), Vert.x, dan kolam thread yang ditentukan pengguna |
org.apache.tomcat.util.threads.ThreadPoolExecutor | Tomcat 9.1+ |
org.eclipse.jetty.util.thread.QueuedThreadPool | Jetty |
org.xnio.XnioWorker | Undertow |
Metrik kolam thread (V4.1.x dan yang lebih baru)
| Metrik | Deskripsi | Framework yang didukung |
|---|---|---|
arms_thread_pool_core_pool_size | Jumlah thread inti. Nilai yang dikonfigurasi dan tidak berubah selama runtime. | ThreadPoolExecutor (JDK), ThreadPoolExecutor (Tomcat 9.1+), XnioWorker, QueuedThreadPool |
arms_thread_pool_max_pool_size | Jumlah maksimum thread. Nilai yang dikonfigurasi dan tidak berubah selama runtime. | ThreadPoolExecutor (JDK), ThreadPoolExecutor (Tomcat 9.1+), XnioWorker, QueuedThreadPool |
arms_thread_pool_active_thread_count | Thread yang sedang menjalankan tugas. | ThreadPoolExecutor (JDK), ThreadPoolExecutor (Tomcat 9.1+), XnioWorker, QueuedThreadPool |
arms_thread_pool_current_thread_count | Jumlah thread saat ini, termasuk thread aktif dan idle. | ThreadPoolExecutor (JDK), ThreadPoolExecutor (Tomcat 9.1+), QueuedThreadPool |
arms_thread_pool_max_thread_count | Jumlah thread puncak sejak kolam dibuat. | ThreadPoolExecutor (JDK), ThreadPoolExecutor (Tomcat 9.1+) |
arms_thread_pool_scheduled_task_count | Total tugas yang dikirim ke kolam. | ThreadPoolExecutor (JDK), ThreadPoolExecutor (Tomcat 9.1+) |
arms_thread_pool_completed_task_count | Total tugas yang telah selesai dieksekusi. | ThreadPoolExecutor (JDK), ThreadPoolExecutor (Tomcat 9.1+) |
arms_thread_pool_rejected_task_count | Total tugas yang ditolak oleh kolam. Peningkatan jumlah ini menunjukkan kejenuhan kolam. | ThreadPoolExecutor (JDK), ThreadPoolExecutor (Tomcat 9.1+), QueuedThreadPool |
arms_thread_pool_queue_size | Kedalaman antrian tugas saat ini. | ThreadPoolExecutor (JDK), ThreadPoolExecutor (Tomcat 9.1+), XnioWorker, QueuedThreadPool |
Agen ARMS versi sebelum V4.1.x
Versi agen sebelum V4.1.x mendukung pemantauan kolam thread untuk framework berikut: Apache Tomcat, HSF, Apache Dubbo, Vert.x, dan Undertow.
Agen V3.1.x dan yang lebih lama hanya mendukung Undertow V1.x dan V2.x. Agen V3.2.x dan yang lebih baru mendukung semua versi Undertow.
Metrik kolam thread (lebih lama dari V4.1.x)
| Metrik | Deskripsi |
|---|---|
arms_threadpool_core_size | Jumlah thread inti |
arms_threadpool_max_size | Jumlah maksimum thread |
arms_threadpool_active_size | Jumlah thread aktif |
arms_threadpool_queue_size | Ukuran antrian tugas |
arms_threadpool_current_size | Jumlah thread saat ini |
Framework SchedulerX juga didukung, dengan satu metrik yang dikumpulkan:
| Metrik | Deskripsi |
|---|---|
arms_threadpool_active_size | Jumlah thread aktif |
Framework kolam koneksi
Agen ARMS V4.1.x dan yang lebih baru
| Framework | Versi minimum |
|---|---|
| DBCP | 2.0 |
| Vibur DBCP | 11.0 |
| c3p0 | 0.9.2 |
| Apache Druid | Semua versi |
| HikariCP | 3.0 |
| Jedis | 3.0 |
| Lettuce | 5.0 |
| Redisson | 3.0 |
| Tomcat DBCP | 8.0 |
| Tomcat JDBC | 8.0 |
Metrik kolam koneksi (V4.1.x dan yang lebih baru)
| Metrik | Deskripsi | Framework yang didukung |
|---|---|---|
arms_connection_pool_connection_count | Total koneksi, termasuk koneksi aktif dan idle. | DBCP, c3p0, Vibur DBCP, Druid, HikariCP, Jedis, Lettuce, Redisson, Tomcat DBCP, Tomcat JDBC |
arms_connection_pool_connection_min_idle_count | Jumlah minimum koneksi idle. Nilai yang dikonfigurasi dan tidak berubah selama runtime. | DBCP, Jedis, Druid, HikariCP, Lettuce, Tomcat DBCP, Tomcat JDBC |
arms_connection_pool_connection_max_idle_count | Jumlah maksimum koneksi idle. Nilai yang dikonfigurasi dan tidak berubah selama runtime. | DBCP, Jedis, Druid, Lettuce, Tomcat DBCP, Tomcat JDBC |
arms_connection_pool_connection_max_count | Jumlah maksimum koneksi. Nilai yang dikonfigurasi dan tidak berubah selama runtime. | DBCP, Druid, Vibur DBCP, HikariCP, Tomcat DBCP, Tomcat JDBC |
arms_connection_pool_pending_request_count | Permintaan koneksi yang diblokir menunggu koneksi yang tersedia. | c3p0, HikariCP, Jedis, Tomcat DBCP, Tomcat JDBC |
Agen ARMS lebih lama dari V4.1.x
Versi agen sebelum V4.1.x mendukung pemantauan kolam koneksi untuk framework berikut.
OkHttp2 dan OkHttp3
| Metrik | Deskripsi |
|---|---|
arms_threadpool_active_size | Jumlah koneksi aktif |
arms_threadpool_current_size | Jumlah koneksi saat ini |
Apache HttpClient
| Metrik | Deskripsi |
|---|---|
arms_threadpool_current_size | Jumlah koneksi saat ini |
arms_threadpool_max_size | Jumlah maksimum koneksi |
arms_threadpool_queue_size | Ukuran antrian permintaan tertunda |
Apache Druid
| Metrik | Deskripsi |
|---|---|
arms_threadpool_active_size | Jumlah koneksi aktif |
arms_threadpool_max_size | Jumlah maksimum koneksi |
HikariCP
| Metrik | Deskripsi |
|---|---|
arms_threadpool_active_size | Jumlah koneksi aktif |
arms_threadpool_max_size | Jumlah maksimum koneksi |