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

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

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

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.