• ログイン無料アカウント

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

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

問題を作成する

notice_error (PythonエージェントAPI)

構文

newrelic.agent.notice_error(error=None, attributes={}, expected=None, ignore=None, status_code=None, application=None)

Pythonの例外の詳細をエラーとして記録します。

説明

デフォルトでは、Pythonエージェントは未処理の例外のみを報告します。 notice_errorを使用して、Python例外をエラーとして記録します。これは、UIで確認できます。パラメーターが指定されていない場合、現在処理されている例外の詳細が使用されます。

トランザクションごとに最大5つの異なる例外を記録することができます。 また、 ハーベストサイクルごとにすべてのトランザクションの合計で最大20の例外を記録することができます。

監視対象のWeb要求またはバックグラウンドタスクのコンテキスト内でnotice_error()が呼び出されると、要求またはタスクが報告されているアプリケーションに対して例外の詳細が報告されます。

監視対象のWeb要求またはバックグラウンドタスクのコンテキスト外で呼び出された場合、 applicationキーワード引数が指定され、例外が記録されるアプリケーションに対応するアプリケーションオブジェクトが指定されない限り、呼び出しは無視されます。 newrelic.agent.application()関数を使用して、適切なアプリケーションオブジェクトを取得できます。

パラメーター

ヒント

ほとんどすべての場合、 notice_errorはパラメータを必要としません。

パラメータ

説明

error

タプル

オプションで、めったに使用されません。 sys.exc_info()から返された例外情報(exception_class、exception_instance、traceback)を含むタプル。

attributes

ディクト

オプションです。エラーイベントに追加するカスタム属性(トランザクションに既に追加されているカスタム属性に加えて)。 ハイセキュリティモード が有効になっている場合、これは機能しません。

expected

boolean, iterable[String], callable(exception_class, exception_instance, traceback)->boolean

オプション。期待どおりにマークするエラーは、 module:classの形式の反復可能な文字列として渡すことができます。この値は、呼び出し可能またはエラーが予期されるかどうかを示すブール値にすることもできます。これらのエラーはUIに報告されますが、Apdexスコアやエラー率には影響しません。

ignore

boolean, iterable[String], callable(exception_class, exception_instance, traceback)->boolean

オプション。無視するエラーは、 module:classの形式の反復可能な文字列として渡すことができます。この値は、呼び出し可能またはエラーを無視するかどうかを示すブール値にすることもできます。特定の種類の例外を常に無視し、記録しないようにする必要がある場合に便利です。

status_code

文字列、整数、callable(exception_class, exception_instance, traceback)

オプション。例外ステータスコード。この値は、文字列、整数、またはsys.exc_info()から返された例外情報(exception_class、exception_instance、traceback)を取り込んで、ステータスコードを整数として返す呼び出し可能オブジェクトにすることができます。

application

アプリケーションオブジェクト

オプション。監視対象のWeb要求またはバックグラウンドタスクのコンテキスト外で呼び出された場合、 applicationオブジェクトが提供されない限り、呼び出しは無視されます。

戻り値

なし。

例外の報告の簡単な例

大半の場合、パラメータを渡す必要はありません。例外を報告したい場所で次のように呼べばよいのです。

newrelic.agent.notice_error()

booleanを使った例

ブール値を使用したnotice_errorの例。これは、エラーが予想されることを示しています。

newrelic.agent.notice_error(expected=True)

sys.exc_info()タプルと追加パラメータを用いたコール

sys.exc_info()データを使用したnotice_errorの例:

def complex_ignore_errors(exc, val, tb):
# do some logic here
return False
newrelic.agent.notice_error(attributes={'my_special_exception': True}, ignore=complex_ignore_errors)

コールバックの使用例

特定の例外タイプの属性に基づいて例外を動的にフィルタリングする必要がある場合は、コールバック関数を指定できます。

def _ignore_errors(exc, value, tb):
if instance(value, HTTPError):
if value.status == 404:
return True
newrelic.agent.notice_error(ignore=_ignore_errors)

例外を無視/予期する場合は、呼び出し可能オブジェクトの戻り値をTrueに設定します。他のチェックに関係なく例外を無視/予期しない場合はFalseを返し、後続のチェックと組み込みルールで例外を無視/期待するかどうかを決定する必要がある場合はNoneを返します。コールバックは通常、 TrueまたはNoneのいずれかを返します。

Copyright © 2022 New Relic株式会社。