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ètremoduleetobject_pathsupplé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(): passUn exemple d'utilisation du décorateur message_trace avec une coroutine native :
@message_trace('library', 'Consume', 'Exchange', 'x')async def foo(): passExemple de MessageTrace
Un exemple d'utilisation du gestionnaire de contexte MessageTrace :
def basic_get(queue, no_ack=False): with MessageTrace('library', 'Consume', 'Exchange', 'x'): passExemple 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')