Syntaxe
newrelic.agent.accept_distributed_trace_payload(payload, transport_type='HTTP')Cette méthode est utilisée pour accepter les frais utilisés pour connecter les transactions au sein d'une traces distribuées.
Exigences
Python agent version 4.2.0.100 ou supérieure.
Prudence
Cette API a été déconseillée dans la version 5.6.0.135 et complètement supprimée dans la version 11.0.0. Veuillez utiliser accept_distributed_trace_headers à la place.
Le tracing distribué doit être activé.
Description
Pour plus de contexte sur la façon d'utiliser cet appel, lisez d'abord son partenaire appel d'API create_distributed_trace_payload et Activer le tracing distribué avec l'API d'agent.
Cet appel permet de lier les transactions en analysant les frais de tracing distribués générés par create_distributed_trace_payload.
Paramètres
paramètres | Description |
|---|---|
dictionnaire ou chaîne | Requis. La charge utile à accepter. |
chaîne | Facultatif, la valeur par défaut est |
Valeurs de retour
En cas de succès, renvoie True.
En cas d'échec, renvoie False. L'acceptation d'une charge utile peut échouer pour plusieurs raisons :
- La transaction en cours n'est pas activée.
- Accept a été appelé en dehors du cadre d'une transaction.
- La charge utile est vide.
- Le tracing distribué n'est pas activé.
accept_distributed_trace_payloada été appelé aprèscreate_distributed_trace_payload, et non avant.accept_distributed_trace_payloada été appelé plusieurs fois dans une seule transaction.- La charge utile n'a pas pu être analysée.
- La charge utile a été envoyée à partir d’un compte non fiable.
Exemples
Accepter une traces distribuée à l'intérieur d'une tâche d'arrière-plan
Un exemple d'utilisation de accept_distributed_trace_payload dans une tâche en arrière-plan :
@newrelic.agent.background_task()def handle(request): payload = request.headers.get('newrelic') if payload: newrelic.agent.accept_distributed_trace_payload(payload)
_do_some_work()Consommer depuis une file d'attente
Un exemple d'utilisation de accept_distributed_trace_payload et de création d'une tâche en arrière-plan pour chaque 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'): payload = message.headers.get('newrelic') newrelic.agent.accept_distributed_trace_payload(payload, transport_type='Queue') _process_message(message)