全部產品
Search
文件中心

Application Real-Time Monitoring Service:Java應用自訂配置

更新時間:Dec 20, 2025

您可以在自訂配置頁簽上調整探針功能開關、採樣策略等常用設定。

說明

如果您需要使用API方式調整,請參見SaveTraceAppConfig

前提條件

重要

ARMS應用監控面向已開通新版計費的使用者提供全新的監控詳情頁面,新版計費詳情,請參見產品計費(新版)

對於未開通新版計費的使用者,如需查看新版監控詳情頁面,可在應用列表頁面單擊切換新版

已為應用安裝探針,具體操作,請參見應用監控接入概述

功能入口

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

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

    說明

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

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

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

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

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

  3. 在上方導覽列選擇應用配置 > 自訂配置

  4. 設定自訂配置參數,設定完成後,單擊儲存

採樣設定

採樣設定地區,可以為調用鏈設定採樣策略、採樣率以及一些全採樣介面特徵,同時也可以選擇開關小流量採樣。更多資訊,請參見調用鏈取樣模式選擇(3.2.8及以上探針版本)

探針開關設定

探針開關設定地區,可以控制應用監控的啟停並調整各外掛程式開關。

重要

應用監控的啟停修改即時生效,無需重啟應用。如果暫停應用監控,則系統將無法監控您的應用,請謹慎操作。要使對各外掛程式開關的修改生效,必須手動重啟應用。

image

線程分析設定

線程分析設定地區,可以開啟或關閉線程分析總控開關。

應用日誌關聯配置

應用日誌關聯配置地區,可以設定應用關聯的日誌源資訊,自動填滿TraceId、SpanId。更多資訊,請參見日誌分析

image

  • 自動填滿TraceId、SpanId配置作用:開啟後,無需手動修改日誌設定檔即可往日誌中自動注入Trace ID、Span ID。

    配置效果

    如下圖所示,在未修改日誌設定檔情況下,log4j、log4j2、logback均自動在日誌中列印了Trace ID和Span ID。

    image

  • 支援日誌MDC中添加traceId:4.x探針中預設不再支援通過org.slf4j.MDC.get(“EagleEye-TraceID”)方式擷取TraceId,如果仍需通過該方式擷取,可以開啟當前開關。

URL收斂設定

URL收斂設定地區,可以開啟或關閉收斂功能的開關,並設定收斂閾值、收斂規則。URL收斂是指將具有相似性的一系列URL作為一個單獨的個體展示,例如將前半部分都為/service/demo/的一系列URL集中展示。收斂閾值是指要進行URL收斂的最低數量條件,例如當閾值為100時,則符合規則Regex的URL數量達到100才會對它們進行收斂。更多資訊,請參見ARMS收斂機制說明

image.png

Arthas監控

Arthas監控地區,可以開啟或關閉Arthas診斷功能,並設定生效IP。更多資訊,請參見Arthas診斷

image.png

持續剖析設定

持續剖析設定地區,可以開啟或關閉總開關、CPU熱點、記憶體熱點、代碼熱點功能,並設定生效IP或網段。更多資訊,請參見Java應用持續剖析

image.png

資訊脫敏設定

資訊脫敏設定地區,通過設定脫敏規則,探針將對JVM系統參數、K8s Yaml、方法入參、Arthas環境變數和系統變數等內容在採集時進行脫敏處理。脫敏規則中各元素通過英文半形逗號分隔,每一個元素代表一個不區分大小寫Regex,以password為例,脫敏規則等同於Regex.*password.*

探針在採集資料時會對資料的key按照對應的運算式進行過濾,如果滿足條件,該key會被認為包含敏感性資料進行脫敏處理。如下圖所示,當脫敏規則為licenseKey時,其對-Darms.licenseKey為key的資訊進行了脫敏處理。資訊脫敏2

IP脫敏開啟後效果如下:

介面調用配置

介面調用配置地區,可以設定慢調用閾值、異常白名單、HTTP狀態代碼白名單、無效介面調用過濾等策略。

image

  • 慢調用閾值:預設為500,當介面回應時間大於該閾值的時候,該介面會被標記為慢調用。

  • HTTP狀態代碼白名單

    預設情況下,HTTP 狀態代碼大於等於 400 會被歸類為錯誤調用。如果您不希望某類狀態代碼被歸類為錯誤,可以設定白名單來忽略這類錯誤。

    僅對應用監控當前支援的 HTTP 架構產生影響。

    影響資料:HTTP 服務端/用戶端的錯誤數指標(arms_http_requests_error_count、arms_http_client_requests_error_count、arms_app_requests_error_count)、Span 狀態。

    影響功能應用概覽提供服務依賴服務頁簽中的錯誤數,調用鏈分析頁面的 Span 狀態、錯誤數警示。

    內容格式:填寫單一狀態代碼,多個狀態代碼用英文半形逗號(,)分隔,不支援模糊比對。

    樣本403,502

    預設值:空

  • 無效介面調用過濾

    如果您不希望在提供服務頁簽看到這類調用,可以輸入不需要查看調用情況的介面名,探針將不會上報相關介面產生的觀測資料,從而將其從介面調用頁面隱去。

    說明
    • 對於4.2.0以下版本Java 探針,該功能僅會對提供服務中出現的介面有效。

    • 對於4.2.0及以上版本Java 探針,該功能會對任意一個 LocalRootSpan 生效。

    影響資料:介面對應的所有指標、Span 都會被忽略。

    影響功能應用概覽提供服務依賴服務頁簽對應介面的所有指標,調用鏈分析頁面的 Span 數量、對應介面的調用量、錯誤數、慢調用警示。

    內容格式:使用字串AntPath 運算式匹配無效介面全名,多個規則請使用英文半形逗號(,)分隔。(預設值的 AntPath 運算式寫法是為了相容存量資料,不建議刪除,新增配置請拼接在原有規則之後)。

    樣本/api/test/*,/api/playground/create

    預設值/**/*.jpg,/**/*.png,/**/*.js,/**/*.jpeg,/**/*.pdf,/**/*.xlsx,/**/*.txt,/**/*.docs,/**/*.gif,/**/*.csv

  • 介面調用指標是否記錄上遊介面名介面調用指標是否記錄上遊應用程式名稱

    配置作用:控制介面指標中是否記錄調用該介面的上遊應用和上遊介面,主要影響提供服務中的鏈路上下遊是否有資料。當應用的上遊應用較多時,記錄該資訊可能導致指標上報量劇增,增加費用。

    配置效果:如圖所示,關閉了介面指標記錄上遊應用和介面,可以看到相應的資料降為0。

    2024-10-31_14-51-35

  • 介面調用指標是否記錄原始狀態代碼

    配置作用:在HTTP介面相關指標中記錄原始的響應碼。

    配置效果

    image

  • 介面記錄HTTP方法名:開關開啟後, 介面調用頁面實際展開的介面名中包含HTTP請求的方法名。例如:開啟前是/api/v1/use/{userId}, 開啟後是GET /api/v1/use/{userId}

資料庫調用配置

資料庫調用配置地區,可以設定慢SQL閾值、採集SQL最大保留長度,並設定是否展示SQL中的變數綁定值以及常量值,是否記錄MySQL查詢傳回值大小。

image

  • 展示SQL中的變數綁定值:捕獲PrepareStatement參數綁定的變數值,無需重啟應用即可生效。

    記錄PrepareStatement參數綁定的變數值,該值會儲存在對應的資料庫訪問Span的Attribute中,Key為db.bindvalue,Value為逗號分隔的多個變數值,無需重啟應用即可生效。

    • 當前ARMS支援的所有JDBC類架構均支援該設定。

    • 支援該設定的資料庫變數類型:Boolean、Byte、Short、Int、Long、Float、Double、BigDecimal、Date。

    • 開啟該開關會造成額外的開銷,和SQL語句中變數的個數正相關,官方壓測情境下(一個變數)開啟該開關CPU額外開銷0.5%以下,記憶體額外開銷可忽略不計。

    開啟開關實際效果如下圖所示:

    2025-04-14_10-53-01

  • 展示SQL中的常量值:僅對SQL截斷,不做額外處理,無需重啟應用即可生效。當不同SQL語句包含的常量取值不同時,可能導致SQL語句較為發散而被統一收斂為{ARMS_OTHERS},不建議開啟。

Trace上下文傳播通訊協定設定

Trace上下文傳播通訊協定設定地區,您可以根據自己的需求選擇使用的Trace上下文傳播協議

image

預設情況下,ARMS探針會根據一次請求的Header中是否包含指定協議頭來選擇對應的Trace上下文傳播協議。更多資訊,請參見ARMS Trace上下文傳播協議選擇策略

您可以在該頁面選擇任一協議作為優先協議。選擇並儲存後,ARMS會優先探測是否存在該協議約定的要求標頭。例如,按照如下配置,當一次調用到來時,ARMS探針將會改為按照Jaeger、EagleEye、W3C、SkyWalking、Zipkin的順序依次探測是否存在協議約定上下文。

image

您也可以選擇強制使用某一種協議。例如,按照如下配置,當一次調用到來時,ARMS探針只會探測是否存在Jaeger協議約定的要求標頭,如果不存在,不會依次檢測其他協議,而是重建新的Trace上下文。

image

配置作用:

支援選擇優先或者強制使用的Trace上下文傳播協議,一般有以下幾種使用情境:

  • 請求攜帶多種格式的Trace上下文,預設的解析順序不滿足要求,想要指定優先使用某種協議。比如同時攜帶W3C和Zipkin的Trace上下文,預設情況下優先解析W3C的Trace上下文,可以通過設定傳播協議為Zipkin改為優先解析Zipkin協議。

  • 請求攜帶Trace協議頭,但是不想複用該協議頭,想要按照另外一種協議產生新的Trace上下文。比如同時攜帶Zipkin的Trace上下文,預設情況下會解析Zipkin的Trace上下文,可以通過設定傳播協議為W3C,並將傳播模式改為強制,這樣就會忽略Zipkin的Trace上下文,並按照W3C的協議規範產生新的上下文,需要注意,如果此時不將傳播模式改為強制,則在優先按照W3C解析上下文失敗後,仍然會按照Zipkin協議解析上下文。

配置效果:

配置後,在調用鏈的每一個LocalRootSpan中會有一個key為trace.protocol.type,value為當前鏈路trace協議的attribute。

image

訊息佇列配置

訊息佇列配置地區,您可以自訂消費者資訊。

image

  • 自訂RabbitMQ消費者:通過設定自訂消費者的類名或者包含匿名內部消費者的類名,可以看到該消費者的調用鏈路。多個消費者以英文半形逗號(,)分隔。

  • 自訂Kafka消費方法:通過自訂消費方法,可以在通過Kafka原生SDK消費訊息的情境下看到鏈路以及指標資料。

  • Kafka發送訊息自動透傳上下文:發送時自動往Kafka訊息中添加若干個Header用於關聯發送鏈路和消費鏈路。

探針採集配置

探針採集配置地區,可以設定探針每秒最大鏈路採集量、最大可處理QPS閾值和探針記錄層級。

  • 是否採集調用鏈:控制調用鏈資料是否上報,預設開啟,關閉後,調用鏈資料不再上報。

  • 探針每秒最大鏈路採集量:探針每秒可上報的Span數量(出於效能考慮,實際生效閾值和使用者配置閾值有5%以內偏差),超出部分的Span不會上報。

  • 探針最大可處理QPS閾值: 探針每秒可處理的請求數量(出於效能考慮,實際生效閾值和使用者配置閾值有5%以內偏差),超出該閾值的請求不會被監控,即不會對超出閾值的請求產生Span或者記錄指標,日誌關聯TraceId功能也不會生效。

  • 採集無入口內部調用資料:在ARMS中,應用提供的HTTP服務、RPC服務、應用被觸發執行的定時任務和訊息消費被認為是入口,在這些入口的商務邏輯中發生的資料庫調用、HTTP請求發送等調用則被認為是有入口的內部調用。反之,如果是通過JDK線程池啟動的一些定時執行的HTTP調用、資料庫調用、NoSQL調用、訊息發送、RPC調用等則被認為是無入口內部調用。在4.2.2及之後版本支援一鍵過濾該類資料,效果如下圖所示,在Lettuce架構中會定期自動執行一些命令保證與Redis服務端的串連正常,這類調用就屬於無入口內部調用,在如下圖所示時間點關閉採集無入口內部調用資料後,相關資料消失。

    2025-01-09_15-43-23

  • 探針記錄層級:調整探針日誌的列印層級,用於問題排查。

  • 是否上報探針日誌:是否允許探針將自身作業記錄上報到ARMS服務端便於出現問題時快速排查,正常情況下一分鐘僅會上報少量日誌。

  • 預設指標採集過濾:用於過濾指定類型的指標上報,當前支援下述幾種類型,可以多選:

    • custom_entry: 方法監控自訂指標

    • http: http服務端指標

    • http_client: http用戶端指標

    • rpc: rpc調用服務端指標

    • rpc_client: rpc調用用戶端指標

    • sql: 訪問資料庫服務相關指標

    • nosql: 訪問nosql服務相關指標

    • cache: 訪問快取服務相關指標

    • producer: 發送訊息相關指標

    • consumer: 消費訊息相關指標

    • schedule: 調度服務相關指標

  • 自訂指標採集配置:配置需要採集的通過OpenTelemetry SDK定義的指標,詳情請參見通過OpenTelemetry Java SDK自訂指標

  • 待採集baggage列表:當使用者業務中有使用baggage的時候,用於將特定的baggage寫在span的attributes中,方便檢索出特定鏈路。

異常進階過濾配置

異常進階過濾配置地區,可以設定異常採集規則。

image

  • 採集外掛程式異常:是否採集外掛程式異常。

  • 同類異常堆棧區分深度:預設為2。基於此堆棧深度識別同類型的異常。修改此配置會造成非預期的統計行為,請您謹慎操作。

  • 異常過濾白名單

    如果您不希望在異常分析頁簽看到這類異常,可以輸入不需要統計為異常的異常全限定類名,從而將其從異常分析頁面隱去。

    影響資料:異常數指標(arms_exception_requests_count_raw、arms_exception_requests_seconds_raw)、Span 中的異常資訊。

    影響功能異常分析頁簽對應異常的指標。

    內容格式:使用異常全限定類名標識需要過濾的異常,多個異常請使用英文半形逗號(,)分隔。

    樣本java.lang.InterruptedException,java.lang.IndexOutOfBoundsException

    預設值:無

  • 異常過濾父類繼承:開啟後,如果當前採集到異常是異常過濾白名單中配置的異常類的子類,則也會被過濾。

    配置效果:滿足過濾條件的異常將不會展示在ARMS控制台。

  • 異常message過濾:配置後,指定類型異常的message欄位滿足配置條件時也會被過濾。

    • 異常名稱:指定對哪個異常生效。

    • message條件:異常message的條件、可以是startsWith、endsWith或contains。

    • message關鍵字:關鍵字字串。

    配置效果:滿足過濾條件的異常將不會展示在ARMS控制台。

池化監控配置

池化監控配置地區,可以設定線程池、串連池相關採集規則。

image

  • 線程池、串連池監控:支援Tomcat/Dubbo/HSF等架構的線程池指標監控,需升級探針至最新版本。

  • 線程池線程名模式提取策略:該功能預設將線程池中任意一個運行線程的線程名中所有數字字元替換為*,您也可以調整為僅將線程名的結尾字元替換為*。一般在應用中啟動了多個Dubbo Provider,且不同Dubbo Provider的監聽連接埠不一致的情況下,如果按照預設策略,則兩個Dubbo Provider中的兩個線程池因為提取出來的線程名模板相同會被彙總成一個,此時可以通過調整該策略來區分為兩個線程池。

    配置效果:以常見的Tomcat線程池為例,預設情況下展示的線程池線程名為http-nio-*-exec-*,調整後線程名為http-nio-9099-exec-*

    image

  • 線程池使用情境過濾線程池線程名模式過濾:按照線程池使用情境和線程池線程名模式過濾不上報某些線程池的監控指標。

    說明

    該配置僅對 4.2.0 及以上版本的Java探針生效。

    • 線程池使用情境:指該線程使用的情境,目前支援Tomcat、Vert.x、Undertow、Dubbo、Jetty、AliyunJavaAgent、default幾種,其中AliyunJavaAgent代表探針使用的線程池,default代表未歸類的其他線程池。

    • 線程池線程名模式:指該線程池中線程名經過處理得到的線程名模式,例如http-nio-*-exec-*一般是將實際線程中數字部分替換為*後得到線程名。

    影響資料線程池指標

    影響功能線程池監控頁簽、基於線程池監控指標配置的警示。

    內容格式

    • 線程池使用情境過濾:線程池監控頁簽展示的使用情境,多個使用情境請使用英文半形逗號(,)分隔。

    • 線程池線程名模式過濾:線程池監控頁簽展示的線程名模式,多個使用情境請使用英文半形逗號(,)分隔。匹配方式為精確匹配,不支援規則匹配。

    樣本

    • 線程池使用情境過濾:AliyunJavaAgent,Jetty

    • 線程池線程名模式過濾:Catalina-utility-*,DubboServerHandler-*-thread-*

    代表 AliyunJavaAgent 這個情境下所有線程池資料不上報,其他情境下如果線程池模式名為 Catalina-utility-* 則也不上報。

    預設值:無

Span attributes配置

image

  • 記錄 OTel Spec 約定attributesOpenTelemetry Specification中為每一種外掛程式類型約定了其產生Span所應當包含的Attributes項,但ARMS探針出於資料上報量考慮,預設情況下在Span中並不會記錄這些Attributes,您可以按照自身需求開啟,開啟後,各架構會增加的Attributes請參見OpenTelemetry Specification

    以下樣本是一個HTTP Server的Span,其中紅框中的Attributes是開啟當前開關後新增的Attributes。

    image

  • Span關聯應用標籤配置:用於控制當前在控制台應用列表頁面為應用綁定的標籤會被附在哪些Span上,預設情況下,所有Span都會包含應用標籤。出於用量考慮,您可以將應用標籤僅附在入口Span上(入口Span一般包括HTTP Server、RPC Server、MQ消費訊息、定時任務)。

    配置為附在入口Span後效果如下圖所示,例如,應用程式套件含如下一對test1:value1的應用標籤。

    2024-12-24_14-02-44

    對於入口Span,可以看到對應標籤的Attributes。

    image

    對於非入口Span,不包含test1:value的Attributes。

    2024-12-24_14-03-44

進階設定

進階設定地區,可以設定需過濾的介面、方法堆棧最大長度等。

  • 分位元統計:是否開啟分位元統計功能。

  • 方法堆棧最大保留長度:預設為128條,最大值為400條。

  • 調用鏈壓縮:是否將重複調用(例如for迴圈)簡化。

  • 請求入參最大展示長度:預設為512字元,支援的最大長度為2048字元。

  • 非同步透傳掃描包名:添加非同步透傳掃描包實現非同步任務監控。非同步透傳掃描包中的Runnable、Callable和Supplier介面在建立新對象時會自動捕獲當前線程調用鏈的上下文,並在非同步線程中執行時使用該調用鏈上下文,完成串聯。

  • HTTP返回結果中包含TraceId:僅針對HTTP類型的請求,在Response Header中返回欄位為eagleeye-traceid。

  • JVM GC觸發根因:開啟後可以查看JVM GC觸發原因。您可以在JVM監控頁面查看監控詳情,GC觸發原因說明請參見GC相關指標

將配置複製到其他應用

如果您需要為其他應用同步相同配置,可以將對應配置複製到其他應用上。

將單個配置複製到其他應用

  1. 在對應配置地區單擊儲存並批量複製到其他應用

  2. 如果彈出當前設定未儲存對話方塊,請單擊確定儲存本應用配置後,再單擊儲存並批量複製到其他應用

  3. 在彈出的對話方塊中選擇生效的應用,然後單擊確定

將所有配置複製到其他應用

  1. 在頁面底部單擊儲存並批量複製到其他應用

  2. 如果彈出當前設定未儲存對話方塊,請單擊確定儲存本應用配置後,再單擊儲存並批量複製到其他應用

  3. 在彈出的對話方塊中選擇生效的應用,然後單擊確定

全域預設配置

您可以將當前配置儲存為全域預設配置,在之後建立新應用時將會預設使用當前配置。

  1. 在頁面底部單擊儲存當前應用設定為全域預設配置

  2. 如果彈出當前設定未儲存對話方塊,請單擊確定儲存本應用配置後,再單擊儲存當前應用設定為全域預設配置

  3. 在彈出的對話方塊中單擊確認

常見問題

應用設定開關設定不生效

查看需要修改的配置項是否有版本要求,例如在某個探針版本之後開關預設開啟或預設關閉。

  • 如果有,查看當前探針版本是否滿足要求。如果不滿足,則需要手動單擊一次儲存觸發生效;如果滿足,則查看探針日誌,看是否有配置監聽相關日誌。

  • 如果沒有,查看探針日誌,確認是否有配置監聽相關日誌。

    • 對於3.x版本探針,搜尋索引鍵[Diamond] receive,出現下圖所示內容則表示配置正常推送。

      image

    • 對於4.x版本探針 ,搜尋索引鍵config update,出現下圖所示日誌則表示配置正常推送。

      image

採樣率調整後不生效

一個應用的採樣率隻影響以該應用為入口的調用鏈是否採樣,如果一次請求中本身攜帶了Trace上下文,那麼該應用會還原該Trace上下文,並按照該Trace上下文是否聲明採樣來決定是否採樣。

配置非同步透傳掃描包後對於lambda運算式不支援

建議升級到4.x版本探針,該版本支援非同步上下文自動透傳,無需額外改造代碼或修改配置。

建立應用並沒有按照全域預設配置生效

當儲存應用A的當前配置為全域預設配置後,僅是將應用A當前配置的快照儲存為全域預設配置,後續應用A的配置變更並不會同步到全域預設配置,需要重新單擊儲存為全域預設配置後才會生效。

/error介面配置不生效

對於3.2.0之前版本的探針,介面過濾是在一個調用介面剛進入應用時執行過濾。而/error類介面是在調用介面報錯時被統一dispatch到/error頁面,此時未進行過濾操作,因此導致介面過濾不生效。3.2.0及之後版本探針已修複了該問題。

關閉了URL收斂開關後依然收斂

  • 自訂配置頁面的URL收斂設定地區僅針對3.x探針生效,4.x探針需要進入應用配置 > 收斂設定頁面進行相關配置。

  • 小於3.x版本的探針,如果應用使用了SpringMVC,則會導致當前問題,請將探針升級至3.x或以上版本。