Syntax
newrelic.agent.accept_distributed_trace_headers(headers, transport_type='HTTP')This method is used for accepting the headers used to connect transactions within a distributed trace.
Requirements
Python agent version 5.6.0.135 or higher.
Distributed tracing must be enabled.
Description
For context on how to use this call, first read its partner API call insert_distributed_trace_headers and Enable distributed tracing with agent APIs.
This call is used to link transactions by parsing the distributed tracing headers generated by insert_distributed_trace_headers.
Parameters
Parameter  | Description  | 
|---|---|
 dictionary or list  | Required. The headers to be accepted. May be provided as an iterable of (  | 
 string  | Optional, defaults to   | 
Return values
When successful, returns True.
When unsuccessful, returns False. Accepting a payload can fail for several reasons:
- The current transaction is not enabled.
 - Accept was called outside the scope of a transaction.
 - The payload is empty.
 - Distributed tracing is not enabled.
 accept_distributed_trace_*was called after a payload had been created and not before.accept_distributed_trace_*was called multiple times in a single transaction.- The payload could not be parsed.
 - The payload was sent from an untrusted account.
 
Examples
Accept a distributed trace payload inside a background task
An example of using accept_distributed_trace_headers in a background task:
@newrelic.agent.background_task()def handle(request):    newrelic.agent.accept_distributed_trace_headers(request.headers)
    _do_some_work()Consume from a queue
An example of using accept_distributed_trace_headers and creating a background task for each message:
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)