Syntaxe
newrelic.agent.insert_distributed_trace_headers(list_of_headers)
Cette méthode est utilisée pour insérer des en-têtes utilisés pour connecter des transactions au sein d'une tracedistribuée.
Exigences
Python agent version 5.6.0.135 ou supérieure.
Le tracing distribué doit être activé.
Description
Cette API nécessite que le tracing distribué soit activé.
Pour obtenir des instructions sur l'utilisation de cet appel, ainsi que de son appel partenaire accept_distributed_trace_headers
, consultez Activer le tracing distribué avec l'API d' agent.
Cet appel est utilisé pour implémenter le tracing distribué. Il insère des en-têtes dans une liste qui peut être lue par l'application réceptrice avec la méthode accept_distributed_trace_headers
.
Paramètres
paramètres | Description |
---|---|
liste | Requis. Une liste d'en-têtes. Cette liste sera mutée par l'appel (les en-têtes seront insérés dans la liste sous la forme de |
Valeurs de retour
Renvoie None
. La liste d'entrée sera mise à jour par un appel à cette fonction.
Exemples
Important
Afin de maintenir un ordre correct des étendues dans une trace, vous devez générer la charge utile dans le contexte de l'étendue qui l'envoie.
Créer une traces distribuées à l'intérieur d'une tâche d'arrière-plan
Un exemple d'utilisation de insert_distributed_trace_headers
dans la création d'une trace externe à partir d'une seule tâche d'arrière-plan :
@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)
Créer une traces distribuées charge à l'intérieur d'une traceexterne
Un exemple d'utilisation de insert_distributed_trace_headers
dans la création d'une trace externe:
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)