Sintaxis
newrelic.agent.external_trace(library, url, method=None)
Reportar llamadas a servicios externos como segmentos de traza de la transacción.
Descripción
external_trace
se utiliza para agregar más detalles a su traza de la transacción en forma de segmentos adicionales. Cualquier llamada reportada con external_trace
aparecerá en la pestaña externos en APM. external_trace
devuelve una parte de ExternalTraceWrapper
que se puede usar como decorador para una función que llama a un servicio externo.
El decorador external_trace
se puede utilizar en generadores y corrutinas con la versión del agente 2.102.0.85 o superior. El tiempo de estos objetos comienza cuando comienza el consumo y finaliza cuando el objeto se agota o sale del alcance. Este es un cambio con respecto a versiones anteriores donde la métrica representaba el tiempo necesario para crear el generador o el objeto de rutina.
Si no puede utilizar el decorador en su aplicación, puede utilizar uno de estos otros formatos de llamada:
The context manager
: El formulario del administrador de contexto es
ExternalTrace
.The wrapper
: El formulario contenedor es
ExternalTraceWrapper
. Se puede utilizar para devolver una función envuelta sin el uso de un decorador.The path-based wrapper
: El formulario contenedor basado en ruta es
wrap_external_trace
. Esto aplica elExternalTraceWrapper
a un objeto determinado mediante parches de mono. Esto toma los mismos parámetros que el decorador más un parámetromodule
yobject_path
adicional.
Para obtener una explicación de los usos de estos diferentes formatos de llamadas, consulte Diferentes formatos de llamadas. Consulte Ejemplos para ver ejemplos de llamadas.
Parámetros
Parámetros para external_trace
newrelic.agent.external_trace(library, url, method=None)
El decorador external_trace
utiliza estos parámetros:
Parámetro | Descripción |
---|---|
cadena o función | Requerido. El nombre (o tipo) de la biblioteca externa en uso. Pase una cadena que lo defina o una función que lo devuelva. |
cadena o función | Requerido. La URL que ha sido solicitada por la llamada a la biblioteca. Pase una cadena que lo defina o una función que lo devuelva. |
cadena o función | Opcional. El método que define el tipo de llamada que se realiza. Suelen ser |
Parámetro para seguimiento externo
newrelic.agent.ExternalTrace(library, url, method=None)
El administrador de contexto ExternalTrace
toma todos los parámetros tomados por external_trace
.
Parámetro para ExternalTraceWrapper
newrelic.agent.ExternalTraceWrapper(wrapped, library, url, method=None)
El ExternalTraceWrapper
toma todos los mismos parámetros que el decorador además de un parámetro wrapped
inicial:
Parámetro | Descripción |
---|---|
función | Requerido. La función de llamada externa al atributo del tiempo externo. |
parámetro para wrap_external_trace
newrelic.agent.wrap_external_trace(module, object_path, library, url, method=None)
El wrap_external_trace
toma todos los parámetros que hace el decorador además de un parámetro module
y un parámetro object_path
:
Parámetro | Descripción |
---|---|
objeto | Requerido. El módulo que contiene el objeto que se va a envolver. |
cadena | Requerido. La ruta al objeto que se va a envolver. |
Valores de retorno
external_trace
devuelve un ExternalTraceWrapper()
parcial.
Ejemplos
ejemplo de seguimiento_externo
Un ejemplo de uso de external_trace
:
@external_trace('library', 'http://example.com', 'get')def foo(): pass
Un ejemplo del uso external_trace
en una corrutina nativa:
@external_trace('library', 'http://example.com', 'get')async def foo(): pass
Ejemplo de seguimiento externo
Un ejemplo de uso del administrador de contexto ExternalTrace
:
def fetch_example_dot_com(): with ExternalTrace('library', 'http://example.com', 'get'): pass
Ejemplo de ExternalTraceWrapper
Un ejemplo de uso de ExternalTraceWrapper
:
wrapped_fetch_example_dot_com = newrelic.agent.ExternalTraceWrapper(fetch_example_dot_com, 'library', 'http://example.com', 'get')
response = wrapped_fetch_example_dot_com()
ejemplo de wrap_external_trace
Un ejemplo del uso del contenedor basado en ruta wrap_external_trace
:
wrap_external_trace('module', 'Foo.bar', 'library', 'http://example.com', 'get')