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 |
---|---|
dicionário ou string | Obrigatório. A carga útil a ser aceita. |
corda | Opcional, o padrão é |
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 decreate_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.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)