• ログイン今すぐ開始

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

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

問題を作成する

message_transaction (PythonエージェントAPI)

構文

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部分を返します。使用すると、返されたデコレータはメッセージ トランザクションとそのメッセージ関連の属性を記録します。

デコレーターがアプリケーションで動作しない場合は、以下のいずれかを使用することができます。

  • コンテキスト マネージャー: コンテキスト マネージャーの形式はMessageTransactionです。デコレータと同じパラメータを取ります。
  • ラッパー: ラッパー形式はMessageTransactionWrapperです。デコレータを使用せずにラップされた関数を返すために使用できます。
  • パスベースのラッパー: パスベースのラッパー形式は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)

デコレーターとコンテキストマネージャーは、これらのパラメータを使用します。

パラメータ

説明

library

文字列 または 機能

必須項目です。使用しているメッセージ・ブローカーの名前(またはタイプ)です。定義した文字列またはそれを返す関数のいずれかを渡します。

destination_type

文字列 または 機能

必須。操作の対象となる宛先のタイプ。それを定義する文字列またはそれを返す関数のいずれかを渡します。通常、これはExchangeまたはQueueです。

destination_name

文字列 または 機能

必須項目です。操作の対象となる宛先の名前です。この名前を定義する文字列か、この名前を返す関数を渡します。

application

アプリケーション

必須。applicationによって返されるアプリケーション インスタンス。

routing_key

文字列 または 機能

オプションです。メッセージのルーティングキーです。

exchange_type

文字列 または 機能

オプションです。メッセージの交換タイプです。

headers

辞書 または 機能

オプションです。メッセージのヘッダです。

queue_name

文字列 または 機能

オプションです。メッセージのキュー・ネーム・プロパティです。

reply_to

文字列 または 機能

オプション。メッセージのreplyToプロパティ。

correlation_id

文字列 または 機能

オプション。メッセージのcorrelationIDプロパティ。

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パラメータに加えて、デコレータと同じパラメータをすべて受け取ります。

パラメータ

説明

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パラメータに加えて、デコレータが行うすべてのパラメータを取ります。

パラメータ

説明

module

物体

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

object_path

ストリング

必要です。ラップされるオブジェクトへのパス。

戻り値

デコレータmessage_transactionMessageTransactionWrapperパーシャルを返します。

メッセージトランザクショ ンの例

デコレーターの例です。

mt = message_transaction('library', 'Exchange', 'x', routing_key='foo.bar')
@mt
def 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')
Copyright © 2022 New Relic株式会社。

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