• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

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.