Sintaxis
newrelic.agent.message_trace(library, operation, destination_type, destination_name, params={})
La mensajería de informes funciona como segmentos de traza de la transacción.
Requisitos
Versión del agente 2.88.0.72 o superior.
Descripción
El mensaje de informe message_transaction
(y sus llamadas asociadas) funciona como transacción. message_trace
se utiliza para agregar más detalles a su traza de la transacción en forma de segmentos adicionales. message_trace
devuelve una parte de MessageTraceWrapper
que puede usarse como decorador para una función de mensaje.
El decorador message_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
MessageTrace
. Toma el mismo parámetro que el decorador.The wrapper
: El formulario contenedor es
MessageTraceWrapper
. 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_message_trace
. Esto aplica elMessageTraceWrapper
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 message_trace
newrelic.agent.message_trace(library, operation, destination_type, destination_name, params={})
El decorador message_trace
utiliza estos parámetros:
Parámetro | Descripción |
---|---|
cadena o función | Requerido. El nombre (o tipo) del tipo de intermediario de mensajes en uso. Pase una cadena que lo defina o una función que lo devuelva. |
cadena o función | Requerido. Ya sea |
cadena o función | Requerido. El tipo de destino objetivo de la operación. Pase una cadena que lo defina o una función que lo devuelva. Normalmente es |
cadena o función | Requerido. El nombre del destino objetivo de la operación. Pase una cadena que lo defina o una función que lo devuelva. |
diccionario | Opcional. Detalles adicionales relacionados con la operación. Suelen ser |
Parámetro para MessageTrace
newrelic.agent.MessageTrace(library, operation, destination_type, destination_name, params={})
El administrador de contexto MessageTrace
toma todos los parámetros tomados por message_trace
.
Parámetro para MessageTraceWrapper
newrelic.agent.MessageTraceWrapper(wrapped, library, operation, destination_type, destination_name, params={})
El MessageTraceWrapper
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 mensajería se atribuye al tiempo del intermediario de mensajes. |
Parámetro para wrap_message_trace
newrelic.agent.wrap_message_trace(module, object_path, library, operation, destination_type, destination_name, params={})
El wrap_message_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
message_trace
devuelve un MessageTraceWrapper()
parcial.
Ejemplos
ejemplo de seguimiento_mensaje
Un ejemplo de uso de message_trace
:
@message_trace('library', 'Consume', 'Exchange', 'x')def foo(): pass
Un ejemplo del uso del decorador message_trace
con una rutina nativa:
@message_trace('library', 'Consume', 'Exchange', 'x')async def foo(): pass
Ejemplo de seguimiento de mensajes
Un ejemplo de uso del administrador de contexto MessageTrace
:
def basic_get(queue, no_ack=False): with MessageTrace('library', 'Consume', 'Exchange', 'x'): pass
Ejemplo de MessageTraceWrapper
Un ejemplo de uso de MessageTraceWrapper
:
wrapped_basic_get = newrelic.agent.MessageTraceWrapper(basic_get, 'library', 'Consume', 'Queue', 'x')
method_frame, header_frame, body = wrapped_basic_get('queue')
ejemplo de wrap_message_trace
Un ejemplo del uso del contenedor basado en ruta wrap_message_trace
:
wrap_message_trace('module', 'Foo.bar', 'library', 'Produce', 'Exchange', 'x')