• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

.NETエージェントの処理エラー報告

問題

New Relic の .NET エージェントは、処理されたエラーを標準的なエラーであるかのように報告します。これは、Azure のワーカーロール、コンソールアプリ、非同期作業、および同様の操作で最もよく見られます。

解決策

誤ったエラー・レポートを避けるために、例外ハンドラを直接または間接的に含むメソッドをインスツルメンテーションします。この例のように、 カスタム・インスツルメンテーション ファイルを定義するか、 カスタム・トランザクション でメソッドをラップすることで、ターゲット・メソッドをインストゥルメントします。

原因

New Relic の .NET エージェントが報告するエラーは、トランザクションを終了する処理されないエラーのみです。トランザクションが終了する前にアプリが例外ハンドラを呼び出した場合、New Relic はエラーを報告しません。

しかし、New Relic は、エラーが Web トランザクション、WCF トランザクション、またはカスタム トランザクションの外で発生した場合、例外ハンドラを必ずしも検出しません。これは、エージェントが"ミニトランザクション" を、トランザクションに関連付けられていないインスツルメンテッド・メソッドのために作成するためです。

計装化されたメソッドが終了すると、ミニトランザクションが終了します。ミニトランザクションがエラーを投げ、インスツルメンテッド・メソッドがそれを処理しない場合、New Relic はエラーを報告します。

これは、に示すように、 GetResponse()を呼び出すコンソールアプリで確認できます。 GetResponseがエラーをスローした場合、 GetResponse()がtry / catchブロック内で呼び出されても、NewRelicはそれを報告します。 GetResponse() "mini-transaction"が終了し、トランザクションの終了時にエラーがまだ処理されていないため、エージェントはエラーを報告します。

Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.