構文
newrelic.agent.accept_distributed_trace_headers(headers, transport_type='HTTP')
このメソッドは、分散型トレース内のトランザクションを接続するために使用されるヘッダーを受け入れるために使用されます。
要件
Pythonエージェントのバージョン5.6.0.135以上。
Distributed Tracingが有効であること .
説明
このコールの使用方法については、まずそのパートナーAPIコールをお読みください insert_distributed_trace_headers
and Enable distributed tracing with agent APIs.
このコールは、 insert_distributed_trace_headers
によって生成された分散型トレースヘッダーを解析して、トランザクションをリンクするために使用されます。
パラメータ
パラメーター | 説明 |
---|---|
辞書またはリスト | 必要なもの受け入れるべきヘッダです。(header_name, header_value)のイテレート可能な形式、または辞書として提供されます。 |
トランスポートタイプ | オプション、デフォルトは |
戻り値
成功すると、 真
を返します。
失敗した場合は、 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)