Python エージェントは、 Pika RabbitMQクライアント ライブラリ、 Kafka Pythonクライアント ライブラリ、およびConfluent Kafkaクライアント ライブラリをサポートしており、受信メッセージと送信メッセージの両方について、メッセージ処理のパフォーマンスを可視化できます。
New Relic UI には、メッセージ受信 (メッセージのサブスクライブ/消費) によって開始されたトランザクションがMessageバックグラウンド タスクとして表示されます。 メッセージの作成は、瞬間トレースにも表示されます。
要件
Message Queue | Python agent version required |
---|---|
ピカラビットMQ | 2.88.0.72 |
カフカパイソン | 8.2.0.181 |
コンフルエントなカフカ | 8.2.0.181 |
詳細については、リリース ノートを参照してください。
注意
TornadoConnectionを使用しているコンシューマーに対して、RabbitMQ メッセージ タスクが開始されません。
注意
Kafka 経由でメッセージを消費する場合、メッセージがコンシューマーによって消費されるたびに、メッセージごとにトランザクションが報告されます。複数のメッセージが一度に消費される一括消費操作では、トランザクションは報告されません。
バックグラウンドタスクのパフォーマンス改善
Webアプリケーションの応答性を向上させる方法の一つとして、バックグラウンドプロセスに作業を委ねる方法があります。このプロセス間通信には、メッセージキューがよく使われます。
メッセージ キューイング システムのコンテキストでは、アプリケーションは通常、メッセージ ブローカーと対話してメッセージを送受信します。RabbitMQ Pika の場合、このクライアント ライブラリを使用すると、Python アプリケーションは Advanced Message Queuing Protocol (AMQP) 0.9 以降を実装するメッセージ ブローカーとやり取りできます。
Python エージェントは、クライアント ライブラリを使用して送受信されたメッセージを表示します。この可視性により、次のような詳細を確認できます。
- アプリで生成されたメッセージの数
- アプリがメッセージの発行/生成に費やす時間
- アプリがメッセージの処理/消費に費やす時間
APM は、キューとやりとりするオペレーションを便利にグループ化し、レポートします。この情報を分析することで、メッセージパッシングアーキテクチャのボトルネックやパフォーマンス向上のための領域をより簡単に特定することができます。
サポートされる指標
Message Queue | Pika RabbitMQ | Kafka Python | Confluent Kafka |
---|---|---|---|
Publish a Message | はい -- と呼ばれる | はい -- と呼ばれる | はい -- と呼ばれる |
Receive a Message | はい -- と呼ばれる | はい -- と呼ばれる | はい -- と呼ばれる |
Serialization | いいえ | はい | はい |
Deserialization | いいえ | いいえ | はい |
Heartbeat | いいえ | はい | いいえ |
New Relic UIでの表示
キュー操作は、選択したアプリの APM のTransactionsページに表示されます。
Put
(メッセージのパブリッシュ) とTake
(メッセージの受信) メトリクスはBreakdown tableに表示され、RabbitMQ のMessageBroker
メトリクスとして分類されます。 以下に例を示します。
one.newrelic.com > All capabilities > APM & services > (select an app) > Monitor > Transactions > (select a transaction): トランザクションのBreakdown tableは、キュー操作を RabbitMQ のMessageBroker
メトリクスとして分類し、それらをPut
(メッセージのパブリッシュ) またはTake
(メッセージの受信) としてラベル付けします。
トランザクショントレース メッセージの追加詳細情報も提供しています。
ヒント
APM のアプリのSummaryまたはTransactionsページから、段階トレースを選択できます。
低速トレースの概要ページのSlowest componentsセクションに、RabbitMQ のPut
およびTake
操作が表示される場合があります。 例えば:
one.newrelic.com > All capabilities > APM & services > (select an app) > (select a transaction trace): この例では、選択された戦場トレースのSummaryは、RabbitMQ 操作を色付きのバーチャートで示しています。 Slowest componentsセクションには、RabbitMQ Put
およびTake
の結果もリストされます。