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 quedó obsoleta en la versión 5.6.0.135 y se eliminó por completo en la versión 11.0.0. Por favor emplee accept_distributed_trace_headers en su lugar.
rastreo distribuido debe estar habilitado.
Descripción
Para obtener contexto sobre cómo usar esta llamada, primero lea su socio llamada API create_distributed_trace_payload y Habilitar rastreo distribuido con API del agente.
Esta llamada se emplea para vincular transacciones analizando el rastreo distribuido carga 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_payloadfue llamado después decreate_distributed_trace_payloady no antes.accept_distributed_trace_payloadfue 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)