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 oMessageTraceWrapper
a um determinado objeto por meio de monkey patching. Isso usa os mesmos parâmetros do decorador mais um parâmetromodule
eobject_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 |
---|---|
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. |
string ou função | Obrigatório. |
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 é |
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. |
dicionário | Opcional. Detalhes adicionais relativos à operação. Normalmente são |
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 |
---|---|
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 |
---|---|
objeto | Obrigatório. O módulo que contém o objeto a ser empacotado. |
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')