定期タスクは、プログラムやコマンドを単発または定期的に自動実行するものです。Java アプリケーションがデータ処理、キャッシュの更新、または定期的なクリーンアップを定期タスクに依存している場合、これらのタスクの障害やパフォーマンスの低下は、ダウンストリームシステムに影響が及ぶまで気づかれないことがあります。Application Real-Time Monitoring Service (ARMS) は、Java アプリケーション内の XXL-JOB、SchedulerX、および JDK-Timer タスクを自動的に検出し、モニタリングすることで、実行メトリック、依存関係マッピング、およびトレースレベルの診断を提供します。
定期タスクのモニタリングにより、以下のことが可能になります。
実行ヘルス、実行回数、スケジューリングレイテンシーの経時的な追跡
タスクのパフォーマンスを低下させる低速な SQL および NoSQL クエリの特定
コードレベルでの Java 例外とアプリケーションエラーの特定
ダウンストリームサービスの依存関係とそのパフォーマンスメトリックの調査
個別のトレースへのドリルダウンによる根本原因分析
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
ARMS アプリケーションモニタリングに接続された Java アプリケーション -- [アプリケーション] ページの [言語] 列にある
アイコンで示されます。代わりにハイフン (-) が表示される場合は、アプリケーションはアプリケーションモニタリングではなく、トレーシング分析に接続されています。ARMS エージェントのバージョンが 2.7.1.3 以降であること。スペックアップするには、「Java アプリケーションの ARMS エージェントを更新する方法」をご参照ください。
ARMS アプリケーションモニタリングは、XXL-JOB、SchedulerX、および JDK-Timer のタスクタイプのみをサポートしています。
定期タスクのモニタリングページの表示
ARMS コンソールにログインします。
左側のナビゲーションウィンドウで、[アプリケーションモニタリング] > [アプリケーション] を選択します。
上部のナビゲーションバーでリージョンを選択し、対象のアプリケーション名をクリックします。
左側のナビゲーションウィンドウで、[定期タスク] をクリックします。
検出されたすべての定期タスクが左側のリストに表示されます。タスクをクリックすると、そのモニタリングデータが表示されます。

概要
[概要] タブには、選択した定期タスクの呼び出しトポロジーと 4 つの時系列グラフが表示されます。トポロジーを使用してタスクが依存するサービスとリソースを理解し、グラフを使用して実行時間の増加や例外数の増加などの傾向を把握します。
| チャート | 説明 |
|---|---|
| 実行回数 | タイムウィンドウごとの実行回数 |
| 平均実行時間 | 実行ごとの平均持続時間 |
| 例外数 | 実行中にスローされた Java 例外 |
| スケジューリングレイテンシー | スケジュールされたトリガー時刻と実際の開始時刻との間の遅延 |

SQL 分析と NoSQL 分析
[SQL 分析] タブと [NoSQL 分析] タブには、選択した定期タスクによって開始された SQL および NoSQL リクエストが一覧表示されます。これらのタブを使用して、API の応答を遅くしている低速クエリを特定します。

リスト内の各文について:
[操作] 列の [呼び出し統計] をクリックして、呼び出し統計の時系列グラフを表示します。
[操作] 列の [呼び出しトレースクエリ] をクリックして、その文のトレースを表示します。詳細については、「トレースの表示」をご参照ください。
例外分析
[例外分析] タブには、定期タスクのコードからスローされた Java 例外が一覧表示されます。このタブを使用して、タスクの失敗と一致する繰り返し発生するコードレベルの問題を特定します。
各例外について:
[アクション] 列の [呼び出し統計] をクリックすると、例外の発生頻度を示す時系列グラフを表示できます。
[操作] 列の [呼び出しトレースクエリ] をクリックして、関連するトレースを表示します。詳細については、「トレースの表示」をご参照ください。
エラー分析
[エラー分析] タブには、定期タスクのエラー統計が表示されます。このタブを使用して、アプリケーションレベルのエラーを特定のトレースデータやログと関連付けます。

リスト内の各エラーについて:
[TraceId] 列のトレース ID をクリックして、トレース詳細を開きます。詳細については、「トレースクエリ」をご参照ください。
[操作] 列の [ログの表示] をクリックして、関連するエラーログを表示します。
ダウンストリームサービス
[ダウンストリームサービス] タブには、アプリケーションによって呼び出されるすべてのサービスが表示されます。このタブを使用して、障害が発生している、または低速な依存関係がタスクのパフォーマンスに影響を与えているかどうかを判断します。
各サービスエントリには、3 つのパフォーマンスメトリックが含まれています。
| メトリック | 説明 |
|---|---|
| 応答時間 | リクエストのレイテンシー |
| リクエスト数 | リクエスト数 |
| エラー数 | エラー数 |
リストを操作するには:
[すべて展開/折りたたみ] をクリックして、すべての API の詳細を一度に表示または非表示にします。
検索ボックスにアプリケーション名または API 名を入力し、[検索] アイコンをクリックして結果をフィルターします。
行の末尾にある折りたたみパネルまたは矢印アイコンをクリックして、特定の API のパフォーマンスメトリックを表示または非表示にします。
トレースの表示
[インターフェイススナップショット] タブでは、個々のタスク実行をトレースレベルで可視化できます。このタブには、2 つのグラフと詳細テーブルが含まれています。

合計スナップショットグラフ
正常トレースと低速トレースの数を時系列で表示します。トレースの応答時間が 500 ミリ秒を超えると、低速として分類されます。このしきい値は、アプリケーション設定の [インターフェイス応答時間しきい値] パラメーターによって制御されます。
低速トレースの数には、オンプレミス API への非同期呼び出しによって生成されたサブトレースは含まれません。
スナップショット応答時間グラフ
応答時間が時間とともにどのように変化するかの傾向を示します。このグラフはサンプリングされたトレースデータに基づいており、ご利用のアプリケーションに設定されたサンプリングレートの影響を受けます。
トレース詳細テーブル
メタデータとともに個々のトレースを一覧表示します。[TraceId] 列の値をクリックすると、完全なトレースビューが開きます。詳細については、「トレース詳細」をご参照ください。
[操作] 列の [ログの表示] をクリックして、特定のトレースに関連付けられたログを表示します。
トレースとアプリケーションログを関連付けるには、トレース ID をビジネスログに関連付けます。これにより、エラーのトラブルシューティング時に、関連ログへの直接アクセスが可能になります。詳細については、「ビジネスログとトレース ID を関連付ける」をご参照ください。
定期タスクの問題のトラブルシューティング
定期タスクが予期せず動作する場合、以下の方法で根本原因を段階的に絞り込みます。
概要でアノマリーを確認する:まず [概要] タブから始めます。時系列グラフで、スケジューリングレイテンシーの急上昇、例外数の増加、または通常より長い実行時間がないかを確認します。
低速クエリを調査する:問題が低速な実行に関係している場合は、[SQL 分析] または [NoSQL 分析] に移動して、タスクをブロックしている可能性のある低速なデータベースクエリを見つけます。
例外を確認する:[例外分析] タブで、アノマリーと一致する Java 例外を確認します。
アプリケーションエラーを確認する:[エラー分析] タブでアプリケーションレベルのエラーを確認し、関連するトレースやログにドリルダウンします。
依存関係を調べる:[ダウンストリームサービス] タブを開き、依存関係が低速であるか、エラーを返しているかを確認します。
根本原因までトレースする:[インターフェイススナップショット] タブを使用して個々のトレースを調査し、ボトルネックまたは障害が発生している正確なスパンを特定します。