Sintaxe
newrelic.agent.message_transaction(library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)
Reportar mensagem funciona como transação.
Requisitos
Versão do agente 2.88.0.72 ou superior.
Descrição
Este decorador retorna uma parcial de MessageTransactionWrapper
que pode ser usada como decorador para uma função de mensagens. Quando usado, o decorador retornado registra uma transação de mensagem e seu atributo relacionado à mensagem.
Se o decorador não funcionar em seu aplicativo, você poderá usar um dos seguintes:
The context manager
: O formulário do gerenciador de contexto é
MessageTransaction
. Leva o mesmo parâmetro do decorador.The wrapper
: o formulário do wrapper é
MessageTransactionWrapper
. 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_transaction
. Isso aplica oMessageTransactionWrapper
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 uma explicação de quando essas diferentes chamadas devem ser utilizadas, consulte Diferentes formatos de chamada. Consulte Exemplos para exemplos de chamadas.
Parâmetro
Parâmetros para message_transaction e MessageTransaction
newrelic.agent.message_transaction(library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)
newrelic.agent.MessageTransaction(library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)
O decorador e o gerenciador de contexto usam estes parâmetros:
Parâmetro | Descrição |
---|---|
string ou função | Obrigatório. O nome (ou tipo) do agente de mensagens em uso. Passe uma string que o define ou uma função que o retorna. |
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. |
Aplicativo | Obrigatório. Uma instância do aplicativo, conforme retornado por |
string ou função | Opcional. A chave de roteamento da mensagem. |
string ou função | Opcional. O tipo de troca da mensagem. |
dicionário ou função | Opcional. Os cabeçalhos da mensagem. |
string ou função | Opcional. A propriedade do nome da fila da mensagem. |
string ou função | Opcional. A propriedade |
string ou função | Opcional. A propriedade |
Parâmetro para MessageTransactionWrapper
newrelic.agent.MessageTransactionWrapper(wrapped, library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)
O MessageTransactionWrapper
usa todos os mesmos parâmetros do decorador , além deste parâmetro wrapped
:
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_transaction
newrelic.agent.wrap_message_transaction(module, object_path, library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)
Isso leva todos os parâmetros que o decorador faz, 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
O decorador message_transaction
retorna uma parcial MessageTransactionWrapper
.
Exemplos
exemplo de message_transaction
Um exemplo do decorador:
mt = message_transaction('library', 'Exchange', 'x', routing_key='foo.bar')
@mtdef foo(): pass
Exemplo de MessageTransaction
Um exemplo usando o gerenciador de contexto:
def callback(method, properties, body): with MessageTransaction('library', 'Exchange', 'x', application=app): pass
Exemplo de MessageTransactionWrapper
Um exemplo usando o wrapper:
basic_consume_wrapper = newrelic.agent.MessageTransactionWrapper(basic_consume_register_callback, 'library', 'Queue', 'x')
method_frame, header_frame, body = basic_consume_wrapper('queue')
exemplo de wrap_message_transaction
Um exemplo usando o wrapper baseado em caminho:
wrap_message_transaction('module', 'Foo.bar', 'library', 'Exchange', 'x')