• 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

message_trace (API do agente Python)

Sintaxe

newrelic.agent.message_trace(library, operation, destination_type, destination_name, params={})

Funções de mensagens de relatório como segmentos de rastreamento da transação.

Requisitos

Versão do agente 2.88.0.72 ou superior.

Descrição

message_transaction (e suas chamadas associadas) reportam funções de mensagem como transação. message_trace é usado para adicionar mais detalhes ao seu rastreamento de transação na forma de segmentos adicionais. message_trace retorna uma parcial de MessageTraceWrapper que pode ser usada como decorador para uma função de mensagem.

O decorador message_trace pode ser usado em geradores e corrotinas com agente versão 2.102.0.85 ou superior. O tempo desses objetos começa quando o consumo começa e termina quando o objeto se esgota ou sai do escopo. Esta é uma mudança em relação às versões anteriores, onde a métrica representava o tempo necessário para criar o gerador ou o próprio objeto de corrotina.

Se você não puder usar o decorador em seu aplicativo, poderá usar um destes outros formatos de chamada:

  • The context manager

    : O formulário do gerenciador de contexto é MessageTrace. Leva o mesmo parâmetro do decorador.

  • The wrapper

    : o formulário do wrapper é MessageTraceWrapper. Pode ser usado para retornar uma função encapsulada sem o uso de um decorador.

  • The path-based wrapper

    : o formulário wrapper baseado em caminho é wrap_message_trace. Isso aplica o MessageTraceWrapper a um determinado objeto por meio de monkey patching. Isso usa os mesmos parâmetros do decorador mais um parâmetro module e object_path adicional.

Para obter uma explicação sobre os usos desses diferentes formatos de chamada, consulte Diferentes formatos de chamada. Consulte Exemplos para exemplos de chamadas.

Parâmetro

Parâmetros para message_trace

newrelic.agent.message_trace(library, operation, destination_type, destination_name, params={})

O decorador message_trace usa estes parâmetros:

Parâmetro

Descrição

library

string ou função

Obrigatório. O nome (ou tipo) do tipo de agente de mensagens em uso. Passe uma string que o define ou uma função que o retorna.

operation

string ou função

Obrigatório. Produce ou Consume conforme indicado pela operação que ocorre na função de rastreio. Passe uma string que o define ou uma função que o retorna.

destination_type

string ou função

Obrigatório. O tipo de destino visado pela operação. Passe uma string que o define ou uma função que o retorna. Normalmente é Exchange ou Queue.

destination_name

string ou função

Obrigatório. O nome do destino alvo da operação. Passe uma string que o define ou uma função que o retorna.

params

dicionário

Opcional. Detalhes adicionais relativos à operação. Normalmente são routing_key, correlation_id, reply_to, queue_name ou headers.

Parâmetro para MessageTrace

newrelic.agent.MessageTrace(library, operation, destination_type, destination_name, params={})

O gerenciador de contexto MessageTrace usa todos os parâmetros obtidos por message_trace.

Parâmetro para MessageTraceWrapper

newrelic.agent.MessageTraceWrapper(wrapped, library, operation, destination_type, destination_name, params={})

O MessageTraceWrapper usa todos os mesmos parâmetros do decorador , além de um parâmetro wrapped inicial:

Parâmetro

Descrição

wrapped

função

Obrigatório. A função de mensagens a ser atribuída ao tempo do corretor de mensagens.

Parâmetro para wrap_message_trace

newrelic.agent.wrap_message_trace(module, object_path, library, operation, destination_type, destination_name, params={})

O wrap_message_trace usa todos os parâmetros que o decorador usa, além de um parâmetro module e um parâmetro object_path :

Parâmetro

Descrição

module

objeto

Obrigatório. O módulo que contém o objeto a ser empacotado.

object_path

corda

Obrigatório. O caminho para o objeto a ser encapsulado.

Valores de retorno

message_trace retorna uma parcial MessageTraceWrapper() .

Exemplos

exemplo de message_trace

Um exemplo de uso de message_trace:

@message_trace('library', 'Consume', 'Exchange', 'x')
def foo():
pass

Um exemplo de uso do decorador message_trace com uma corrotina nativa:

@message_trace('library', 'Consume', 'Exchange', 'x')
async def foo():
pass

Exemplo de MessageTrace

Um exemplo de uso do gerenciador de contexto MessageTrace :

def basic_get(queue, no_ack=False):
with MessageTrace('library', 'Consume', 'Exchange', 'x'):
pass

Exemplo de MessageTraceWrapper

Um exemplo de uso do MessageTraceWrapper:

wrapped_basic_get = newrelic.agent.MessageTraceWrapper(basic_get, 'library', 'Consume', 'Queue', 'x')
method_frame, header_frame, body = wrapped_basic_get('queue')

exemplo wrap_message_trace

Um exemplo de uso do wrapper baseado em caminho wrap_message_trace :

wrap_message_trace('module', 'Foo.bar', 'library', 'Produce', 'Exchange', 'x')
Copyright © 2024 New Relic Inc.

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