構文
newrelic.agent.message_trace(library, operation, destination_type, destination_name, params={})
トランザクション・トレース・セグメントとしてのレポート・メッセージング機能。
要件
エージェントのバージョンが2.88.0.72以上であること。
説明
message_transaction
(およびそれに関連付けられた呼び出し) は、メッセージ関数をトランザクションとして報告します。message_trace
は、追加セグメントの形式でトランザクション追跡に詳細を追加するために使用されます。message_trace
は、メッセージ関数のデコレータとして使用できるMessageTraceWrapper
の部分を返します。
message_trace
デコレーターは、エージェント バージョン 2.102.0.85 以降のジェネレーターとコルーチンで使用できます。これらのオブジェクトのタイミングは、消費が開始されたときに始まり、オブジェクトが使い果たされるか範囲外になると終了します。これは、メトリックがジェネレータまたはコルーチン オブジェクト自体の作成にかかった時間を表す以前のバージョンからの変更です。
アプリケーションでデコレーターを使用できない場合は、これらの他の呼び出しフォーマットのいずれかを使用することができます。
The context manager
: コンテキスト マネージャー フォームは
MessageTrace
です。 デコレータと同じものが必要です。The wrapper
: ラッパーフォームは
MessageTraceWrapper
です。 デコレータを使用せずにラップされた関数を返すために使用できます。The path-based wrapper
: パスベースのラッパー形式は
wrap_message_trace
です。 これは、モンキーパッチングを通じて、指定されたオブジェクトにMessageTraceWrapper
を適用します。 これは、デコレータと同じ引数に加えて、追加のmodule
とobject_path
引数を受け取ります。
これらの異なるコールフォーマットの用途についての説明は、 Different call formats を参照してください。通話例については、 例 をご覧ください。
パラメーター
message_traceのパラメータ
newrelic.agent.message_trace(library, operation, destination_type, destination_name, params={})
message_trace
デコレータは次のパラメータを使用します:
パラメータ | 説明 |
---|---|
文字列 または 機能 | 必須項目です。使用しているメッセージブローカーのタイプの名前(またはタイプ)。定義した文字列か、それを返す関数を渡します。 |
文字列 または 機能 | 必須。トレースされた関数で発生する操作によって示される |
文字列 または 機能 | 必須。操作の対象となる宛先のタイプ。それを定義する文字列またはそれを返す関数のいずれかを渡します。通常、これは |
文字列 または 機能 | 必須項目です。操作の対象となる宛先の名前です。この名前を定義する文字列か、この名前を返す関数を渡します。 |
辞書 | オプション。操作に関する追加の詳細。これらは通常、 |
MessageTraceのパラメータ
newrelic.agent.MessageTrace(library, operation, destination_type, destination_name, params={})
MessageTrace
コンテキスト マネージャーは、 message_trace
によって取得されたすべてのパラメーターを取得します。
MessageTraceWrapperのパラメータ
newrelic.agent.MessageTraceWrapper(wrapped, library, operation, destination_type, destination_name, params={})
MessageTraceWrapper
は、最初のwrapped
パラメータに加えて、デコレータと同じパラメータをすべて受け取ります。
パラメータ | 説明 |
---|---|
機能 | 必須です。メッセージ・ブローカーの時間に帰属させるメッセージング機能です。 |
wrap_message_traceのパラメータ
newrelic.agent.wrap_message_trace(module, object_path, library, operation, destination_type, destination_name, params={})
wrap_message_trace
は、 module
パラメータとobject_path
パラメータに加えて、デコレータが行うすべてのパラメータを受け取ります。
パラメータ | 説明 |
---|---|
物体 | 必要です。ラップされるオブジェクトを含むモジュール。 |
ストリング | 必要です。ラップされるオブジェクトへのパス。 |
戻り値
message_trace
MessageTraceWrapper()
パーシャルを返します。
例
message_traceの例
message_trace
の使用例:
@message_trace('library', 'Consume', 'Exchange', 'x')def foo(): pass
ネイティブ コルーチンでmessage_trace
デコレータを使用する例:
@message_trace('library', 'Consume', 'Exchange', 'x')async def foo(): pass
MessageTraceの例
MessageTrace
コンテキスト マネージャーの使用例:
def basic_get(queue, no_ack=False): with MessageTrace('library', 'Consume', 'Exchange', 'x'): pass
MessageTraceWrapperの例
MessageTraceWrapper
の使用例:
wrapped_basic_get = newrelic.agent.MessageTraceWrapper(basic_get, 'library', 'Consume', 'Queue', 'x')
method_frame, header_frame, body = wrapped_basic_get('queue')
wrap_message_traceの例
wrap_message_trace
パスベースのラッパーの使用例:
wrap_message_trace('module', 'Foo.bar', 'library', 'Produce', 'Exchange', 'x')