• /
  • ログイン
  • 無料アカウント

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

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

問題を作成する

message_trace (PythonエージェントAPI)

構文

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

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

パラメータ

message_traceのパラメータ

newrelic.agent.message_trace(library, operation, destination_type, destination_name, params={})

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

パラメーター

説明

ライブラリー

文字列 または 機能

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

操作

文字列 または 機能

必要です。 Produce または Consume のいずれかであり、トレースされた関数内で発生した操作によって示されます。それを定義する文字列か、それを返す関数を渡します。

デスティネーションタイプ

文字列 または 機能

必要です。操作の対象となるデスティネーションのタイプです。これを定義する文字列か、それを返す関数を渡します。これは通常、 Exchange または Queue となります。

宛先名

文字列 または 機能

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

params

辞書

任意です。操作に関する追加の詳細。これらは通常、 routing_key, correlation_id, reply_to, queue_name, または headers です。

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

パラメーター

説明

モジュール

オブジェクト

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

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')
問題を作成する
Copyright © 2022 New Relic Inc.