ErrorDetector
ErrorDetector は、以前は個別の Introscope 拡張でしたが、Introscope に完全に統合されました。
apmdevops104jp
ErrorDetector は、以前は個別の Introscope 拡張でしたが、Introscope に完全に統合されました。
Introscope では、エージェントのインストールに
errors.pbd
という ProbeBuilder ディレクティブ(PBD)ファイルが含まれています。このファイルは、errors.pbd
ファイルの定義に従ってエラー情報を収集します。このファイルを使用してエラー メトリックを有効化および設定するには、「ErrorDetector の設定」を参照してください。エラー情報には高深度可視性コンポーネントも含まれます。Introscope は、PBD を使用せずに、このコンポーネントを自動的に検出およびインスツルメントします。
注:
スマート インスツルメンテーションは、Java エージェントでのみ使用可能であり、.NET エージェントでは使用できません。ErrorDetector を設定して有効にすると、アプリケーション サポート担当者は Introscope を使用して、以下のことを実行できます。
- ライブ アプリケーションで深刻なエラーが発生したときに、その原因を検出して診断します。
- エラーの頻度および性質を特定します。
- 開発者に根本原因に関する具体的な情報を伝えます。
一般的なエラーのいくつかの例を以下に示します。
- HTTP エラー(404、500 など)
- SQL ステートメント エラー
- ネットワーク接続性エラー(タイムアウト エラー)
- バックエンド エラー(JMS を通じてメッセージを送信できない、メッセージ キューにメッセージを書き込めない、など)
Introscope では、J2EE 仕様および .NET 仕様に含まれる情報に基づき、これらの「重大な」エラーを確認しています。
注:
場合によっては、HTTP 404 エラーはアプリケーション サーバではなく Web サーバで発生することがあります。この動作が発生した場合、ErrorDetector による、エージェントを通じた Web サーバ エラーの検出は行われません。Introscope では、エラーおよび例外の両方がエラーと見なされます。エラーの種類で最も一般的なのは、スローされた Java 例外です。
重要:
スマート インスツルメンテーションが有効な場合、エラーが発生すると Introscope がトランザクション追跡を自動的に収集します。無視するように設定されているアプリケーション エラーでは、自動トランザクション追跡はトリガされません。詳細については、「ErrorDetector の設定」を参照してください。エラー メトリックの読み取りと理解
Workstation から
- Investigator にエラー メトリック データを表示できます。
- ライブ エラー ビューアにライブ エラーを表示できます。
- エラー スナップショットにエラーの詳細情報を表示できます。ここには、エラーがどのように発生したかに関する、コンポーネント レベルの情報が表示されます。
Investigator でのエラー メトリックの表示
errors.pbd ファイルを使用すると、Errors Per Interval メトリックが生成され、いくつかのデフォルト リソースの下に表示されます。Local Product は、以下に対する Errors Per Interval メトリックを生成します。
J2EE コネクタ、サーブレット、JTA、および HTTP などの J2EE リソース。
ASP.NET ページ、ADO.NET データ ソース、メッセージング キュー、Web メール、およびエンタープライズ サービス トランザクションなどの .NET フレームワーク リソース。
ライブ エラー ビューアでのエラー データの表示
エラーをライブで表示するには、Workstation コンソールまたは Investigator ウィンドウから[Workstation]-[新規ライブ エラー ビューア]を選択します。ライブ エラー ビューアには 2 つの表示領域があります。
- ライブ エラー ビューアの上部のエラー データ テーブルには、現在発生しているエラーが一覧表示されます。
- ライブ エラー ビューアの下部の エラー スナップショットには、エラー データ テーブルで選択されているエラー詳細が表示されます。
エラー データ テーブル
エラー データ テーブルには、各エラーの以下の情報が表示されます。
カラム名 | 情報 |
エージェント | エージェント名 |
Timestamp | ルート コンポーネントの呼び出しの開始時刻(システム クロックに基づく)。 |
説明 | エラーのコンポーネントの種類。この値は通常、コンポーネントのリソース名の最初のセグメントにマップされます。
|
エラー メッセージ | キャプチャされた完全一致のエラー メッセージ |
- 行をクリックすると、下のペインにそのエラーの エラー スナップショットが表示されます。
- 列の見出しをクリックして、その列の内容によって行を並べ替えます。新しいエラーが発生すると、これらのエラーは並べ替え順にしたがって表示されます。
エラー スタック ビュー
エラー テーブル ペインでエラーを選択すると、エラー スタック ビューが下部ペインに表示されます。
エラー メッセージは赤で表示されます。そのエラーがストールである場合、エラー メッセージは「Stalled Transaction」です。ツリーには、コンポーネント追跡でエラーが発生した場所が示されます。コンポーネントは太字で表示され、その後にコンポーネント データが続きます。

注:
エラー スナップショットの行をコピーして、電子メール、レポート、またはテキスト メッセージに含めることができます。エラーをコピーするには、クリックして選択し、Ctrl + C を押してコピーします。エラー スナップショットを確認して、問題の根本原因を特定できます。
注:
スタック ビューに表示される時間値は、相対的なタイム スタンプです。Introscope は、メソッドのインスツルメントに PBD を使用した場合に限り、エラーを検出します。Introscope がエラーを検出すると、PBD によってインスツルメントされたコンポーネントだけではなく、高深度可視性コンポーネントもエラー スナップショットに表示されます。エラー スナップショットのツリーの分岐をたどってメソッドを調べることにより、エラー例外の原因を特定できます。
例 1
エラー スナップショット ツリーにメソッド A、B、C、D および E が表示されます。メソッド A および E は、PBD を使用してインスツルメントされます。メソッド B、C、D は、スマート インスツルメンテーションを使用してインスツルメントされています。
メソッド E は、キャッチされなかったエラー例外をスローします。エラー例外は、メソッドD、C、B、A とツリーをさかのぼりますが、どのメソッドでも例外は処理されません。エラー スナップショットは次のツリーのように表示されます。

例 2
エラー スナップショット ツリーにメソッド A、B、C、D および E が表示されます。メソッド A および B は、PBD を使用してインスツルメントされます。メソッド C、D、E は、スマート インスツルメンテーションを使用してインスツルメントされています。
メソッド E は、キャッチされなかったエラー例外をスローします。エラー例外は、メソッドD、C、B、A とツリーをさかのぼりますが、どのメソッドでも例外は処理されません。エラー スナップショットは次のツリーのように表示されます。

例 3
エラー スナップショット ツリーにメソッド A、B、C、D および E が表示されます。メソッド A および B は、PBD を使用してインスツルメントされます。メソッド C、D、E は、スマート インスツルメンテーションを使用してインスツルメントされています。
メソッド E は、キャッチされなかったエラー例外をスローします。エラー例外は、メソッド D、C、B とツリーをさかのぼります。メソッド B はこの例外をキャッチして処理します。エラーはスローされません。メソッド B が例外を処理したため、Introscope はエラー スナップショットを生成しません。
例 4
エラー スナップショット ツリーにメソッド A、B、C、D および E が表示されます。メソッド A および E は、PBD を使用してインスツルメントされます。メソッド B、C、D は、スマート インスツルメンテーションを使用してインスツルメントされています。
メソッド E がストールします。エラー スナップショットは次のツリーのように表示されます。

例 5
エラー スナップショット ツリーにメソッド A、B、C、D および E が表示されます。メソッド A および B は、PBD を使用してインスツルメントされます。メソッド C、D、E は、スマート インスツルメンテーションを使用してインスツルメントされています。
メソッド E がストールします。エラー スナップショットは次のツリーのように表示されます。

履歴エラー データの表示と分析
トランザクション イベント データベースには、エージェントによってキャプチャされたエラーおよびトランザクション追跡データが含まれています。トランザクション イベント データベースのエラー情報は、エラー属性およびテキストに基づいてエラーをクエリして表示および分析できます。選択したエラーに類似するエラー、または相関するエラーをクエリすることによって、分析の範囲を拡張できます。トランザクション イベント データベースをクエリするには、「保存済みイベントのクエリ」を参照してください。
Transaction Tracer によるエラーの表示
トランザクション内で発生するエラーは、トランザクション追跡ビューアで表示します。
スマート インスツルメンテーションが有効な場合、エラーが発生すると Introscope がトランザクション追跡を自動的に収集します。
エラーによって自動トランザクション追跡がトリガされると、以下の情報が[コンポーネントの詳細]に表示されます。
- 例外をスローしたコンポーネントには、コンポーネントのプロパティが含まれています。
- トランザクション追跡内の最初のコンポーネントでは、[Auto Trace Trigger Criteria]プロパティが「エラー」として表示されます。
以下の手順に従います。
- (オプション)トランザクション追跡を手動で収集します。
- [Workstation]-[新規トランザクション追跡セッション]を選択します。
- [最小トランザクション継続時間]ダイアログ ボックスに、トランザクション追跡セッションの長さを入力します。
- [追跡エージェント]セクションで、オプションを選択して、トランザクション追跡セッションで追跡するエージェントを定義します。
- 他のフィルタ オプションに加えて、[エラー]を選択して、フィールドに検索するエラー情報を入力します。
- [OK]をクリックします。
- エラーを含むトランザクション追跡は、トランザクション追跡ビューア ウィンドウに表示されます。注: 無視するようにタグ付けされたエラーは、トランザクション追跡ビューアに表示されていても、ライブ エラー ビューアには表示されないことがあります。この動作は、IntroscopeAgent.profile の ignore コマンドをエージェントが処理し終わる前に、アプリケーションのエラーが表示された場合に発生します。テーブルでトランザクションを選択すると、トランザクション スナップショットが表示されます。トランザクション内でエラーが発生した場合は、[トランザクション追跡]ウィンドウで、特定のトランザクション スナップショットの背景が赤で表示されます。
- スナップショットでそのエラーをクリックすると、トランザクション スナップショットの下のプロパティ ペインに詳細が表示されます。
注:
プロパティの詳細で任意のフィールドのテキストを選択して、キーボード コマンドでコピーできます。デフォルトの errors.pbd は、オーバーヘッドを最小限に抑えながら、重大なエラーを報告するように設計されています。監視してしているすべてのメソッドに ExceptionErrorReporter を適用するなど、エラー追跡を過度に使用すると「誤検出」が多く発生することになります。例えばこの場合、ユーザが数値フィールドに「California」と入力することで、NumberFormatException を発生させる可能性がありますが、この例外を重大な問題として報告することはお勧めできません。