構文
newrelic.agent.external_trace(library, url, method=None)
外部サービスへの呼び出しをトランザクション・トレース・セグメントとして報告する。
説明
external_trace
追加セグメントの形式でトランザクション追跡に詳細を追加するために使用されます。external_trace
で報告された呼び出しは、APM の外部タブに表示されます。external_trace
は、外部サービスを呼び出す関数のデコレータとして使用できるExternalTraceWrapper
の部分を返します。
external_trace
デコレーターは、エージェント バージョン 2.102.0.85 以降のジェネレーターとコルーチンで使用できます。これらのオブジェクトのタイミングは、消費が開始されたときに始まり、オブジェクトが使い果たされるか範囲外になると終了します。これは、メトリックがジェネレータまたはコルーチン オブジェクト自体の作成にかかった時間を表す以前のバージョンからの変更です。
アプリケーションでデコレーターを使用できない場合は、これらの他の呼び出しフォーマットのいずれかを使用することができます。
The context manager
: コンテキスト マネージャー フォームは
ExternalTrace
です。The wrapper
: ラッパーフォームは
ExternalTraceWrapper
です。 デコレータを使用せずにラップされた関数を返すために使用できます。The path-based wrapper
: パスベースのラッパー形式は
wrap_external_trace
です。 これは、モンキーパッチングを通じて、指定されたオブジェクトにExternalTraceWrapper
を適用します。 これは、デコレータと同じ引数に加えて、追加のmodule
とobject_path
引数を受け取ります。
これらの異なるコールフォーマットの用途についての説明は、 Different call formats を参照してください。通話例については、 例 をご覧ください。
パラメーター
external_traceのパラメータ
newrelic.agent.external_trace(library, url, method=None)
external_trace
デコレータは次のパラメータを使用します:
パラメータ | 説明 |
---|---|
文字列 または 機能 | 必須項目です。使用している外部ライブラリの名前(またはタイプ)。定義した文字列か、それを返す関数を渡します。 |
文字列 または 機能 | 必須です。ライブラリーコールによって要求されたURLです。それを定義する文字列か、それを返す関数を渡します。 |
文字列 または 機能 | オプション。行われる呼び出しのタイプを定義するメソッド。これらは通常、 |
ExternalTraceのパラメータ
newrelic.agent.ExternalTrace(library, url, method=None)
ExternalTrace
コンテキスト マネージャーは、 external_trace
によって取得されたすべてのパラメーターを取得します。
ExternalTraceWrapperのパラメータ
newrelic.agent.ExternalTraceWrapper(wrapped, library, url, method=None)
ExternalTraceWrapper
は、最初のwrapped
パラメータに加えて、デコレータと同じパラメータをすべて受け取ります。
パラメータ | 説明 |
---|---|
機能 | 必要です。外部時刻に帰属させる外部呼出機能です。 |
wrap_external_traceのパラメータ
newrelic.agent.wrap_external_trace(module, object_path, library, url, method=None)
wrap_external_trace
は、 module
パラメータとobject_path
パラメータに加えて、デコレータが行うすべてのパラメータを受け取ります。
パラメータ | 説明 |
---|---|
物体 | 必要です。ラップされるオブジェクトを含むモジュール。 |
ストリング | 必要です。ラップされるオブジェクトへのパス。 |
戻り値
external_trace
ExternalTraceWrapper()
パーシャルを返します。
例
external_traceの例
external_trace
の使用例:
@external_trace('library', 'http://example.com', 'get')def foo(): pass
ネイティブ コルーチンでexternal_trace
を使用する例:
@external_trace('library', 'http://example.com', 'get')async def foo(): pass
ExternalTraceの例
ExternalTrace
コンテキスト マネージャーの使用例:
def fetch_example_dot_com(): with ExternalTrace('library', 'http://example.com', 'get'): pass
ExternalTraceWrapperの例
ExternalTraceWrapper
の使用例:
wrapped_fetch_example_dot_com = newrelic.agent.ExternalTraceWrapper(fetch_example_dot_com, 'library', 'http://example.com', 'get')
response = wrapped_fetch_example_dot_com()
wrap_external_traceの例
wrap_external_trace
パスベースのラッパーの使用例:
wrap_external_trace('module', 'Foo.bar', 'library', 'http://example.com', 'get')