構文
newrelic.agent.accept_distributed_trace_headers(headers, transport_type='HTTP')
このメソッドは、分散型トレース内のトランザクションを接続するために使用されるヘッダーを受け入れるために使用されます。
要件
Pythonエージェントのバージョン5.6.0.135以上。
Distributed Tracingが有効であること .
説明
この呼び出しの使用方法のコンテキストについては、最初にそのパートナー API 呼び出し insert_distributed_trace_headers
と エージェント API で分散トレースを有効にするをお読みください。
この呼び出しは、 insert_distributed_trace_headers
によって生成された分散トレース ヘッダーを解析することにより、トランザクションをリンクするために使用されます。
パラメーター
パラメータ | 説明 |
---|---|
辞書またはリスト | 必要。受け入れられるヘッダー。( |
ストリング | オプション。デフォルトは |
戻り値
成功すると、 True
を返します。
失敗した場合は False
を返します。ペイロードの受け入れは、いくつかの理由で失敗する可能性があります。
- 現在のトランザクションは有効ではありません。
- Acceptがトランザクションの範囲外で呼び出された。
- ペイロードは空です。
- Distributed Tracing is not enabled.
accept_distributed_trace_*
ペイロードが作成される前ではなく、作成された後に呼び出されました。accept_distributed_trace_*
1 つのトランザクションで複数回呼び出されました。- ペイロードを解析できませんでした。
- ペイロードは、信頼できないアカウントから送信されたものです。
例
バックグラウンドタスク内での分散型トレースペイロードの受け入れ
バックグラウンド タスクで accept_distributed_trace_payload
を使用する例:
@newrelic.agent.background_task()def handle(request): newrelic.agent.accept_distributed_trace_headers(request.headers)
_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'): newrelic.agent.accept_distributed_trace_headers(message.headers, transport_type='Queue') _process_message(message)