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 na versão 5.6.0.135 e completamente removida na versão 11.0.0. Em vez disso, use accept_distributed_trace_headers.
distributed tracing deve estar ativado.
Descrição
Para obter contexto sobre como usar esta chamada, leia primeiro sua chamada de API parceira create_distributed_trace_payload e Habilitar distributed tracing com API do agente.
Esta chamada é usada para vincular transações 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_payloadfoi chamado depois decreate_distributed_trace_payloade não antes.accept_distributed_trace_payloadfoi 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)