構文
newrelic.agent.message_transaction(library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)
トランザクションとしてのメッセージ機能を報告する。
要件
エージェントのバージョンが2.88.0.72以上であること。
説明
このデコレータは、メッセージング関数のデコレータとして使用できるMessageTransactionWrapper
の部分を返します。使用すると、返されたデコレータはメッセージ トランザクションとそのメッセージ関連の属性を記録します。
デコレーターがアプリケーションで動作しない場合は、以下のいずれかを使用することができます。
The context manager
: コンテキスト マネージャー フォームは
MessageTransaction
です。 デコレータと同じものが必要です。The wrapper
: ラッパーフォームは
MessageTransactionWrapper
です。 デコレータを使用せずにラップされた関数を返すために使用できます。The path-based wrapper
: パスベースのラッパー形式は
wrap_message_transaction
です。 これは、モンキーパッチングを通じて、指定されたオブジェクトにMessageTransactionWrapper
を適用します。 これは、デコレータと同じ引数に加えて、追加のmodule
とobject_path
引数を受け取ります。
これらの異なるコールをどのような場合に使用すべきかについての説明は、 Different call formats を参照してください。コールの例については、 例 をご覧ください。
パラメーター
message_transactionとMessageTransactionのパラメータ
newrelic.agent.message_transaction(library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)
newrelic.agent.MessageTransaction(library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)
デコレーターとコンテキストマネージャーは、これらのパラメータを使用します。
パラメータ | 説明 |
---|---|
文字列 または 機能 | 必須項目です。使用しているメッセージ・ブローカーの名前(またはタイプ)です。定義した文字列またはそれを返す関数のいずれかを渡します。 |
文字列 または 機能 | 必須。操作の対象となる宛先のタイプ。それを定義する文字列またはそれを返す関数のいずれかを渡します。通常、これは |
文字列 または 機能 | 必須項目です。操作の対象となる宛先の名前です。この名前を定義する文字列か、この名前を返す関数を渡します。 |
アプリケーション | 必須。 |
文字列 または 機能 | オプションです。メッセージのルーティングキーです。 |
文字列 または 機能 | オプションです。メッセージの交換タイプです。 |
辞書 または 機能 | オプションです。メッセージのヘッダです。 |
文字列 または 機能 | オプションです。メッセージのキュー・ネーム・プロパティです。 |
文字列 または 機能 | オプション。メッセージの |
文字列 または 機能 | オプション。メッセージの |
MessageTransactionWrapperのパラメータ
newrelic.agent.MessageTransactionWrapper(wrapped, library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)
MessageTransactionWrapper
は、このwrapped
パラメータに加えて、デコレータと同じパラメータをすべて受け取ります。
パラメータ | 説明 |
---|---|
機能 | 必須です。メッセージ・ブローカーの時間に帰属させるメッセージング機能です。 |
wrap_message_transactionのパラメータ
newrelic.agent.wrap_message_transaction(module, object_path, library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)
これは、 module
パラメータとobject_path
パラメータに加えて、デコレータが行うすべてのパラメータを取ります。
パラメータ | 説明 |
---|---|
物体 | 必要です。ラップされるオブジェクトを含むモジュール。 |
ストリング | 必要です。ラップされるオブジェクトへのパス。 |
戻り値
デコレータmessage_transaction
はMessageTransactionWrapper
パーシャルを返します。
例
メッセージトランザクショ ンの例
デコレーターの例です。
mt = message_transaction('library', 'Exchange', 'x', routing_key='foo.bar')
@mtdef foo(): pass
MessageTransactionの例
コンテキストマネージャーを使用した例です。
def callback(method, properties, body): with MessageTransaction('library', 'Exchange', 'x', application=app): pass
MessageTransactionWrapperの例
ラッパーを使った例
basic_consume_wrapper = newrelic.agent.MessageTransactionWrapper(basic_consume_register_callback, 'library', 'Queue', 'x')
method_frame, header_frame, body = basic_consume_wrapper('queue')
wrap_message_transactionの例
パスベースのラッパーを使った例
wrap_message_transaction('module', 'Foo.bar', 'library', 'Exchange', 'x')