バックグラウンド トランザクションの追跡

典型的なWebアプリケーションでは、訪問者はアプリケーションとHTTPリクエストで通信します。リクエストはアプリケーション サーバーにアクセスし、ユーザーに戻ってきたリクエスト データがレンダリングされることとなります。これらのWebトランザクションとは別に、アプリケーションでは多数のトランザクションが実行されていることがあります。ユーザーから起動がかかったトランザクションではなくても、アプリケーションが適正に稼働するうえで重要です。一般に、ユーザーの視界に入らぬトランザクションは、バックグラウンド トランザクションと呼ばれます。

たとえば、バックグラウンド トランザクションには、メンテナンス、スケジューラー、メッセージング、データのアーカイブなどがあります。これらのトランザクションはバックグラウンドで実行されるため、パフォーマンス監視上、見逃されがちです。重大な問題が発生し、アプリケーション全体が泥沼となるまで、バックグラウンド トランザクションの成否すら把握していないことも多々あります。すばやいデバッグには、バックグラウンド トランザクションの監視が必要なのは、まさに、そのためです。APMインサイトはこれらのトランザクションも捕捉し、ダッシュボードのバックグラウンド タブに表示します。

エージェントでバックグラウンド トランザクションの追跡を行うには、background_transaction.confファイルで有効にしてください。下記、詳細を説明します。

メモ:この機能は、.NETとJavaのエージェントでのみサポートしています。

設定 説明 デフォルト値
bgtransaction.tracking.enabled
  • このオプションを有効にすると、APMインサイト エージェントはバックグラウンド トランザクションの追跡を始めます。
  • HTTP以外の通信はすべて、バックグラウンド トランザクションと見なします。
true
bgtransaction.trace.enabled
  • エージェントでスロウなバックグラウンド トランザクションのトレース収集を有効にするキーです(bgtransaction.tracking.enabledをtrueにする必要があります)。
true

bgtransaction.trace.threshold

  • 応答時間がしきい値を超えたバックグラウンド トランザクションで、トレース収集を行います(bgtransaction.trace.enabledをtrueにする必要があります)。
5(秒)
bgtransaction.record.cputime.enabled
  • 有効にすると、バックグラウンド トランザクションごとのCPU時間を記録します。
false
bgtransaction.record.memory.allocation.enabled
  • 有効にすると、バックグラウンド トランザクションに割り当てられたメモリを取得します。
true
bgtransaction.trace.external.components.count.threshold
  • MySQL、memcachedなど、外部コンポーネント呼び出しの総数に設定するしきい値です。しきい値以上になると、バックグラウンド トランザクションの、トレーススナップショットを取得します。
40
bgtransaction.tracking.request.interval
  • バックグラウンド トランザクションのサンプル係数です。
  • 値を1にすると、エージェントはすべてのトランザクションを追跡します。nにセットした場合は、同一種別のトランザクションを、n個につき1つ追跡します。
Javaでは1、.NETでは5

メモ
  • これらの値は、Javaエージェントでは実行時の変更ができません。変更を有効にするには、サーバー再起動が必要です。
  • .NETエージェントでは再起動不要で、値は実行中に更新されます。