ARMS SDK を使用すると、アプリケーションコード内でトレース ID と関連するトレースプロパティを動的に取得できます。
使用方法
エージェントバージョン 4.x 以降では、カスタムインストルメンテーションとトレースコンテキストの取得には、OpenTelemetry Java SDK の使用を推奨します:
バージョン 4.x のエージェントにアップグレードできない場合を除き、カスタムインストルメンテーションやトレースコンテキストの取得に ARMS 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 をダウンロードしてください。
トレース ID と RPC ID の取得
次のコードを使用して、トレース ID と RPC ID を取得します。
Span span = Tracer.builder().getSpan(); // 新しいスパンは作成されません。
String traceId = span.getTraceId();
String rpcId = span.getRpcId();
カスタム バゲージ の伝播
Spring Cloud Gateway フィルターでバゲージを追加する場合、エージェントをバージョン 4.2.x にアップグレードし、カスタム設定で spring-bean プラグインを有効にすると、伝播は失敗します。これを解決するには、spring-bean プラグインを無効にするか、エージェントをバージョン 4.1.x 以前にダウングレードしてください。
カスタムバゲージを伝播するには、次のようにアイテムを設定・取得するコードを追加します:
-
アプリケーションコードにカスタム バゲージ を追加します。
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); -
アプリケーションコードからカスタム バゲージ を取得します。
Span span = Tracer.builder().getSpan(); Map<String, String> baggage = span.baggageItems(); -
エージェントバージョン 4.x 以降では、バゲージは伝播されるだけです。エージェントは、このコンテンツを各スパンのタグに自動的に追加しません。このデータをタグに含める必要がある場合は、手動でスパンにカスタムタグを設定する必要があります。
スパン へのカスタムタグの設定
タグは、設定された特定のスパンにのみ適用され、他のスパンには伝播されません。カスタムタグを設定および取得するには、以下の手順に従ってください:
-
アプリケーションコードで、スパンにカスタム タグ を追加します。複数のタグを追加できます。
Span span = Tracer.builder().getSpan(); // スパンにタグを追加します。 span.setTag("tag-key1", "tag-value1"); span.setTag("tag-key2", "tag-value2"); -
スパンのカスタム タグ を取得します。
Span span = Tracer.builder().getSpan(); // スパンのタグを確認します。 Map<String, String> tags = span.tags();
カスタム バゲージ と タグ によるトレースのクエリ
スパンに設定されたカスタム バゲージ と タグ を使用してトレースをクエリします。
-
バゲージ はダウンストリームサービスに伝播され、通常、ビジネスコンテキストの伝播に使用されます。過剰なバゲージアイテムの設定は避けてください。
-
タグ は現在のスパンにのみ適用されます。ビジネスデータ用に複数のタグを設定できます。
-
ARMS コンソール にログインします。ナビゲーションペインで、[Application Monitoring] [Applications] を選択します。
-
[Applications] ページで、上部で対象のリージョンを選択します。次に、アプリケーションを選択し、[Tag] フィールドにカスタムタグの値を入力して、[Search] をクリックします。
-
トレースのリストで、対象のトレースの [Trace ID] をクリックします。
-
[Traces] 詳細ページで、[Timeline] 列にカーソルを合わせると、現在のスパンのタグを表示できます。
たとえば、カスタムタグ
tag-userid(値が123456789) とtag-bu(値がtaobao) がスパンのタグに追加されます。 -
エージェントバージョン 4.x 以降では、バゲージのコンテンツをスパンに書き込むには、まず「カスタムバゲージの伝播」の説明に従ってすべてのバゲージアイテムを取得します。次に、「スパンへのカスタムタグの設定」で説明されている方法で、それらをスパンに書き込みます。