本文介紹了ARMS應用監控中常見的指標說明,您可以使用這些指標自訂Grafana大盤。
業務類指標
公用維度
維度名稱 | 維度Key |
服務名稱 | service |
服務PID | pid |
機器IP | serverIp |
介面 | rpc |
指標列表
所有訪問類型都包含下列指標,執行查詢操作時,只需要將$callType
替換為具體的訪問類型即可。詳細的訪問類型,請參見服務訪問類型及可用維度。
例如:需要查詢HTTP服務的請求數時,只需將arms_$callType_requests_count
修改為arms_http_requests_count
。
指標名稱 | 指標 | 指標類型 | 採集間隔 | 單位 | 維度 |
請求數 | arms_$callType_requests_count | Gauge | 15s | 無 | 不同服務訪問類型維度不同,詳細資料,請參見服務訪問類型及可用維度。 |
錯誤請求數 | arms_$callType_requests_error_count | Gauge | 15s | 無 | |
請求耗時 | arms_$callType_requests_seconds | Gauge | 15s | 秒 | |
慢請求數 | arms_$callType_requests_slow_count | Gauge | 15s | 無 | |
請求耗時分位元 | arms_$callType_requests_latency_seconds | Summary | 15s | 秒 | 僅當服務訪問類型為HTTP且開啟分位元統計的情況下存在。開啟分位元統計的操作,請參見進階設定。 Quantile分位元維度:
|
除分位元指標外,上述指標均是Gauge類型,即每個點的值都表示採集間隔內累計的總值。這一點與開源架構產生的指標是不同的。以計算1分鐘平均QPS為例,使用ARMS指標的promQL應當寫為 sum_over_time(arms_$callType_requests_count[1m])/60
,開源架構一般會寫為 rate(http_server_requests_count[1m])
。
彙總類業務指標
業務類指標針對每種不同的調用類型都建立了單獨的指標,這導致當單個應用程式套件含多個調用類型時(例如A應用同時包含HTTP和Dubbo兩種調用類型),編寫出的PromQL會特別冗長。
業務類指標記錄了完整的觀測維度,但在部分統計情境下並不需要所有的觀測維度,這導致直接查詢業務類指標在部分情境下效能較差。
為解決上述兩類問題,ARMS專門建立了彙總類業務指標。
指標說明
彙總類業務指標分為:
通用類
記錄了所有訪問類型的請求數、錯誤數、慢請求數、平均請求耗時。
資料庫類
記錄了資料庫訪問類型的請求數、錯誤數、慢請求數、平均請求耗時。
SQL類
記錄了資料庫訪問類型的請求數、錯誤數、慢請求數、平均請求耗時,相比資料庫類增加了SQL維度。
異常類
記錄了所有訪問類型在出現異常時的請求數及平均請求耗時。
狀態代碼類
記錄了HTTP情境下不同狀態代碼下的請求數。
分位元類
記錄了所有訪問類型的請求耗時分位元。
除分位元類外,每個大類中存在兩種指標,一種為普通彙總類指標,指標命名格式為xxx_raw; 一種為降維度指標,指標命名格式為xxx_ign_x_y(x、y為被彙總掉的維度,即該指標中不包含x、y維度)。
指標類型與採集間隔
如無特別說明,所有彙總類業務指標的類型均為Gauge類型,採集間隔為15秒。
公用維度
下述維度每個彙總類指標中都存在,統一說明如下:
維度 | 說明 |
pid | 應用PID |
service | 應用程式名稱 |
serverIp | 執行個體IP |
source | 指標來源:
|
指標列表
指標大類 | 指標名稱 | 指標 | 單位 | 其他維度 |
通用類 | 請求數 | arms_app_requests_count_raw | 個 |
|
arms_app_requests_count_ign_destid_endpoint_rpc | 個 | 不包含destId、endpoint、rpc三個維度。 | ||
arms_app_requests_count_ign_destid_endpoint_ppid_prpc | 個 | 不包含destId、endpoint、ppid、prpc維度。 | ||
arms_app_requests_count_ign_destid_endpoint_ppid_prpc_rpc | 個 | 不包含destId、endpoint、ppid、prpc、rpc維度。 | ||
arms_app_requests_count_ign_parent_ppid_prpc_rpc | 個 | 不包含parent、ppid、prpc、rpc維度。 | ||
arms_app_requests_count_ign_endpoint_parent_ppid_prpc_rpc | 個 | 不包含endpoint、parent、ppid、prpc、rpc維度。 | ||
錯誤請求數 | arms_app_requests_error_count_raw | 個 |
| |
arms_app_requests_error_count_ign_destid_endpoint_rpc | 個 | 不包含destId、endpoint、rpc三個維度。 | ||
arms_app_requests_error_count_ign_destid_endpoint_ppid_prpc | 個 | 不包含destId、endpoint、ppid、prpc維度。 | ||
arms_app_requests_error_count_ign_destid_endpoint_ppid_prpc_rpc | 個 | 不包含destId、endpoint、ppid、prpc、rpc維度。 | ||
arms_app_requests_error_count_ign_parent_ppid_prpc_rpc | 個 | 不包含parent、ppid、prpc、rpc維度。 | ||
arms_app_requests_error_count_ign_endpoint_parent_ppid_prpc_rpc | 個 | 不包含endpoint、parent、ppid、prpc、rpc維度。 | ||
慢請求數 | arms_app_requests_slow_count_raw | 個 |
| |
arms_app_requests_slow_count_ign_destid_endpoint_rpc | 個 | 不包含destId、endpoint、rpc三個維度。 | ||
arms_app_requests_slow_count_ign_destid_endpoint_ppid_prpc | 個 | 不包含destId、endpoint、ppid、prpc維度。 | ||
arms_app_requests_slow_count_ign_destid_endpoint_ppid_prpc_rpc | 個 | 不包含destId、endpoint、ppid、prpc、rpc維度。 | ||
arms_app_requests_slow_count_ign_parent_ppid_prpc_rpc | 個 | 不包含parent、ppid、prpc、rpc維度。 | ||
arms_app_requests_slow_count_ign_endpoint_parent_ppid_prpc_rpc | 個 | 不包含endpoint、parent、ppid、prpc、rpc維度。 | ||
請求耗時 | arms_app_requests_seconds_raw | 秒 |
| |
arms_app_requests_seconds_ign_destid_endpoint_rpc | 秒 | 不包含destId、endpoint、rpc三個維度。 | ||
arms_app_requests_seconds_ign_destid_endpoint_ppid_prpc | 秒 | 不包含destId、endpoint、ppid、prpc維度。 | ||
arms_app_requests_seconds_ign_destid_endpoint_ppid_prpc_rpc | 秒 | 不包含destId、endpoint、ppid、prpc、rpc維度。 | ||
arms_app_requests_seconds_ign_parent_ppid_prpc_rpc | 秒 | 不包含parent、ppid、prpc、rpc維度。 | ||
arms_app_requests_seconds_ign_endpoint_parent_ppid_prpc_rpc | 秒 | 不包含endpoint、parent、ppid、prpc、rpc維度。 | ||
資料庫類 | 資料庫請求數 | arms_db_requests_count_raw | 個 |
|
arms_db_requests_count_ign_rpc | 個 | 不包含介面維度。 | ||
資料庫請求錯誤數 | arms_db_requests_error_count_raw | 個 |
| |
arms_db_requests_error_count_ign_rpc | 個 | 不包含介面維度。 | ||
資料庫慢請求數 | arms_db_requests_slow_count_raw | 個 |
| |
arms_db_requests_slow_count_ign_rpc | 個 | 不包含介面維度。 | ||
資料庫請求耗時 | arms_db_requests_seconds_raw | 秒 |
| |
arms_db_requests_seconds_ign_rpc | 秒 | 不包含介面維度。 | ||
SQL類 | SQL請求數 | arms_sql_requests_count_raw |
| |
arms_sql_requests_count_ign_rpc | 不包含介面維度。 | |||
SQL請求錯誤數 | arms_sql_requests_error_count_raw | 個 |
| |
arms_sql_requests_error_count_ign_rpc | 個 | 不包含介面維度。 | ||
SQL慢請求數 | arms_sql_requests_slow_count_raw | 個 |
| |
arms_sql_requests_slow_count_ign_rpc | 個 | 不包含介面維度。 | ||
SQL請求耗時 | arms_sql_requests_seconds_raw | 秒 |
| |
arms_sql_requests_seconds_ign_rpc | 秒 | 不包含介面維度。 | ||
異常類 | 異常請求數 | arms_exception_requests_count_raw | 個 |
|
arms_exception_requests_count_ign_rpc | 個 | 不包含介面維度。 | ||
異常請求耗時 | arms_exception_requests_seconds_raw | 秒 |
| |
arms_exception_requests_seconds_ign_rpc | 秒 | 不包含介面維度。 | ||
狀態代碼類 | 分狀態代碼請求數 | arms_requests_by_status_count_raw | 個 |
|
arms_requests_by_status_count_ign_rpc | 個 | 不包含介面維度。 | ||
分位元類 | 請求耗時分位元 說明 僅4.x及以上版本探針支援。 | arms_uni_requests_latency_seconds |
|
使用樣本
使用promQL統計應用所有介面的請求數,如何選擇指標?
基於需求,我們需要找一個提供介面請求數的指標。通過查看文檔,可知通用類指標滿足需求。
接著鑒於統計結果只關心介面維度,其他維度例如上遊介面、上遊應用、遠端地址等都不關心,那麼在選擇具體指標時,先要確認指標中包含了介面維度,然後指標中所包含的其他維度越少越好。
綜上,最優的指標應該是arms_app_requests_count_ign_destid_endpoint_ppid_prpc。
JVM指標
公用維度
維度名稱 | 維度Key |
服務名稱 | service |
服務PID | pid |
機器IP | serverIp |
指標列表
指標名稱 | 指標 | 指標類型 | 採集間隔 | 單位 | 維度 |
累計GC發生次數 | arms_jvm_gc_total | Counter | 15s | 無 | Gen GC發生地區:
|
累計GC耗時 | arms_jvm_gc_seconds_total | Counter | 15s | 秒 | |
兩次採集間隔之間的GC次數 | arms_jvm_gc_delta | Gauge | 15s | 無 | |
兩次採集間隔之間的GC耗時 | arms_jvm_gc_seconds_delta | Gauge | 15s | 秒 | |
JVM線程數 | arms_jvm_threads_count | Gauge | 15s | 無 | State線程狀態:
|
JVM記憶體地區初始大小 | arms_jvm_mem_init_bytes | Gauge | 15s | 位元組 | Area地區:
ID地區細分:
|
JVM記憶體地區最大大小 | arms_jvm_mem_max_bytes | Gauge | 15s | 位元組 | |
JVM記憶體地區使用大小 | arms_jvm_mem_used_bytes | Gauge | 15s | 位元組 | |
JVM記憶體地區已提交大小 | arms_jvm_mem_committed_bytes | Gauge | 15s | 位元組 | |
JVM記憶體地區使用比例 | arms_jvm_mem_usage_ratio | Gauge | 15s | 比例(0~1) | |
JVM已載入類 | arms_class_load_loaded | Counter | 15s | 無 | 無 |
JVM已卸載類 | arms_class_load_un_loaded | Counter | 15s | 無 | 無 |
JVM緩衝池大小 | arms_jvm_buffer_pool_total_bytes | Gauge | 15s | 位元組 | ID地區:
|
JVM緩衝池已使用大小 | arms_jvm_buffer_pool_used_bytes | Gauge | 15s | 位元組 | |
JVM緩衝池個數 | arms_jvm_buffer_pool_count | Gauge | 15s | 無 | |
檔案描述符開啟個數 | arms_file_desc_open_count | Gauge | 15s | 無 | 無 |
檔案描述符開啟比例(已開啟數/最大允許開啟數) | arms_file_desc_open_ratio | Gauge | 15s | 比例(0~1) | 無 |
系統指標
公用維度
維度名稱 | 維度Key |
服務名稱 | service |
服務PID | pid |
機器IP | serverIp |
指標列表
指標名稱 | 指標 | 指標類型 | 採集間隔 | 單位 |
空閑CPU佔比 | arms_system_cpu_idle | Gauge | 15s | 百分數 |
IO等待CPU佔比 | arms_system_cpu_io_wait | Gauge | 15s | 百分數 |
系統CPU佔比 | arms_system_cpu_system | Gauge | 15s | 百分數 |
使用者態CPU佔比 | arms_system_cpu_user | Gauge | 15s | 百分數 |
系統負載(1分鐘) | arms_system_load | Gauge | 15s | 無 |
磁碟空閑大小 | arms_system_disk_free_bytes | Gauge | 15s | 位元組 |
磁碟總大小 | arms_system_disk_total_bytes | Gauge | 15s | 位元組 |
磁碟使用率 | arms_system_disk_used_ratio | Gauge | 15s | 比例(0~1) |
記憶體Buffer大小 | arms_system_mem_buffers_bytes | Gauge | 15s | 位元組 |
記憶體緩衝大小 | arms_system_mem_cached_bytes | Gauge | 15s | 位元組 |
記憶體空閑大小 | arms_system_mem_free_bytes | Gauge | 15s | 位元組 |
記憶體交換區空閑大小 | arms_system_mem_swap_free_bytes | Gauge | 15s | 位元組 |
記憶體交換區大小 | arms_system_mem_swap_total_bytes | Gauge | 15s | 位元組 |
記憶體大小 | arms_system_mem_total_bytes | Gauge | 15s | 位元組 |
已用記憶體大小 | arms_system_mem_used_bytes | Gauge | 15s | 位元組 |
網路接收流量大小 | arms_system_net_in_bytes | Gauge | 15s | 位元組 |
網口發送流量大小 | arms_system_net_out_bytes | Gauge | 15s | 位元組 |
網路入口錯誤數 | arms_system_net_in_err | Gauge | 15s | 無 |
網路出口錯誤數 | arms_system_net_out_err | Gauge | 15s | 無 |
線程池/串連池指標
公用維度
維度名稱 | 維度Key |
服務名稱 | service |
服務PID | pid |
機器IP | serverIp |
線程池名稱(4.1.x以下探針版本支援) | name |
線程池類型(4.1.x以下探針版本支援) | type |
指標列表
4.1.x及以上探針版本
線程池指標
指標名稱 | 指標 | 指標類型 | 採集間隔 | 維度 |
核心線程數 | arms_thread_pool_core_pool_size | Gauge | 15s |
|
最大空閑串連數 | arms_thread_pool_max_pool_size | Gauge | 15s |
|
活躍線程數 | arms_thread_pool_active_thread_count | Gauge | 15s |
|
當前線程數 | arms_thread_pool_current_thread_count | Gauge | 15s |
|
線程池歷史最大線程數 | arms_thread_pool_max_thread_count | Gauge | 15s |
|
線程池調度任務數 | arms_thread_pool_scheduled_task_count | Counter | 15s |
|
線程池執行完成任務數 | arms_thread_pool_completed_task_count | Counter | 15s |
|
線程池拒絕任務數 | arms_thread_pool_rejected_task_count | Counter | 15s |
|
線程池任務隊列大小 | arms_thread_pool_queue_size | Gauge | 15s |
|
串連池指標
指標描述 | 指標名 | 指標類型 | 採集間隔 | 維度 |
串連數 | arms_connection_pool_connection_count | Gauge | 15s |
|
最小空閑串連數 | arms_connection_pool_connection_min_idle_count | Gauge | 15s |
|
最大空閑串連數 | arms_connection_pool_connection_max_idle_count | Gauge | 15s |
|
最大串連數 | arms_connection_pool_connection_max_count | Gauge | 15s |
|
阻塞的串連請求數 | arms_connection_pool_pending_request_count | Counter | 15s |
|
4.1.x以下探針版本
指標名稱 | 指標 | 指標類型 | 採集間隔 | 維度 |
線程池核心線程數 | arms_threadpool_core_size | Gauge | 15s | 無 |
線程池最大線程數 | arms_threadpool_max_size | Gauge | 15s | 無 |
線程池活躍線程數 | arms_threadpool_active_size | Gauge | 15s | 無 |
線程池隊列大小 | arms_threadpool_queue_size | Gauge | 15s | 無 |
線程池當前大小 | arms_threadpool_current_size | Gauge | 15s | 無 |
線程池不同狀態任務數 | arms_threadpool_task_total | Gauge | 15s | Status任務狀態:
|
定時任務指標
僅定時任務存在以下指標。
公用維度
維度名稱 | 維度Key |
服務名稱 | service |
服務PID | pid |
機器IP | serverIp |
任務ID | rpc |
指標列表
指標名稱 | 指標 | 指標類型 | 採集間隔 | 單位 |
調度延遲 | arms_$callType_delay_milliseconds | Gauge | 15s | 毫秒 |
服務訪問類型及可用維度
用戶端類
訪問類型
http_client
dubbo_client
hsf_client
dsf_client
notify_client
grpc_client
thrift_client
sofa_client
mq_client
kafka_client
維度
parent:上遊服務的名稱
ppid:上遊服務PID
destId:請求對端擴充資訊
endpoint:請求對端地址
excepType:異常ID
excepInfo:異常ID編碼規則
excepName:異常名稱
stackTraceId:異常棧ID
DB類
訪問類型
mysql
oracle
mariadb
postgresql
ppas
sqlserver
mongodb
dmdb
維度
parent:上遊服務的名稱
ppid:上遊服務PID
destId:資料庫名稱
endpoint:資料庫地址
excepType:異常ID
excepInfo:異常ID編碼規則
excepName:異常名稱
stackTraceId:異常棧ID
sqlId:SQL語句ID
服務端類
訪問類型
http
dubbo
hsf
dsf
user_method
mq
kafka
grpc
thrift
sofa
維度
prpc:上遊介面
parent:上遊服務的名稱
ppid:上遊服務PID
endpoint:服務地址
excepType:異常ID
excepInfo:異常ID編碼規則
excepName:異常名稱
stackTraceId:異常棧ID
定時任務類
訪問類型
xxl_job
spring_scheduled
quartz
elasticjob
jdk_timer
schedulerx
維度
prpc:上遊介面
parent:上遊服務的名稱
ppid:上遊服務PID
excepType:異常ID
excepInfo:異常ID編碼規則
excepName:異常名稱
stackTraceId:異常棧ID