構文
newrelic.agent.external_trace(library, url, method=None)
外部サービスへの呼び出しをトランザクション・トレース・セグメントとして報告する。
説明
external_trace
は、追加セグメントの形で トランザクショントレース に詳細を追加するために使用されます。 external_trace
で報告されたすべてのコールは、APM の「externals」タブに表示されます。 external_trace
は、外部サービスを呼び出す関数のデコレーターとして使用できる ExternalTraceWrapper
の 部分的な を返します。
external_trace
デコレータは、エージェントバージョン 2.102.0.85 以降のジェネレータおよびコルーチンで使用できます。これらのオブジェクトのタイミングは、消費が開始されたときに始まり、オブジェクトが使い果たされたときやスコープ外に出たときに終了します。これは、以前のバージョンでは、ジェネレータまたはコルーチンオブジェクト自体の作成にかかった時間を表す指標だったのが、変更されたものです。
アプリケーションでデコレーターを使用できない場合は、これらの他の呼び出しフォーマットのいずれかを使用することができます。
- コンテキストマネージャー: コンテキストマネージャーのフォームは
ExternalTrace
. - ラッパー: ラッパーフォームは
ExternalTraceWrapper
。デコレーターを使わずに、ラップされた関数を返すために使うことができます。 - パスベースのラッパー: パスベースのラッパー形式は
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
は、 デコレーター と同じパラメータをすべて取り、さらに ラップされた
の初期パラメータも取ります。
パラメーター | 説明 |
---|---|
機能 | 必要です。外部時刻に帰属させる外部呼出機能です。 |
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')