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 elMessageTraceWrappera un objeto determinado mediante parches de mono. Esto toma los mismos parámetros que el decorador más un parámetromoduleyobject_pathadicional.
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():    passUn ejemplo del uso del decorador message_trace con una rutina nativa:
@message_trace('library', 'Consume', 'Exchange', 'x')async def foo():    passEjemplo 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'):        passEjemplo 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')