構文
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 以上のジェネレータとコルーチンで使用できます。これらのオブジェクトのタイミングは、消費が開始されたときに始まり、オブジェクトが使い果たされたときやスコープ外に出たときに終了します。これは、以前のバージョンでは、ジェネレータまたはコルーチンオブジェクト自体の作成にかかった時間を表す指標であったのに対し、変更されています。
アプリケーションでデコレーターを使用できない場合は、これらの他の呼び出しフォーマットのいずれかを使用することができます。
- コンテキストマネージャー: コンテキストマネージャーのフォームは
MessageTrace
。デコレーターと同じパラメータを受け取ります。 - ラッパー: ラッパーの形態は
MessageTraceWrapper
。デコレーターを使わずに、ラップされた関数を返すのに使えます。 - パスベースのラッパー: パスベースのラッパー形式は
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
は、 デコレーター と同じパラメータをすべて取り、さらに ラップされた
の初期パラメータも取ります。
パラメーター | 説明 |
---|---|
機能 | 必須です。メッセージ・ブローカーの時間に帰属させるメッセージング機能です。 |
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')