Sintaxis
newrelic.agent.accept_distributed_trace_payload(payload, transport_type='HTTP')
Este método se utiliza para aceptar la carga utilizada para conectar la transacción dentro de un rastreo distribuido.
Requisitos
Agente Python versión 4.2.0.100 o superior.
Advertencia
Esta API ha quedado obsoleta. Utilice newrelic.agent.accept_distributed_trace_headers en cambio.
rastreo distribuido debe estar habilitado.
Descripción
Para obtener contexto sobre cómo utilizar esta llamada, primero lea la llamada API de su socio create_distributed_trace_payload
y Habilitar rastreo distribuido con API de agente.
Esta llamada se utiliza para vincular la transacción analizando el rastreo de carga distribuida generado por create_distributed_trace_payload
.
Parámetros
Parámetro | Descripción |
---|---|
diccionario o cadena | Requerido. La carga útil que se aceptará. |
cadena | Opcional, el valor predeterminado es |
Valores de retorno
Cuando tiene éxito, devuelve True
.
Si no tiene éxito, devuelve False
. La aceptación de una carga útil puede fallar por varios motivos:
- La transacción actual no está habilitada.
- Se llamó a Accept fuera del alcance de una transacción.
- La carga útil está vacía.
- rastreo distribuido no está habilitado.
accept_distributed_trace_payload
fue llamado después decreate_distributed_trace_payload
y no antes.accept_distributed_trace_payload
fue llamado varias veces en una sola transacción.- No se pudo analizar la carga útil.
- La carga útil se envió desde una cuenta que no es de confianza.
Ejemplos
Aceptar una carga útil de rastreo distribuida dentro de una tarea en segundo plano
Un ejemplo de uso de accept_distributed_trace_payload
en una tarea en segundo plano:
@newrelic.agent.background_task()def handle(request): payload = request.headers.get('newrelic') if payload: newrelic.agent.accept_distributed_trace_payload(payload)
_do_some_work()
Consumir en cola
Un ejemplo de uso accept_distributed_trace_payload
y creación de una tarea en segundo plano para cada mensaje:
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)