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è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 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(): passUn exemple d'utilisation de external_trace sur une coroutine native :
@external_trace('library', 'http://example.com', 'get')async def foo(): passExemple de trace externe
Un exemple d'utilisation du gestionnaire de contexte ExternalTrace :
def fetch_example_dot_com(): with ExternalTrace('library', 'http://example.com', 'get'): passExemple 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')