L'agent Python prend en charge la bibliothèque clientePika RabbitMQ , la bibliothèque clienteKafka Python et la bibliothèque clienteConfluent Kafka , vous offrant ainsi une visibilité sur les performances de traitement de vos messages, pour les messages entrants et sortants.
L'UI New Relic affichera les transactions initiées via la réception de messages (messages d'abonnement/consommation) comme des tâches d'arrière-plan Message. La création du message apparaît également dans la trace de la transaction.
Exigences
Message Queue | Python agent version required |
---|---|
Pika RabbitMQ | 2.88.0.72 |
Kafka Python | 8.2.0.181 |
Confluent Kafka | 8.2.0.181 |
Pour plus d'informations, consultez les notes de sortie.
Prudence
Les tâches de message RabbitMQ ne sont pas démarrées pour le consommateur utilisant TornadoConnection.
Prudence
Lors de la consommation de messages via Kafka, les transactions sont signalées pour chaque message au fur et à mesure qu'il est consommé par le consommateur. Les transactions ne seront pas signalées pour les opérations de consommation en masse où plusieurs messages sont consommés à la fois.
Améliorations des performances avec les tâches en arrière-plan
Une façon d’augmenter la réactivité d’une application Web est de déléguer le travail aux processus d’arrière-plan. Les fichiers d'attente des messages sont couramment utilisés pour cette communication interprocessus.
Dans le contexte d'un système de mise en file d'attente de messages, les applications interagissent généralement avec des courtiers de messages pour envoyer et recevoir des messages. Dans le cas de RabbitMQ Pika, cette bibliothèque cliente permet aux applications Python de s'interfacer avec les courtiers de messages qui implémentent le protocole Advanced Message Queueing Protocol (AMQP) 0.9 ou supérieur.
L'agent Python affiche les messages envoyés et reçus à l'aide de la bibliothèque client. Grâce à cette visibilité, vous pouvez voir des détails tels que :
- Nombre de messages produits par votre application
- Temps que votre application passe à publier/produire des messages
- Temps que votre application passe à traiter/consommer des messages
APM regroupe et signale de manière pratique les opérations qui interagissent avec les files d'attente. En analysant ces informations, vous pourrez plus facilement identifier les goulots d'étranglement et les zones d'amélioration des performances dans votre architecture de passage de messages.
Métriques prises en charge
Message Queue | Pika RabbitMQ | Kafka Python | Confluent Kafka |
---|---|---|---|
Publish a Message | Oui, appelé | Oui, appelé | Oui, appelé |
Receive a Message | Oui, appelé | Oui, appelé | Oui, appelé |
Serialization | Non | Oui | Oui |
Deserialization | Non | Non | Oui |
Heartbeat | Non | Oui | Non |
Afficher dans l'UI de New Relic
Les opérations de file d'attente apparaissent sur la pageTransactions d'APM pour l'application sélectionnée.
Les métriques Put
(publier un message) et Take
(recevoir un message) apparaissent dans Breakdown table et sont classées comme métriques MessageBroker
pour RabbitMQ. Voici un exemple :

one.newrelic.com > All capabilities > APM & services > (select an app) > Monitor > Transactions > (select a transaction): Le Breakdown table de la transaction catégorise les opérations de file d'attente comme des métriques MessageBroker
pour RabbitMQ et les étiquette comme Put
(publier un message) ou Take
(recevoir un message).
Le suivi de transaction fournit également des détails supplémentaires pour les messages.
Conseil
Vous pouvez sélectionner le suivi de la transaction à partir des pages Summary ou Transactions de l'application dans APM.
La page de Transaction trace summary peut afficher les opérations Put
et Take
pour RabbitMQ dans la section Slowest components . Par exemple:

one.newrelic.com > All capabilities > APM & services > (select an app) > (select a transaction trace): Dans cet exemple, la trace de transaction sélectionnée Summary affiche les opérations RabbitMQ dans le graphique à barres coloré. La section Slowest components répertorie également les résultats Put
et Take
de RabbitMQ.