New RelicのRubyエージェントは、 Bunny RabbitMQクライアントライブラリ をサポートしており、受信メッセージと送信メッセージの両方について、メッセージ処理のパフォーマンスを把握することができます。
APM UI には、RabbitMQ メッセージ受信 (メッセージのサブスクライブ/消費) によって開始されたトランザクションが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
(メッセージの受信) として表示されます。
Queue operations | Publish a message ( | Receive a message ( |
---|---|---|
RabbitMQ |
|
|
New Relic UIでの表示
メッセージキューの操作は、APMのUIのいくつかの場所で見ることができます。