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

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

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

問題を作成する

accept_distributed_trace_headers (PythonエージェントAPI)

構文

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)のイテレート可能な形式、または辞書として提供されます。

トランスポートタイプ
_string

オプション、デフォルトは HTTP 。このペイロードを送信したトランスポートのタイプです。以下のいずれかでなければなりません。 HTTP, HTTPS, Kafka, JMS, IronMQ, AMQP, Queue, or Other.

戻り値

成功すると、 を返します。

失敗した場合は、 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.agent
newrelic.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)
Copyright © 2022 New Relic株式会社。