構文
newrelic.agent.insert_distributed_trace_headers(list_of_headers)
この方法は、分散トレース内のトランザクションを接続するためのヘッダーを挿入するために使用されます。
要件
Pythonエージェントのバージョン5.6.0.135以上。
Distributed Tracingが有効であること .
説明
このAPIは、 分散型トレースが有効になっている必要があります 。
このコールとそのパートナーコールの使用方法については、 accept_distributed_trace_headers
、 Enable distributed tracing with agent APIs を参照してください。
このコールは、分散型トレーシングの実装に使用されます。このコールは、受信側のアプリケーションが accept_distributed_trace_headers
メソッドを使って読むことができるリストにヘッダを挿入します。
パラメータ
パラメーター | 説明 |
---|---|
リスト | 必須。ヘッダーのリストです。このリストはコールによって変更されます(ヘッダーは(header_name, header_value)の形式でリストに挿入されます)。 |
戻り値
戻り値 なし
.この関数の呼び出しにより、入力リストが更新されます。
例
重要
トレース内のスパンの適切な順序を維持するためには、ペイロードを送信するスパンのコンテキストでペイロードを生成する必要があります。
バックグラウンドタスク内での分散型トレースペイロードの作成
insert_distributed_trace_headers
を使用して、単一のバックグラウンドタスク内から 外部トレース を作成する例です。
@newrelic.agent.background_task()def main(url): with newrelic.agent.ExternalTrace('my_external_library', url, method='GET'): # Generate the payload in the context of the ExternalTrace # span that sends it headers = [] newrelic.agent.insert_distributed_trace_headers(headers) response = my_external_library._get(url, headers=headers)
data = _process_response(response)
外部トレースの中に分散型トレースペイロードを作成する
insert_distributed_trace_headers
を使って 外部トレースを作成する際の例:
def _bind_url(url, *args, **kwargs): # _bind_url is called with the args and kwargs sent to the `get` # method below return url
@newrelic.agent.external_trace('my_external_library', _bind_url, method='GET')def get(url): headers = [] newrelic.agent.insert_distributed_trace_headers(headers) return my_external_library._get(url, headers=headers)