• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

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.

Criar um problema

accept_distributed_trace_payload (API do agente Python)

Sintaxe

newrelic.agent.accept_distributed_trace_payload(payload, transport_type='HTTP')

Este método é utilizado para aceitar a carga utilizada para conectar a transação dentro de um distributed trace.

Requisitos

Agente Python versão 4.2.0.100 ou superior.

Cuidado

Esta API foi descontinuada. Por favor use newrelic.agent.accept_distributed_trace_headers em vez de.

distributed tracing deve estar ativado.

Descrição

Para obter contexto sobre como usar essa chamada, primeiro leia a chamada de API do parceiro create_distributed_trace_payload e Ativar distributed tracing com API do agente.

Esta chamada é usada para vincular transação analisando a carga distributed tracing gerada por create_distributed_trace_payload.

Parâmetro

Parâmetro

Descrição

payload

dicionário ou string

Obrigatório. A carga útil a ser aceita.

transport_type

corda

Opcional, o padrão é HTTP. O tipo de transporte que enviou esta carga útil. Deve ser um dos seguintes: HTTP, HTTPS, Kafka, JMS, IronMQ, AMQP, Queue ou Other.

Valores de retorno

Quando bem-sucedido, retorna True.

Quando malsucedido, retorna False. A aceitação de uma carga útil pode falhar por vários motivos:

  • A transação atual não está habilitada.
  • Accept foi chamado fora do escopo de uma transação.
  • A carga útil está vazia.
  • distributed tracing não está ativado.
  • accept_distributed_trace_payload foi chamado depois de create_distributed_trace_payload e não antes.
  • accept_distributed_trace_payload foi chamado várias vezes em uma única transação.
  • A carga útil não pôde ser analisada.
  • A carga foi enviada de uma conta não confiável.

Exemplos

Aceitar uma carga distributed trace dentro de uma tarefa em segundo plano

Um exemplo de uso accept_distributed_trace_payload em uma tarefa em 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 de uma fila

Um exemplo de uso accept_distributed_trace_payload e criação de uma tarefa em segundo plano para cada mensagem:

import newrelic.agent
newrelic.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)
Copyright © 2024 New Relic Inc.

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