Python エージェントは、 Pika RabbitMQ クライアント ライブラリ、 Kafka Python クライアント ライブラリ、およびConfluent Kafka クライアント ライブラリをサポートしており、受信メッセージと送信メッセージの両方について、メッセージ処理のパフォーマンスを可視化できます。
New Relic UI は、メッセージの受信 (サブスクライブ/メッセージの消費) によって開始されたトランザクションをメッセージバックグラウンド タスクとして表示します。メッセージの作成は、トランザクション追跡にも表示されます。
要件
メッセージ キュー | Python エージェントのバージョンが必要です |
---|---|
ピカラビット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 は、キューとやりとりするオペレーションを便利にグループ化し、レポートします。この情報を分析することで、メッセージパッシングアーキテクチャのボトルネックやパフォーマンス向上のための領域をより簡単に特定することができます。
サポートされる指標
メッセージ キュー | ピカラビットMQ | カフカパイソン | コンフルエントなカフカ |
---|---|---|---|
メッセージを公開する | はい -- と呼ばれる | はい -- と呼ばれる | はい -- と呼ばれる |
メッセージを受け取る | はい -- と呼ばれる | はい -- と呼ばれる | はい -- と呼ばれる |
シリアル化 | いいえ | はい | はい |
逆シリアル化 | いいえ | いいえ | はい |
ハートビート | いいえ | はい | いいえ |
New Relic UIでの表示
キュー操作は、選択したアプリの APM の [トランザクション]ページに表示されます。
Put
(メッセージのパブリッシュ) およびTake
(メッセージの受信) メトリックが内訳テーブルに表示され、RabbitMQ のMessageBroker
メトリックとして分類されます。以下に例を示します。
one.newrelic.com > APM & サービス > (アプリを選択) > 監視 > トランザクション > (トランザクションを選択):トランザクションの内訳テーブルは、キュー操作を RabbitMQ のMessageBroker
メトリックとして分類し、 Put
としてラベル付けします (メッセージ) またはTake
(メッセージを受信)。
トランザクショントレース メッセージの追加詳細情報も提供しています。
ヒント
トランザクショントレース は、APM のアプリの Summary または Transactions ページから選択できます。
トランザクション追跡の概要ページの[最も遅いコンポーネント]セクションに、RabbitMQ のPut
操作とTake
操作が表示される場合があります。例えば:
one.newrelic.com > APM & サービス > (アプリを選択) > (トランザクション追跡を選択):この例では、選択したトランザクション追跡の概要に、RabbitMQ 操作が色付きの棒グラフで表示されます。最も遅いコンポーネントセクションには、RabbitMQ Put
およびTake
の結果もリストされています。