非同期リクエストの追跡

APMインサイトJavaは、CompletableFuture非同期処理に対応しています。多くのフレームワークで非同期な処理を行えるメソッドです。このドキュメントでは、非同期処理とAPMインサイトによるその監視について記載しています。

非同期操作

同期プログラミングモデルでは、特定の順番でプログラミングタスクを実行していきます。1タスクが完了しなければ次のタスクを処理できず、いくつかのタスクで待機時間が増加します。

非同期プログラミングモデルはこの障害のないモデルで、同時にタスクを実行できます。非同期タスクは、実行と初期化に関して、互いに完全に独立しています。非同期コードは順番に実行されないため、サーバーの処理能力を効率的に使用できます。

APMインサイトJavaエージェントは、この非同期タスクを監視できるように設計されており、非同期関数やWebトランザクションのパフォーマンスを容易に追跡できます。

トレースで、非同期要求を特定

APMインサイトのトレースタブで、非同期タスクが環境内でどのように実行されているかを可視化できます。

次の手順で非同期要求を表示できます。

  1. Site24x7にログインします。
  2. APM > Javaアプリケーションに移動します。
  3. トレースタブをクリックし、特定のトレースをクリックします。
  4. トレース詳細タブをクリックします。

次の非同期要求のメトリックが表示されます。

  • 非同期要求ステータス:完了、失敗、中断
  • 非同期スレッド情報:スレッド名、スレッドID、CPU時間、許可メモリ
  • スレッドプール待機時間:新規スレッド割り当ての非同期タスク待機時間
  • 要求スレッドの待機時間:非同期ジョブ完了までのメインスレッドの待機時間(join()が呼び出された場合)

非同期要求が応答時間に及ぼす影響

非同期Javaアプリケーションの全体の応答時間は、トランザクション時間の合計よりも小さくなることが多いです。これは、非同期メソッドは前のメソッドが完了するまでに待機する必要がないためです。タスクを延期できるため、アプリケーションが制限されたリソースを有効に使用することができ、処理速度を早くできます。

これを表示するには、Site24x7にログインし、APM > アプリケーション名 > 概要タブをクリックします。

APMの 概要ページで、コンポーネントごとのアプリサーバー応答時間の内訳を確認します。各Javaアプリケーションの非同期アクティビティの応答時間結果が表示されます(ダークブルーの線)。この線はトランザクション時間の合計より小さくなります。