構文
newrelic.agent.accept_distributed_trace_payload(payload, transport_type='HTTP')
この方法は、分散型トレース内のトランザクションを接続するために使用されるペイロードを受け入れるために使用されます。
要件
Pythonエージェントのバージョン4.2.0.100以上。
注意
このAPIは廃止されました。代わりに newrelic.agent.accept_distributed_trace_headers をご利用ください。
Distributed Tracingが有効であること .
説明
この呼び出しの使用方法については、まずパートナー API 呼び出し create_distributed_trace_payload
と エージェント API による分散トレースの有効化を参照してください。
この呼び出しは、 create_distributed_trace_payload
によって生成された分散トレース ペイロードを解析することでトランザクションをリンクするために使用されます。
パラメーター
パラメータ | 説明 |
---|---|
辞書または文字列 | 必須。受け入れるべきペイロードです。 |
ストリング | オプション。デフォルトは |
戻り値
成功すると、 True
を返します。
失敗した場合は False
を返します。ペイロードの受け入れは、いくつかの理由で失敗する可能性があります。
- 現在のトランザクションは有効ではありません。
- Acceptがトランザクションの範囲外で呼び出された。
- ペイロードは空です。
- Distributed Tracing is not enabled.
accept_distributed_trace_payload
は、create_distributed_trace_payload
前ではなく後に呼び出されています。accept_distributed_trace_payload
1 つのトランザクションで複数回呼び出されました。- ペイロードを解析できませんでした。
- ペイロードは、信頼できないアカウントから送信されたものです。
例
バックグラウンドタスク内での分散型トレースペイロードの受け入れ
バックグラウンド タスクで accept_distributed_trace_payload
を使用する例:
@newrelic.agent.background_task()def handle(request): payload = request.headers.get('newrelic') if payload: newrelic.agent.accept_distributed_trace_payload(payload)
_do_some_work()
キューからの消費
accept_distributed_trace_payload
を使用して各メッセージの バックグラウンド タスク を作成する例:
import newrelic.agentnewrelic.agent.initialize('newrelic.ini')application = newrelic.agent.register_application(timeout=10.0)
def main(queue): for message in queue.consume(): with newrelic.agent.BackgroundTask(application, 'Queue Consume'): payload = message.headers.get('newrelic') newrelic.agent.accept_distributed_trace_payload(payload, transport_type='Queue') _process_message(message)