Syntaxe
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)
Les messages de rapport fonctionnent comme des transactions.
Exigences
Version de l'agent 2.88.0.72 ou supérieure.
Description
Ce décorateur renvoie une partie de MessageTransactionWrapper
qui peut être utilisée comme décorateur pour une fonction de messagerie. Lorsqu'il est utilisé, le décorateur renvoyé enregistre une transaction de message et son attribut lié au message.
Si le décorateur ne fonctionne pas dans votre application, vous pouvez utiliser l'une des solutions suivantes :
- The context manager: Le formulaire du gestionnaire de contexte est
MessageTransaction
. Il prend les mêmes paramètres que le décorateur. - The wrapper: La forme wrapper est
MessageTransactionWrapper
. Il peut être utilisé pour renvoyer une fonction encapsulée sans l'utilisation d'un décorateur. - The path-based wrapper: La forme wrapper basée sur le chemin est
wrap_message_transaction
. Cela applique leMessageTransactionWrapper
à un objet donné via le patch de singe. Cela prend le même paramètre que le décorateur plus un paramètremodule
etobject_path
supplémentaire.
Pour une explication sur le moment où ces différents appels doivent être utilisés, voir Différents formats d'appel. Voir Exemples pour des exemples d'appel.
Paramètres
paramètre pour message_transaction et 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)
Le décorateur et le gestionnaire de contexte utilisent ces paramètres :
paramètres | Description |
---|---|
chaîne ou fonction | Requis. Le nom (ou le type) du courtier de messages utilisé. Transmettez soit une chaîne qui le définit, soit une fonction qui le renvoie. |
chaîne ou fonction | Requis. Le type de destination ciblée par l'opération. Transmettez soit une chaîne qui le définit, soit une fonction qui le renvoie. Il s’agit généralement |
chaîne ou fonction | Requis. Le nom de la destination ciblée par l'opération. Transmettez soit une chaîne qui le définit, soit une fonction qui le renvoie. |
Application | Requis. Une instance d'application, telle que renvoyée par |
chaîne ou fonction | Facultatif. La clé de routage du message. |
chaîne ou fonction | Facultatif. Le type d'échange du message. |
dictionnaire ou fonction | Facultatif. Les en-têtes du message. |
chaîne ou fonction | Facultatif. La propriété du nom de la file d'attente du message. |
chaîne ou fonction | Facultatif. La propriété |
chaîne ou fonction | Facultatif. La propriété |
paramètre pour 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)
Le MessageTransactionWrapper
prend tous les mêmes paramètres que le décorateur en plus de ce paramètre wrapped
:
paramètres | Description |
---|---|
fonction | Requis. La fonction de messagerie à attribuer au temps du courtier de messages. |
Paramètres pour 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)
Cela prend tous les paramètres que le décorateur fait en plus d'un paramètre module
et d'un paramètre object_path
:
paramètres | Description |
---|---|
objet | Requis. Le module contenant l'objet à envelopper. |
chaîne | Requis. Le chemin vers l'objet à envelopper. |
Valeurs de retour
Le décorateur message_transaction
renvoie un partiel MessageTransactionWrapper
.
Exemples
Exemple de message_transaction
Un exemple du décorateur :
mt = message_transaction('library', 'Exchange', 'x', routing_key='foo.bar')
@mtdef foo(): pass
Exemple de MessageTransaction
Un exemple utilisant le gestionnaire de contexte :
def callback(method, properties, body): with MessageTransaction('library', 'Exchange', 'x', application=app): pass
Exemple de MessageTransactionWrapper
Un exemple utilisant le wrapper :
basic_consume_wrapper = newrelic.agent.MessageTransactionWrapper(basic_consume_register_callback, 'library', 'Queue', 'x')
method_frame, header_frame, body = basic_consume_wrapper('queue')
Exemple de transaction wrap_message_transaction
Un exemple utilisant le wrapper basé sur le chemin :
wrap_message_transaction('module', 'Foo.bar', 'library', 'Exchange', 'x')