全部產品
Search
文件中心

Application Real-Time Monitoring Service:ARMS SDK使用說明

更新時間:Jul 06, 2024

藉助ARMS提供的SDK,您可以在業務代碼中動態擷取TraceId及相關調用鏈屬性。

說明

ARMS已支援通過OpenTelemetry Java SDK埋點監控您的應用,建議您優先選擇使用OpenTelemetry Java SDK進行埋點。更多資訊,請參見通過OpenTelemetry Java SDK為調用鏈增加自訂埋點

前提條件

  • 已在ARMS控制台上建立應用監控,並已在Java程式中掛載和啟動應用監控的探針。具體操作,請參見手動安裝探針

  • 程式中已引入arms-sdk-1.7.3.jar依賴。

    <dependency>
        <groupId>com.alibaba.arms.apm</groupId>
        <artifactId>arms-sdk</artifactId>
        <version>1.7.3</version>
    </dependency>
    說明

    如果無法擷取pom.xml中的依賴,請直接下載arms-sdk-1.7.3.jar

擷取TraceId與RpcId

您可通過以下代碼擷取TraceId與RpcId。

Span span = Tracer.builder().getSpan();   //此處未建立新的Span。
String traceId = span.getTraceId();
String rpcId = span.getRpcId();

透傳業務自訂標籤baggage

若您要透傳業務自訂標籤,則需要在代碼中寫入添加和擷取自訂標籤,具體操作步驟如下:

  1. 在業務代碼中添加自訂標籤baggage

    Map<String, String> baggage = new HashMap<String, String>();
    baggage.put("key-01", "value-01");
    baggage.put("key-02", "value-02");
    baggage.put("key-03", "value-03");
    Span span = Tracer.builder().getSpan();
    span.withBaggage(baggage);
  2. 在業務代碼中擷取自訂標籤baggage

    Span span = Tracer.builder().getSpan();
    Map<String, String> baggage = span.baggageItems();

為Span設定自訂標籤tag

為Span設定自訂標籤只會在當前Span中有效,並不會透傳。您需要在代碼中寫入添加和擷取自訂的標籤,具體操作步驟如下:

  1. 在業務代碼中為Span添加自訂標籤tag,可以添加多個標籤。

    Span span = Tracer.builder().getSpan();
    // Add a tag to the Span.
    span.setTag("tag-key1", "tag-value1");
    span.setTag("tag-key2", "tag-value2");
  2. 在業務代碼中擷取Span自訂標籤tag

    Span span = Tracer.builder().getSpan();
    // Inspect the Span's tags.
    Map<String, String> tags = span.tags();

根據自訂標籤baggagetag查詢調用鏈

通過Span設定的自訂標籤baggagetag可以用來按標籤維度查詢調用鏈。

  • baggage上的標籤具有透傳到下遊效果,一般用於業務染色,標籤項不建議設定過多。

  • tag上的標籤只在本Span範圍內有效,可以設定多個業務項。

  1. 登入ARMS控制台,在左側導覽列選擇應用監控 > 調用鏈路查詢

  2. 調用鏈路查詢頁面頂部選擇目標地區,然後選擇參數類型,在參數值中填入自訂標籤,單擊添加到查詢條件

  3. 在調用鏈列表中單擊目標鏈路的TraceID

  4. 調用鏈路詳情頁面,滑鼠移動至服務名稱,會顯示當前Span對應的Tags資訊(baggage內容會自動加入到每個Span的Tags上)。

    trace_span_with_tags