Syntaxe
newrelic.agent.external_trace(library, url, method=None)
Signalez les appels aux services externes sous forme de segments de trace de transaction.
Description
external_trace
est utilisé pour ajouter plus de détails à votre trace de transaction sous forme de segments supplémentaires. Tous les appels signalés avec external_trace
apparaîtront dans l’onglet externes dans APM. external_trace
renvoie une partie de ExternalTraceWrapper
qui peut être utilisée comme décorateur pour une fonction qui appelle un service externe.
Le décorateur external_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
ExternalTrace
. - The wrapper: La forme wrapper est
ExternalTraceWrapper
. 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_external_trace
. Cela applique leExternalTraceWrapper
à 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 external_trace
newrelic.agent.external_trace(library, url, method=None)
Le décorateur external_trace
utilise ces paramètres :
paramètres | Description |
---|---|
chaîne ou fonction | Requis. Le nom (ou le type) de la bibliothèque externe utilisée. Transmettez soit une chaîne qui le définit, soit une fonction qui le renvoie. |
chaîne ou fonction | Requis. L'URL qui a été demandée par l'appel de la bibliothèque. Transmettez soit une chaîne qui le définit, soit une fonction qui le renvoie. |
chaîne ou fonction | Facultatif. La méthode définissant le type d’appel effectué. Il s’agit généralement |
paramètre pour ExternalTrace
newrelic.agent.ExternalTrace(library, url, method=None)
Le gestionnaire de contexte ExternalTrace
prend tous les paramètres pris par external_trace
.
paramètre pour ExternalTraceWrapper
newrelic.agent.ExternalTraceWrapper(wrapped, library, url, method=None)
Le ExternalTraceWrapper
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 d'appel externe à attribuer à l'heure externe. |
Paramètres pour wrap_external_trace
newrelic.agent.wrap_external_trace(module, object_path, library, url, method=None)
Le wrap_external_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
external_trace
renvoie un ExternalTraceWrapper()
partiel.
Exemples
Exemple de trace externe
Un exemple d'utilisation de external_trace
:
@external_trace('library', 'http://example.com', 'get')def foo(): pass
Un exemple d'utilisation de external_trace
sur une coroutine native :
@external_trace('library', 'http://example.com', 'get')async def foo(): pass
Exemple de trace externe
Un exemple d'utilisation du gestionnaire de contexte ExternalTrace
:
def fetch_example_dot_com(): with ExternalTrace('library', 'http://example.com', 'get'): pass
Exemple d'ExternalTraceWrapper
Un exemple d'utilisation du ExternalTraceWrapper
:
wrapped_fetch_example_dot_com = newrelic.agent.ExternalTraceWrapper(fetch_example_dot_com, 'library', 'http://example.com', 'get')
response = wrapped_fetch_example_dot_com()
Exemple de wrap_external_trace
Un exemple d'utilisation du wrapper basé sur le chemin wrap_external_trace
:
wrap_external_trace('module', 'Foo.bar', 'library', 'http://example.com', 'get')