El agente Python admite la biblioteca cliente Pika RabbitMQ, la biblioteca cliente Kafka Python y la biblioteca cliente Confluent Kafka , lo que le brinda visibilidad del rendimiento de su procesamiento de mensajes, tanto para mensajes entrantes como salientes.
La UI de New Relic mostrará las transacciones iniciadas mediante la recepción de mensajes (suscripción/consumo de mensajes) como Message tareas en segundo plano. La creación del mensaje también aparece en la traza de la transacción.
Requisitos
Message Queue | Python agent version required |
---|---|
Pika RabbitMQ | 2.88.0.72 |
Kafka Python | 8.2.0.181 |
Confluent Kafka | 8.2.0.181 |
Para obtener más información, consulte las notas de la versión.
Advertencia
Las tareas de mensajes de RabbitMQ no se inician para el consumidor mediante TornadoConnection.
Advertencia
Cuando se consumen mensajes a través de Kafka, se informan las transacciones para cada mensaje a medida que lo consume el consumidor. La transacción no se informará para operaciones de consumo masivo en las que se consumen varios mensajes a la vez.
Mejoras de rendimiento con tareas en segundo plano.
Una forma de aumentar la capacidad de respuesta de la aplicación web es delegar el trabajo a procesos en segundo plano. La cola de mensajes se utiliza comúnmente para esta comunicación entre procesos.
En el contexto de los sistemas de colas de mensajes, la aplicación suele interactuar con los intermediarios de mensajes para enviar y recibir mensajes. En el caso de RabbitMQ Pika, esta biblioteca cliente permite que la aplicación Python interactúe con corredores de mensajes que implementan el Protocolo avanzado de cola de mensajes (AMQP) 0.9 o superior.
El agente Python muestra los mensajes enviados y recibidos utilizando la biblioteca del cliente. Con esta visibilidad, puede ver detalles que incluyen:
- Número de mensajes producidos por tu aplicación
- Tiempo que su aplicación dedica a publicar/producir mensajes
- Tiempo que su aplicación dedica a procesar/consumir mensajes
APM agrupa e informa convenientemente operaciones que interactúan con las colas. Al analizar esta información, puede identificar más fácilmente el cuello de botella y las áreas de mejora del rendimiento en su arquitectura de transmisión de mensajes.
Soporte métrico
Message Queue | Pika RabbitMQ | Kafka Python | Confluent Kafka |
---|---|---|---|
Publish a Message | Sí. Conocido como | Sí. Conocido como | Sí. Conocido como |
Receive a Message | Sí. Conocido como | Sí. Conocido como | Sí. Conocido como |
Serialization | No | Sí | Sí |
Deserialization | No | No | Sí |
Heartbeat | No | Sí | No |
Ver en UIde New Relic
Las operaciones en cola aparecen en la páginaTransactions de APM para la aplicación seleccionada.
Las métricas Put
(publicar un mensaje) y Take
(recibir un mensaje) aparecen en el Breakdown table y están categorizadas como MessageBroker
métrica para RabbitMQ. Aquí hay un ejemplo:
one.newrelic.com > All capabilities > APM & services > (select an app) > Monitor > Transactions > (select a transaction): El Breakdown table de la transacción clasifica las operaciones de cola como MessageBroker
métrica para RabbitMQ y las etiqueta como Put
(publicar un mensaje) o Take
(recibir un mensaje).
Traza de la transacción también proporciona detalles adicionales para los mensajes.
Sugerencia
Puede seleccionar la traza de la transacción desde las páginas Summary o Transactions de la aplicación en APM.
La páginade resumen de la traza de la transacción puede mostrar las operaciones Put
y Take
para RabbitMQ en la sección Componentes más lentos . Por ejemplo:
one.newrelic.com > All capabilities > APM & services > (select an app) > (select a transaction trace): En este ejemplo, la traza de la transacción Summary seleccionada muestra las operaciones de RabbitMQ en el gráfico de barras de colores. La sección Slowest components también enumera los resultados de RabbitMQ Put
y Take
.