分散マイクロサービスにおけるスケジュールジョブは、リアルタイムサービスと比較して実行パスが長くなる傾向があります。トレーシング分析では、各ジョブ実行の完全な実行パスをキャプチャするため、ステップごとの持続時間を計測したり、障害発生箇所を特定したり、SchedulerX コンソール上でエンドツーエンドのフローを可視化できます。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
バージョン 1.7.0 以降のエージェントが実行中であること
エージェントにトレースプラグインの依存関係が追加済みであること(「トレース依存関係の追加」をご参照ください)
アプリケーションが Professional Edition へアップグレード済みであること
トレース依存関係の追加
Spring Boot アプリケーションの pom.xml ファイルに、以下の依存関係を追加します。
ログ出力除外機能付き SchedulerX スターター:
<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>トレースプラグイン — いずれか 1 つを選択してください:
| トレーシングバックエンド | アーティファクト ID | 使用タイミング |
|---|---|---|
| OpenTelemetry(デフォルト) | schedulerx-plugin-trace-opentelemetry | EDAS または ARMS と併用する場合 |
| SkyWalking | schedulerx-plugin-trace-skywalking | 自社構築の SkyWalking プラットフォームと併用する場合 |
OpenTelemetry プラグイン:
<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>アプリケーションのデプロイメント
以下のいずれかの方法で、アプリケーションをトレーシングバックエンドに接続します。
EDAS へのデプロイメント(推奨)
Enterprise Distributed Application Service (EDAS) には、組み込みのトレーシング機能が備わっています。アプリケーションが既に EDAS 上で実行されている場合は、追加の構成を行わずにトレーシング分析が利用可能です。
EDAS の利用を開始するには、サービスを有効化し、EDAS コンソールからアプリケーションをデプロイしてください。詳細な手順については、「EDAS のクイックスタート」をご参照ください。
Application Real-Time Monitoring Service(ARMS)との統合
ARMS エージェントの JAR パッケージをダウンロードします。
アプリケーション情報を構成します。
起動スクリプトに arms javaagent パラメーターを追加します。
詳細な手順については、「ARMS エージェントの手動インストール」をご参照ください。
自社構築トレーシングプラットフォームとの統合
SkyWalking などの自社構築トレーシングプラットフォームを運用している場合:
SkyWalking エージェントパッケージをダウンロード・構成します。
Java アプリケーションの起動スクリプトに、以下の JVM パラメーターを追加します:
-javaagent:{agent.path}/skywalking-agent.jarSchedulerX のトレースプラグイン依存関係を、SkyWalking 向けアーティファクトに切り替えます:
<dependency> <groupId>com.aliyun.schedulerx</groupId> <artifactId>schedulerx-plugin-trace-skywalking</artifactId> <version>{Latest version}</version> </dependency>
トレーシング分析結果の表示
統合およびデプロイメントが完了すると、SchedulerX によりジョブ実行のエンドツーエンドトレースが自動的に記録されます。以下のジョブタイプがサポートされています。
| ジョブタイプ | トレース範囲 |
|---|---|
| スタンドアローンジョブ(HTTP ジョブを含む) | 完全なエンドツーエンドトレース |
| ブロードキャストジョブ | ワーカー単位のトレース |
| ビジュアル MapReduce ジョブ | サブタスク単位のトレース |
トレースデータ収集にはデフォルトのサンプリングレートが適用されます。すべての実行が記録されるわけではありません。必要に応じてサンプリングレートを調整してください。
トレースを表示するには、以下の手順を実行します。
分散タスクスケジューリングプラットフォーム にログインします。
EDAS コンソールにログインします。
左側ナビゲーションウィンドウで、タスクスケジューリング(SchedulerX) をクリックします。
上部ナビゲーションバーで、リージョンを選択します。
左側ナビゲーションウィンドウで、実行一覧 をクリックします。
タスクインスタンス一覧 タブで、対象のジョブインスタンスを検索し、操作 列からトレースを表示します。
スタンドアローンジョブ
トレース を 操作 列からクリックします。あるいは、詳細 をクリックし、TraceId の横に表示される ID をクリックして、トレース ページを開きます。
スタンドアローンジョブが属するアプリケーションがエンドツーエンドトレース分析をサポートしているため、この方法はスタンドアローン HTTP ジョブにも適用されます。
ブロードキャストジョブ
詳細 を 操作 列からクリックします。
タスクインスタンスの詳細 ページで、現在の実行詳細 タブをクリックします。
TraceId 列のワーカー ID をクリックして、トレース ページを開きます。
ビジュアル MapReduce ジョブ
詳細 を 操作 列からクリックします。
タスクインスタンスの詳細 ページで、サブタスク一覧 タブをクリックします。
一覧よりサブタスクの実行状況を確認します。TraceId 列のサブタスク ID をクリックして、トレース ページを開きます。