このトピックでは、Application Real-Time Monitoring Service(ARMS)SDK を使用して、トレース ID とトレースのプロパティをサービスコードから動的に取得する方法について説明します。
始める前に
ARMS エージェント V4.x の場合は、Java 用 OpenTelemetry SDK を使用してアプリケーションのイベントトラッキングを行い、トレースコンテキストをキャプチャすることをお勧めします。
エージェントの V4.x へのアップグレードが不可能な場合(例:互換性の制約)、レガシー ARMS SDK を一時的な回避策として使用できます。
前提条件
Java アプリケーションが ARMS に接続されていること。 アプリケーション監視用の ARMS エージェントがアプリケーションにインストールされ、起動されていること。 詳細については、「ARMS エージェントを手動でインストールする」をご参照ください。
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();カスタム baggage 項目を渡す
spring-bean プラグインを有効にした状態でエージェントを V4.2.x に更新すると、spring-cloud-gateway フィルターシナリオで baggage のパススルーが失敗します。 機能を復元するには、プラグインを無効にするか、エージェント V4.1.x 以前を使用してください。
カスタム baggage 項目を渡すには、次の手順を実行して、サービスコードに項目を追加し、サービスコードから項目を取得する必要があります。
サービスコードに 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);サービスコードから baggage 項目を取得します。
Span span = Tracer.builder().getSpan(); Map<String, String> baggage = span.baggageItems();(オプション)カスタムタグをスパンに追加します。 詳細については、「スパンにカスタムタグを追加する」をご参照ください。ARMS エージェント V4.x 以降では、baggage 項目はパススルーすることのみが可能で、各スパンのタグに追加することはできません。
カスタム タグ をスパンに追加する
カスタムタグは現在のスパンにのみ追加できます。 カスタムタグを他のスパンに渡すことはできません。 カスタムタグをスパンに追加するには、次の手順を実行して、サービスコードにタグを追加し、サービスコードからタグを取得します。
サービスコードのスパンに タグ を追加します。 複数のタグを指定できます。
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();
baggage 項目と タグ に基づいてトレースをクエリする
スパンに追加された baggage 項目と タグ を使用して、トレースをクエリできます。
baggage 項目はダウンストリームに渡すことができ、通常はビジネスデータを着色するために使用されます。 多数の baggage 項目を指定することはお勧めしません。
タグ は現在のスパンにのみ適用されます。 1 つの span に複数のタグを追加できます。
ARMS console にログインします。 左側のナビゲーションウィンドウで、 を選択します。
[トレースクエリ] ページで、上部のナビゲーションバーでリージョンを選択し、[パラメータタイプ] ドロップダウンリストから値を選択します。 [パラメータ値] フィールドに値を入力し、[クエリ条件に追加] をクリックします。
返された結果で、クエリするトレースを見つけ、トレース ID をクリックします。
[トレース] タブで、[サービス] 列の値にポインターを移動して、現在のスパンのタグと baggage 項目を表示します。

(オプション)ARMS エージェント V4.x 以降で baggage 項目をスパンのタグに追加するには、「カスタム baggage 項目を渡す」を参照してすべての baggage 項目を取得し、「カスタムタグをスパンに追加する」を参照してスパンに追加します。