借助 ARMS 提供的 SDK,您可以在业务代码中动态获取 TraceId 及相关调用链属性。

前提条件

  • 您已在 ARMS 控制台上创建应用监控,并已在 Java 程序中挂载和启动应“”用监控的 Agent。详情请参考为 Java 应用手动安装探针中关于安装 Java 探针的步骤。

  • 程序中已引入 arms-sdk-1.7.1.jar。

     <dependency>
    <groupId>com.alibaba.arms.apm</groupId>
    <artifactId>arms-sdk</artifactId>
    <version>1.7.1</version>
    </dependency>
    说明 如果无法获取 Pom,请直接下载 arms-sdk-1.7.1.jar

获取 TraceId 与 RpcId

满足前提条件后,即可通过以下代码获取上下文的 TraceId 与 RpcId。

Span span = Tracer.builder().getSpan();
String traceId = span.getTraceId();
String rpcId = span.getRpcId();

透传业务自定义标签

要透传业务自定义标签,需要在代码中写入添加和获取自定义标签的步骤。

  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();