全部產品
Search
文件中心

Application Real-Time Monitoring Service:警示規則指標說明

更新時間:Jul 06, 2024

本文介紹ARMS應用監控警示規則中各類型的指標說明,所有警示指標的最小時間顆粒度為1分鐘。

JVM監控

說明 以下JVM指標說明僅為參考,JVM相關描述以JVM官方文檔為準。

指標說明

指標名稱單位是否為常用指標指標說明
JVM FullGC次數(瞬時值)最近N分鐘JVM執行了Full GC(Full Garbage Collection)的次數。可以根據該指標判斷應用是否過於頻繁發生FullGC,從而判斷應用是否存在異常。
JVM FullGC耗時(瞬時值)毫秒不是最近N分鐘JVM執行了Full GC(Full Garbage Collection)所花費的時間。Full GC耗時的瞬時值可以反映出當前JVM的記憶體回收效能,通常情況下,Full GC耗時越短,JVM的效能越好。如果Full GC耗時過長,可能會導致應用程式出現明顯的停頓,從而影響使用者體驗。
JVM YoungGC次數(瞬時值)最近N分鐘JVM執行Young GC(Young Generation Garbage Collection)的次數。Young GC次數的瞬時值可以反映出當前JVM中對象的建立和銷毀速度,以及Young Generation的使用方式。通常情況下,Young GC次數越多,表示應用程式中建立的對象越多,同時也可能意味著應用程式可能存在一些記憶體流失或者不合理的記憶體使用量方式。
JVM YoungGC耗時(瞬時值)毫秒不是最近N分鐘JVM執行Young GC(Young Generation Garbage Collection)所花費的時間。Young GC耗時的瞬時值可以反映出當前JVM中記憶體回收的效率和效能狀況。通常情況下,Young GC耗時越長,表示記憶體回收的效率越低,可能會導致應用程式出現卡頓或者停頓。
JVM堆內總記憶體量M不是JVM堆記憶體的總大小,包括年輕代和老年代的大小。JVM堆記憶體的大小應該根據應用程式的需要進行配置,過小會導致頻繁的記憶體回收,影響應用程式的效能;過大則會佔用過多的系統資源,影響系統的穩定性。一般來說,JVM堆記憶體的大小應該根據應用程式的負載和效能需求進行合理的調整。
JVM堆內使用記憶體量MJVM堆記憶體中已經被Java程式使用的記憶體大小。JVM堆內使用記憶體量應該被嚴格控制,避免因為記憶體流失或者過多的記憶體佔用導致系統效能下降或者記憶體溢出等問題。
JVM非堆記憶體提交值M不是非堆記憶體中已經被Java程式使用的記憶體大小。JVM非堆記憶體的提交值也需要被嚴格控制,避免因為過多的類載入、過多的靜態變數和常量等導致記憶體佔用過高。
JVM非堆記憶體初始值M不是根據JVM版本、作業系統和JVM參數等因素而定,並且通常是動態計算。
JVM非堆記憶體最大值M不是由JVM參數MaxPermSize(在Java 8之前)或MaxMetaspaceSize(在Java 8及以後)控制。
JVM非堆總使用記憶體量M非堆記憶體總使用量包括了元空間和永久代的使用量。
JVM阻塞線程數不是被阻塞等待監視器鎖的線程數量,過多的阻塞線程會導致系統效能下降。
JVM線程總數所有狀態的線程數量。線程數量過多可能會導致記憶體和CPU資源不足,從而影響應用的效能和穩定性。
JVM死結線程數不是兩個或多個線程互相等待對方釋放資源而無法繼續執行的情況。當JVM中出現死結時,死結線程數會隨著死結的發生而增加,直到達到死結狀態。通常,死結線程數越多,死結的影響越嚴重,在極端情況下甚至會導致應用程式的崩潰。
JVM建立線程數不是JVM建立的線程數量。JVM中可以建立大量的線程,但是過多的線程建立會導致系統資源的浪費和線程調度的負擔。
JVM可運行線程數不是JVM在運行時支援的最大線程數量。如果建立線程數量過多,會佔用大量的記憶體資源,導致系統變慢或者崩潰。
JVM終結線程數不是Java虛擬機器在運行時,可以同時啟動並執行線程數量。可以根據具體情況來控制線程的數量,避免出現線程資源浪費或者線程饑餓的問題。
JVM逾時等待線程數在JVM運行時,等待某個資源逾時的線程數量。如果逾時等待線程數過多,說明系統中存在某些瓶頸,需要對資源進行最佳化,以提高系統的處理能力和響應速度。
JVM等待線程數不是當前JVM中處於等待狀態的線程數量。對於高並發的應用程式來說,JVM等待線程數的增多可能會導致效能下降。
JVM記憶體回收次數(累計值)不是在Java虛擬機器中進行記憶體回收的累計次數。
JVM標記清除次數(累計值)不是在Java虛擬機器中進行標記清除演算法的累計次數。
JVM堆記憶體使用量率(%)不是JVM在運行過程中,堆記憶體已經分配的空間與堆記憶體總空間之間的比率。它可以用來衡量JVM記憶體管理的效率和效能。通常情況下,JVM堆記憶體使用量率應該盡量控制在70%以下,這樣可以避免出現記憶體溢出等問題。

指標維度

節點機IP,篩選條件如下:
  • 遍曆:遍曆每個節點機IP,針對每台節點機的指標資料單獨進行監控警示。
  • =:指定篩選固定的幾台節點機進行監控警示。樣本:=172.20.XX.XX
  • 無維度:匯總所有節點機的指標資料,針對所有節點機的指標資料進行匯總後監控警示。

定時任務

說明

ARMS應用監控目前僅支援展示XXL-JOB/SchedulerX/JDK-Timer類型的定時任務。

指標說明

指標名稱單位是否為常用指標指標說明
已耗用時間毫秒不是定時任務啟動並執行平均耗時。
運行次數不是定時任務啟動並執行次數。
運行異常次數不是在設定的時間間隔內,定時任務因為某些原因沒有正常執行的次數。
調度延遲時間毫秒不是定時任務啟動前,調度花費的時間。

指標維度

定時任務,篩選條件如下:
  • 遍曆:遍曆每個定時任務,針對每個定時任務的指標資料單獨進行監控警示。
  • =:指定篩選固定的幾個定時任務進行監控警示,樣本:=LoadGenerator.mockUserApiLoad
  • 無維度:匯總所有定時任務的指標資料,針對所有定時任務的指標資料進行匯總後監控警示。

異常監控

指標說明

指標名稱單位是否為常用指標指標說明
異常發生次數在軟體系統運行過程中發生的各種異常的次數,如null 指標異常、數組越界異常、IO異常等。可以根據該指標判斷呼叫堆疊是否拋錯,從而判斷是否存在應用調用異常。
異常介面調用回應時間毫秒該應用異常調用的回應時間,其中,異常調用指調用中出現異常拋錯的調用。可以根據該指標判斷呼叫堆疊拋錯對應用調用回應時間的影響大小,從而判斷是否存在應用調用異常。

指標維度

介面名稱,篩選條件如下:
  • 遍曆:遍曆每個訪問到的介面,針對每個介面的指標資料單獨進行監控警示。
  • = :指定篩選固定的幾個介面進行監控警示,樣本:=/tb/api/users/{userId}
  • !=:排除固定的幾個介面不進行監控警示,剩餘的介面單獨進行監控警示,樣本:!=/tb/api/users/{userId}
  • 包含:指定包含關鍵字的介面進行監控警示,樣本:包含api
  • 不包含:排除包含關鍵字的介面進行監控警示,樣本:不包含api
  • 正則匹配:通過Regex匹配介面進行監控警示,樣本:=/(api)/i
  • 無維度:匯總所有介面的指標資料,針對所有介面的指標資料進行匯總後監控警示。
異常名稱,篩選條件如下:
  • 遍曆:遍曆每個訪問到的異常,針對每個異常的指標資料單獨進行監控警示。
  • = :指定篩選固定的幾個異常進行監控警示,樣本:=FeignException$InternalServerError
  • !=:排除固定的幾個異常不進行監控警示,剩餘的異常單獨進行監控警示,樣本:!=FeignException$InternalServerError
  • 包含:指定包含關鍵字的異常進行監控警示,樣本:包含data
  • 不包含:排除包含關鍵字的異常進行監控警示,樣本:不包含apidata。
  • 正則匹配:通過Regex匹配異常進行監控警示,樣本:=/(data)/i
  • 無維度:匯總所有異常的指標資料,針對所有異常的指標資料進行匯總後監控警示。

應用依賴服務統計

指標說明

指標名稱單位是否為常用指標指標說明
應用依賴服務調用次數不是該應用依賴的下遊介面的調用次數,用於判斷下遊依賴服務調用是否增多。
應用依賴服務調用錯誤率(%)不是該應用依賴的下遊介面的錯誤次數除以總請求數,用於判斷下遊依賴服務報錯是否增多,影響當前應用。
應用依賴服務調用回應時間(單位:毫秒)毫秒該應用依賴的下遊介面的平均回應時間,用於判斷下遊依賴服務耗時是否增多,影響當前應用。

指標維度

介面調用類型,篩選條件如下:
  • 遍曆:遍曆每個介面類型,針對每個類型(HTTP/MySQL/Redis等)介面的指標資料單獨進行監控警示。
  • =:指定篩選固定的幾個介面類型進行監控警示,樣本:=http
  • 無維度:匯總所有介面的指標資料,針對所有介面的指標資料進行匯總後監控警示。

主機監控

指標說明

指標名稱單位是否為常用指標指標說明
節點機CPU使用率(%)不是節點機(伺服器)上CPU處理器的使用率,過高的CPU使用率會導致系統響應變慢、服務不可用等問題。
節點機CPU使用者態佔用率(%)不是節點機上CPU處理器在使用者態啟動並執行進程佔用的CPU時間佔總CPU時間的比例。使用者態進程是指運行在使用者空間的應用程式,如Web服務、資料庫等。
節點機空閑磁碟MB節點機上未被佔用的磁碟空間,可以根據該指標判斷節點機磁碟是否已滿,磁碟滿可能會導致系統崩潰或無法正常工作。
節點機磁碟利用率(%)不是節點機中硬碟的使用方式,即已使用的磁碟空間佔總磁碟空間的比例。磁碟利用率越高,表示節點機的儲存容量越緊張。
節點機系統負載可以根據該指標判斷節點機目前工作負載是否過高,一般擁有N核的節點機,負載建議不應高於N。
節點機空閑記憶體MB節點機中當前未被使用的記憶體空間大小。可以根據該指標判斷節點機記憶體是否充足,若節點機空閑記憶體量低,則易導致OOM等異常。
節點機記憶體利用率(%)不是當前節點機已經使用的記憶體佔總記憶體的比例。如果節點機的記憶體利用率超過了80%,就需要考慮調整節點機配置或者最佳化任務使用記憶體的方式來降低記憶體壓力。
節點機接收錯誤判文數不是節點機在處理網路通訊時接收到的錯誤判文的數量。這些錯誤判文可能是由於網路傳輸問題、應用程式問題或者其他原因引起的。錯誤判文可能會導致節點機無法正常處理網路通訊,從而影響系統的正常運行。
節點機發送錯誤判文數不是節點機在處理網路通訊時發送了錯誤判文的數量。這些錯誤判文可能是由於網路傳輸問題、應用程式問題或者其他原因引起的。可以根據該指標判斷節點機網路是否異常。
JVM執行個體數當前即時啟動並執行Java虛擬機器執行個體數量,常用於服務宕機警示配置。
節點機發送的位元組數不是節點機通過網路連接發送的資料量,其中包括應用程式發送的資料、系統訊息和錯誤資訊等。
節點機發送的報文數不是節點機通過網路連接發送的訊息的數量。
節點機接收的位元組數不是節點機通過網路連接接收的資料的總量。
節點機接收的報文數不是節點機通過網路連接接收到的報文的數量。

指標維度

節點機IP,篩選條件如下:
  • 遍曆:遍曆每個節點機IP,針對每台節點機的指標資料單獨進行監控警示。
  • =:指定篩選固定的幾台節點機進行監控警示。樣本:=172.20.XX.XX
  • 無維度:匯總所有節點機的指標資料,針對所有節點機的指標資料進行匯總後監控警示。

應用提供服務統計

指標說明

指標名稱單位是否為常用指標指標說明
調用次數應用入口調用(包括調用HTTP入口、調用Dubbo入口等)的次數。可以根據該指標分析當前應用調用量的大小,從而判斷業務量的大小,以及通過調用量是否偏大或偏小判斷應用是否存在異常。
調用錯誤次數應用入口調用(包括調用HTTP入口和調用Dubbo入口等)的錯誤次數,調用錯誤是指整個對外(HTTP、Dubbo)調用行為的返回狀態代碼>400的情況, 或者Dubbo有異常被最上層攔截的情況,都視為錯誤。可以根據該指標判斷應用是否存在調用錯誤。
調用錯誤率(%)應用入口調用的調用錯誤次數的總和/入口的調用次數的總和*100%。
調用回應時間毫秒應用入口調用(包括調用HTTP入口、調用Dubbo入口等)的回應時間。可以根據該指標判斷是否有慢請求出現,從而判斷應用是否存在異常。

指標維度

介面名稱,篩選條件如下:
  • 遍曆:遍曆每個訪問到的介面,針對每個介面的指標資料單獨進行監控警示。
  • = :指定篩選固定的幾個介面進行監控警示,樣本:=/tb/api/users/{userId}
  • !=:排除固定的幾個介面不進行監控警示,剩餘的介面單獨進行監控警示,樣本:!=/tb/api/users/{userId}
  • 包含:指定包含關鍵字的介面進行監控警示,樣本:包含api
  • 不包含:排除包含關鍵字的介面進行監控警示,樣本:不包含api
  • 正則匹配:通過Regex匹配介面進行監控警示,樣本:=/(api)/i
  • 無維度:匯總所有介面的指標資料,針對所有介面的指標資料進行匯總後監控警示。
介面調用類型,篩選條件如下:
  • 遍曆:遍曆每個介面類型,針對每個類型(HTTP/MySQL/Redis等)介面的指標資料單獨進行監控警示。
  • =:指定篩選固定的幾個介面類型進行監控警示,樣本:=http
  • 無維度:匯總所有介面的指標資料,針對所有介面的指標資料進行匯總後監控警示。

線程池監控

指標說明

指標名稱是否為常用指標指標說明
核心線程數線上程池中始終保持活動的線程數。
最大線程數線上程池中能夠同時存在的最大線程數量。
活躍線程數當前正在執行任務的線程數量。活躍線程數的檢查可以用來監控線程池的運行狀態,以及評估線程池的效能。
隊列大小線程隊列的大小取決於應用程式的需求和系統資源的可用性。在多線程編程中,當隊列大小過小時,可能會導致任務排隊等待的時間過長,從而降低程式的效能;而當隊列大小過大時,可能會導致系統資源的消耗過多,從而導致系統崩潰或者效能下降。
當前線程數正在運行或等待啟動並執行線程數量。
已執行任務數在一個任務隊列或線程池中已經被執行並完成的任務數量,可以用來評估任務隊列或線程池的效能。
線程池使用率線程池中正在使用的線程數與線程池匯流排程數之比,反映了當前線程池的使用方式。

指標維度

節點機IP,篩選條件如下:
  • 遍曆:遍曆每個節點機IP,針對每台節點機的指標資料單獨進行監控警示。
  • =:指定篩選固定的幾台節點機進行監控警示。樣本:=172.20.XX.XX
  • 無維度:匯總所有節點機的指標資料,針對所有節點機的指標資料進行匯總後監控警示。
線程池名稱,篩選條件如下:
  • 遍曆:遍曆每個線程池,針對每個線程池的指標資料單獨進行監控警示。
  • =:指定篩選固定的幾個線程池進行監控警示,樣本:=pool-*-thread-*
  • 無維度:匯總所有線程池的指標資料,針對所有線程池的指標資料進行匯總後監控警示。
線程池類型,篩選條件如下:
  • 遍曆:遍曆每個類型的線程池,針對每個類型的線程池的指標資料單獨進行監控警示。
  • =:指定篩選固定的幾個類型的線程池進行監控警示,樣本:=FixedThreadPool
  • 無維度:匯總所有類型線程池的指標資料,針對所有類型的線程池的指標資料進行匯總後監控警示。

HTTP狀態代碼異常

指標說明

指標名稱是否為常用指標指標說明
HTTP介面狀態代碼4xx調用次數用戶端向伺服器發送請求時,伺服器返回的標準響應狀態代碼為4xx的調用次數,例如請求的資源不存在、缺少必要的參數等,常見的4xx狀態代碼有400和404。
HTTP介面狀態代碼5xx調用次數用戶端向伺服器發送請求時,伺服器返回的標準響應狀態代碼為5xx的調用次數,例如伺服器內部錯誤、系統繁忙等,常見的5xx狀態代碼有500和503。

指標維度

介面名稱,篩選條件如下:
  • 遍曆:遍曆每個訪問到的介面,針對每個介面的指標資料單獨進行監控警示。
  • = :指定篩選固定的幾個介面進行監控警示,樣本:=/tb/api/users/{userId}
  • !=:排除固定的幾個介面不進行監控警示,剩餘的介面單獨進行監控警示,樣本:!=/tb/api/users/{userId}
  • 包含:指定包含關鍵字的介面進行監控警示,樣本:包含api
  • 不包含:排除包含關鍵字的介面進行監控警示,樣本:不包含api
  • 正則匹配:通過Regex匹配介面進行監控警示,樣本:=/(api)/i
  • 無維度:匯總所有介面的指標資料,針對所有介面的指標資料進行匯總後監控警示。

資料庫指標

指標說明

指標名稱單位是否為常用指標指標說明
資料庫調用次數應用程式在執行過程中,向資料庫發送請求的次數。每次請求通常包含一次讀取或寫入操作。資料庫調用次數的多少直接影響了應用程式的效能和回應時間。
資料庫調用錯誤次數應用程式在執行過程中,向資料庫發送請求時出現錯誤的次數。這些錯誤可能包括資料庫連接失敗、查詢語句錯誤、許可權不足等。資料庫調用錯誤次數越多,說明應用程式與資料庫的互動存在問題,可能導致應用程式無法正常工作。
資料庫調用回應時間毫秒從應用程式發送請求到資料庫,到資料庫返迴響應結果的時間。資料庫調用回應時間的快慢直接影響應用程式的效能和使用者體驗。如果回應時間過長,使用者可能會感到應用程式卡頓或無響應,降低使用者滿意度。

指標維度

資料庫名稱,篩選條件如下:
  • 遍曆:遍曆每個資料庫,針對每個資料庫的指標資料單獨進行監控警示。
  • =:指定篩選固定的幾個資料庫進行監控警示,樣本:=mysql-pod:3306(demo_db)
  • 無維度:匯總所有資料庫的指標資料,針對所有資料庫的指標資料進行匯總後監控警示。