構文
newrelic.agent.insert_distributed_trace_headers(list_of_headers)
この方法は、分散トレース内のトランザクションを接続するためのヘッダーを挿入するために使用されます。
要件
Pythonエージェントのバージョン5.6.0.135以上。
Distributed Tracingが有効であること .
説明
このAPIは、 分散型トレースが有効になっている必要があります 。
この呼び出しとそのパートナー呼び出し accept_distributed_trace_headers
の使用方法については、 「エージェント API で分散トレースを有効にする」を参照してください。
この呼び出しは、分散トレースを実装するために使用されます。これは、受信アプリケーションが accept_distributed_trace_headers
メソッドを使用して読み取ることができるリストにヘッダーを挿入します。
パラメーター
パラメータ | 説明 |
---|---|
リスト | 必要。ヘッダーのリスト。このリストは呼び出しによって変更されます (ヘッダーは |
戻り値
None
を返します。入力リストは、この関数の呼び出しによって更新されます。
例
重要
トレース内のスパンの適切な順序を維持するためには、ペイロードを送信するスパンのコンテキストでペイロードを生成する必要があります。
バックグラウンドタスク内での分散型トレースペイロードの作成
単一のバックグラウンド タスク内から 外部トレース を作成する際の 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)