Sintaxis
newrelic.agent.accept_distributed_trace_headers(headers, transport_type='HTTP')
Este método se utiliza para aceptar los encabezados utilizados para conectar transacciones dentro de un rastreo distribuido.
Requisitos
Agente Python versión 5.6.0.135 o superior.
rastreo distribuido debe estar habilitado.
Descripción
Para obtener contexto sobre cómo utilizar esta llamada, primero lea la llamada API de su socio insert_distributed_trace_headers
y Habilitar rastreo distribuido con API de agente.
Esta llamada se utiliza para vincular transacciones analizando los encabezados del rastreo distribuido generados por insert_distributed_trace_headers
.
Parámetros
Parámetro | Descripción |
---|---|
diccionario o lista | Requerido. Los encabezados que se aceptarán. Puede proporcionarse como un iterable de ( |
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_*
fue llamado después de que se había creado una carga útil y no antes.accept_distributed_trace_*
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): newrelic.agent.accept_distributed_trace_headers(request.headers)
_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'): newrelic.agent.accept_distributed_trace_headers(message.headers, transport_type='Queue') _process_message(message)