• ログイン今すぐ開始

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

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

問題を作成する

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が特定のオブジェクトに適用されます。これは、デコレーターと同じパラメーターに加えて、追加のmoduleおよびobject_pathパラメーターを取ります。

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

パラメーター

message_traceのパラメータ

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

message_traceデコレータは次のパラメータを使用します:

パラメータ

説明

library

文字列 または 機能

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

operation

文字列 または 機能

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

destination_type

文字列 または 機能

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

destination_name

文字列 または 機能

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

params

辞書

オプション。操作に関する追加の詳細。これらは通常、 routing_keycorrelation_idreply_toqueue_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は、最初のwrappedパラメータに加えて、デコレータと同じパラメータをすべて受け取ります。

パラメータ

説明

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

パラメータ

説明

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')
Copyright © 2022 New Relic Inc.

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