New RelicのRubyエージェントは、 Bunny RabbitMQクライアントライブラリ をサポートしており、受信メッセージと送信メッセージの両方について、メッセージ処理のパフォーマンスを把握することができます。
APM UIでは、RabbitMQのメッセージ受信(subscribe/consumeメッセージ)を介して開始されたトランザクションが、 Message のバックグラウンドタスクとして表示されます。RabbitMQによるメッセージ作成もトランザクショントレースに表示されます。
要件
New Relicが必要です Rubyエージェントバージョン4.3.0以上 。インスツルメンテーションは、 サポートされているバージョンのBunny AMQP では自動的に行われ、追加の設定は必要ありません。
バックグラウンドタスクのパフォーマンス改善
Webアプリケーションの応答性を向上させる方法の一つとして、バックグラウンドプロセスに作業を委ねる方法があります。このプロセス間通信には、メッセージキューがよく使われます。
メッセージキューイングシステムのコンテキストでは、アプリケーションは通常、メッセージブローカーと対話してメッセージを送受信します。RabbitMQ Bunnyクライアントライブラリを使用すると、RubyアプリケーションはAMQP(Advanced Message Queuing Protocol)を実装したメッセージブローカーとインターフェースをとることができます。
New Relic の Ruby エージェントは、RabbitMQ クライアントライブラリを使用して送受信されたメッセージを表示します。この可視性により、以下のような詳細を確認することができます。
- アプリで生成されたメッセージの数
- アプリがメッセージを公開するのにかかる時間
- アプリが"消費された" メッセージの処理に費やす時間
APM は、キューとやりとりするオペレーションを便利にグループ化し、レポートします。この情報を分析することで、メッセージパッシングアーキテクチャのボトルネックやパフォーマンス向上のための領域をより簡単に特定することができます。
キューの操作
サポートされているキュー操作のエントリーポイントは、APMのユーザーインターフェースでは、 Put
(メッセージの発行)、 Take
(メッセージの受信)として表示されます。
キューの操作 | メッセージの公開 ( | メッセージの受信 ( |
---|---|---|
RabbitMQ |
|
|
New Relic UIでの表示
メッセージキューの操作は、APMのUIのいくつかの場所で見ることができます。