Sintaxe
newrelic.agent.accept_distributed_trace_headers(headers, transport_type='HTTP')
Este método é usado para aceitar os cabeçalhos usados para conectar transações dentro de um distributed trace.
Requisitos
Agente Python versão 5.6.0.135 ou superior.
distributed tracing deve estar ativado.
Descrição
Para obter contexto sobre como usar essa chamada, primeiro leia a chamada de API do parceiro insert_distributed_trace_headers
e Ativar distributed tracing com API do agente.
Esta chamada é usada para vincular transações analisando os cabeçalhos distributed tracing gerados por insert_distributed_trace_headers
.
Parâmetro
Parâmetro | Descrição |
---|---|
dicionário ou lista | Obrigatório. Os cabeçalhos a serem aceitos. Pode ser fornecido como um iterável de ( |
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_*
foi chamado depois que uma carga útil foi criada e não antes.accept_distributed_trace_*
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): newrelic.agent.accept_distributed_trace_headers(request.headers)
_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'): newrelic.agent.accept_distributed_trace_headers(message.headers, transport_type='Queue') _process_message(message)