Syntaxe
newrelic.agent.message_trace(library, operation, destination_type, destination_name, params={})
Les fonctions de messagerie de rapport fonctionnent comme des segments de trace de transaction.
Exigences
Version de l'agent 2.88.0.72 ou supérieure.
Description
message_transaction
(et ses appels associés) signalent les fonctions de message comme des transactions. message_trace
est utilisé pour ajouter plus de détails à votre trace de transaction sous la forme de segments supplémentaires. message_trace
renvoie une partie de MessageTraceWrapper
qui peut être utilisée comme décorateur pour une fonction de message.
Le décorateur message_trace
peut être utilisé sur les générateurs et les coroutines avec la version d'agent 2.102.0.85 ou supérieure. La synchronisation de ces objets commence lorsque la consommation commence et se termine lorsque l'objet est épuisé ou sort du champ d'application. Il s’agit d’un changement par rapport aux versions précédentes où la métrique représentait le temps nécessaire à la création du générateur ou de l’objet coroutine lui-même.
Si vous ne pouvez pas utiliser le décorateur dans votre application, vous pouvez utiliser l'un de ces autres formats d'appel :
- The context manager: Le formulaire du gestionnaire de contexte est
MessageTrace
. Il prend les mêmes paramètres que le décorateur. - The wrapper: La forme wrapper est
MessageTraceWrapper
. 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_trace
. Cela applique leMessageTraceWrapper
à 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 des utilisations de ces différents formats d’appel, voir Différents formats d’appel. Voir Exemples pour des exemples d'appel.
Paramètres
paramètre pour message_trace
newrelic.agent.message_trace(library, operation, destination_type, destination_name, params={})
Le décorateur message_trace
utilise ces paramètres :
paramètres | Description |
---|---|
chaîne ou fonction | Requis. Le nom (ou le type) du type de courtier de messages utilisé. Transmettez soit une chaîne qui le définit, soit une fonction qui le renvoie. |
chaîne ou fonction | Requis. Soit |
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. |
dictionnaire | Facultatif. Détails supplémentaires relatifs à l'opération. Il s’agit généralement |
paramètre pour MessageTrace
newrelic.agent.MessageTrace(library, operation, destination_type, destination_name, params={})
Le gestionnaire de contexte MessageTrace
prend tous les paramètres pris par message_trace
.
paramètre pour MessageTraceWrapper
newrelic.agent.MessageTraceWrapper(wrapped, library, operation, destination_type, destination_name, params={})
Le MessageTraceWrapper
prend tous les mêmes paramètres que le décorateur en plus d'un paramètre initial wrapped
:
paramètres | Description |
---|---|
fonction | Requis. La fonction de messagerie à attribuer au temps du courtier de messages. |
Paramètres pour wrap_message_trace
newrelic.agent.wrap_message_trace(module, object_path, library, operation, destination_type, destination_name, params={})
Le wrap_message_trace
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
message_trace
renvoie un MessageTraceWrapper()
partiel.
Exemples
Exemple de message_trace
Un exemple d'utilisation de message_trace
:
@message_trace('library', 'Consume', 'Exchange', 'x')def foo(): pass
Un exemple d'utilisation du décorateur message_trace
avec une coroutine native :
@message_trace('library', 'Consume', 'Exchange', 'x')async def foo(): pass
Exemple de MessageTrace
Un exemple d'utilisation du gestionnaire de contexte MessageTrace
:
def basic_get(queue, no_ack=False): with MessageTrace('library', 'Consume', 'Exchange', 'x'): pass
Exemple de MessageTraceWrapper
Un exemple d'utilisation du MessageTraceWrapper
:
wrapped_basic_get = newrelic.agent.MessageTraceWrapper(basic_get, 'library', 'Consume', 'Queue', 'x')
method_frame, header_frame, body = wrapped_basic_get('queue')
Exemple de wrap_message_trace
Un exemple d'utilisation du wrapper basé sur le chemin wrap_message_trace
:
wrap_message_trace('module', 'Foo.bar', 'library', 'Produce', 'Exchange', 'x')