• ログイン

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

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

問題を作成する

external_trace (PythonエージェントAPI)

構文

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 をモンキーパッチングによって与えられたオブジェクトに適用します。これは、デコレータと同じパラメータに加えて、追加の moduleobject_path パラメータを取ります。

これらの異なるコールフォーマットの用途についての説明は、 Different call formats を参照してください。通話例については、 をご覧ください。

パラメータ

external_traceのパラメータ

newrelic.agent.external_trace(library, url, method=None)

external_trace デコレーターはこれらのパラメータを使用します。

パラメーター

説明

ライブラリー

文字列 または 機能

必須項目です。使用している外部ライブラリの名前(またはタイプ)。定義した文字列か、それを返す関数を渡します。

url

文字列 または 機能

必須です。ライブラリーコールによって要求されたURLです。それを定義する文字列か、それを返す関数を渡します。

メソッド

文字列 または 機能

任意です。呼び出しの種類を定義するメソッドです。通常、 getpostputdelete となります。

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 パラメータを取ります。

パラメーター

説明

モジュール

オブジェクト

必要です。ラップされるオブジェクトを含むモジュール。

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')
Copyright © 2022 New Relic株式会社。

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