分散マイクロサービスの場合、エンドツーエンドのトレース分析機能を使用すると、各サービスでのリクエストの実行を視覚的に分析できます。スケジュールされたジョブの場合、実行パスは一般的なリアルタイムサービスの実行パスよりも長くなる可能性があります。エンドツーエンドのトレース分析機能は、ジョブの実行時間をクエリし、実行例外を分析するのに役立ちます。このトピックでは、トレース分析をスケジュールされたジョブと統合する方法について説明します。
前提条件
- エージェントのバージョンは 1.7.0 以降です。
- エージェントはトレースプラグインに依存しています。詳細については、統合設定をご参照ください。
- アプリケーションは Professional Edition にアップグレードされています。
トレース分析の統合
統合設定
次のサンプルコードは、Spring Boot アプリケーションの pom.xml ファイルに依存関係を追加します。
<dependency>
<groupId>com.aliyun.schedulerx</groupId>
<artifactId>schedulerx2-spring-boot-starter</artifactId>
<version>{Latest version}</version>
<!-- Logback を使用する場合は、Log4J と Log4J2 を除外する必要があります。 -->
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- トレース分析用の拡張プラグインへの依存関係を追加します。 -->
<dependency>
<groupId>com.aliyun.schedulerx</groupId>
<artifactId>schedulerx-plugin-trace-opentelemetry</artifactId>
<version>{Latest version}</version>
</dependency>
<!-- SkyWalking には次のプラグインを使用します。 -->
<!--<dependency>
<groupId>com.aliyun.schedulerx</groupId>
<artifactId>schedulerx-plugin-trace-skywalking</artifactId>
<version>{Latest version}</version>
</dependency>-->アプリケーションデプロイ設定
- 方法 1: EDAS にアプリケーションをデプロイする (推奨)
- EDAS にアプリケーションをすでにデプロイしている場合、アプリケーションはトレース分析をサポートしており、このセクションのアプリケーションデプロイをスキップできます。
- 新規ユーザーの場合は、EDAS をアクティブ化し、EDAS コンソールでアプリケーションをデプロイできます。その後、アプリケーションはエンドツーエンドのトレース分析をサポートするため、追加の設定を行う必要はありません。詳細については、EDAS の使用開始をご参照ください。
- 方法 2: Application Real-Time Monitoring Service (ARMS) を統合し、アプリケーションを手動でデプロイする
指示に従って関連する JAR パッケージをダウンロードし、対応するアプリケーション情報を設定してから、起動スクリプトに [arms Javaagent] 設定を追加することで、ARMS を統合します。操作の詳細については、ARMS エージェントの手動インストールをご参照ください。
- 方法 3: セルフビルドプラットフォームを統合する
セルフビルドのエンドツーエンドトレース分析プラットフォームを使用している場合も、それを統合できます。次の例は、SkyWalking を統合する方法を示しています。
- SkyWalking エージェントのインストールパッケージをダウンロードし、設定を完了します。
- Java アプリケーション起動スクリプトに次の Java 仮想マシン ( JVM ) パラメータを追加します:
-javaagent:{agent.path}/skywalking-agent.jar。 - Java アプリケーションが依存する SchedulerX トレースプラグインを SkyWalking タイプに切り替えます。次のコードは例を示しています。
<dependency> <groupId>com.aliyun.schedulerx</groupId> <artifactId>schedulerx-plugin-trace-skywalking</artifactId> <version>{Latest version}</version> </dependency>
トレース分析結果の表示
上記の構成とアプリケーションのデプロイが完了すると、スケジュールされたジョブの実行がエンドツーエンドで視覚的にトレースされます。スタンドアロンジョブ ( HTTP ジョブを含む )、ブロードキャストジョブ、およびビジュアル MapReduce ジョブがサポートされています。
- 分散タスクスケジューリングプラットフォーム にログインします。
にログインします。
- 左側のナビゲーションペインで、[タスクスケジューリング ( Schedulerx )] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。
- 左側のナビゲーションペインで、[実行リスト] をクリックします。[タスクインスタンスリスト] タブで、必要に応じて [操作] 列で次の操作を実行します。
- スタンドアロンジョブ
[トレース] をクリックします。または、[詳細] をクリックし、[traceid] の右側の ID をクリックします。その後、[トレース] ページが表示されます。スタンドアロンジョブが属するアプリケーションはエンドツーエンドのトレース分析 ( OpenTelemetry ) をサポートしているため、この機能はスタンドアロン HTTP ジョブにも適用できます。
- ブロードキャストジョブ
[詳細] をクリックします。[タスクインスタンスの詳細] ページで、[現在の実行の詳細] タブをクリックします。[TraceId] 列のワーカーの ID をクリックして、[トレース] ページを表示できます。
- ビジュアル MapReduce ジョブ
[詳細] をクリックします。[タスクインスタンスの詳細] ページで、[サブタスクリスト] タブをクリックします。このタブでは、実行レコード内のすべてのサブタスクの実行パスのステータスを仮想的にクエリできます。この実行レコードの詳細のサブタスクリストでは、[TraceId] 列のサブタスクの ID をクリックして、[トレース] ページを表示することもできます。
- スタンドアロンジョブ