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')