• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Crea una propuesta

create_distributed_trace_payload (API del agente Python)

Sintaxis

newrelic.agent.create_distributed_trace_payload()

Este método se utiliza para generar carga utilizada para conectar transacciones 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.insert_distributed_trace_headers en su lugar.

rastreo distribuido debe estar habilitado.

Descripción

Esta API requiere que rastreo distribuido esté habilitado.

Para obtener instrucciones sobre cómo utilizar esta llamada, junto con su llamada de socio accept_distributed_trace_payload, consulte Habilitar rastreo distribuido con API de agente.

Esta convocatoria se utiliza para implementar rastreo distribuido. Genera una carga útil que la aplicación receptora lee con el método accept_distributed_trace_payload .

Valores de retorno

Cuando tiene éxito, devuelve un objeto DistributedTracePayload , que hereda del tipo dict integrado de Python y tiene los siguientes métodos adicionales:

  • text: genera una versión de cadena codificada en JSON de la carga útil.
  • http_safe: Genera una versión de cadena codificada en base64 de la carga útil.

Si no tiene éxito, devuelve None. Esto puede suceder cuando rastreo distribuido no está habilitado o cuando se llama desde fuera de una transacción activa.

Ejemplos

Importante

Para mantener el orden correcto de los tramos en una traza, se debe generar la carga útil en el contexto del tramo que la envía.

Crear una carga útil rastreo distribuida dentro de una tarea en segundo plano

Un ejemplo del uso de create_distributed_trace_payload para crear dos trazas externas desde una sola tarea en segundo plano:

@newrelic.agent.background_task()
def main(url):
header_key = newrelic.agent.ExternalTrace.cat_distributed_trace_key
with newrelic.agent.ExternalTrace('my_external_library', url, method='GET'):
# Generate the payload in the context of the ExternalTrace
# span that sends it
payload = newrelic.agent.create_distributed_trace_payload()
headers = {header_key: payload.http_safe()}
response = my_external_library._get(url, headers=headers)
data = _process_response(response)
with newrelic.agent.ExternalTrace('my_external_library', url, method='POST'):
# Generate the payload in the context of the ExternalTrace
# span that sends it
payload = newrelic.agent.create_distributed_trace_payload()
headers = {header_key: payload.http_safe()}
response = my_external_library._post(url, data=data, headers=headers)

Crear una carga útil rastreo distribuida dentro de una traza externa

Un ejemplo del uso create_distributed_trace_payload para crear una traza externa:

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):
payload = newrelic.agent.create_distributed_trace_payload()
header_key = newrelic.agent.ExternalTrace.cat_distributed_trace_key
headers = {header_key: payload.http_safe()}
return my_external_library._get(url, headers=headers)
Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.