New Relic Node.js エージェントは、RabbitMQ クライアントライブラリ amqplib をサポートしており、受信メッセージと送信メッセージの両方について、メッセージ処理のパフォーマンスを把握することができます。
この機能を利用するには、New Relic Node.js エージェントのバージョン 2.0.0 以上が必要です 。
バックグラウンドタスクのパフォーマンス改善
Webアプリケーションの応答性を向上させる方法の一つとして、バックグラウンドプロセスに作業を委ねる方法があります。このプロセス間通信には、メッセージキューがよく使われます。
メッセージ キューイング システムのコンテキストでは、アプリケーションは通常、メッセージ ブローカーと対話してメッセージを送受信します。amqplib
クライアント ライブラリを使用すると、Node.js アプリケーションは、Advanced Message Queuing Protocol (AMQP) 0.9 以降を実装するメッセージ ブローカーとやり取りできます。
New Relic の Node.js エージェントは、RabbitMQ クライアントライブラリを使用して送受信されたメッセージを表示します。この可視性により、以下のような詳細を確認することができます。
- アプリで生成されたメッセージの数
- アプリがメッセージを公開するのにかかる時間
- アプリが"消費された" メッセージの処理に費やす時間
APM は、キューとやりとりするオペレーションを便利にグループ化し、レポートします。この情報を分析することで、メッセージパッシングアーキテクチャのボトルネックやパフォーマンス向上のための領域をより簡単に特定することができます。
キューの操作
キュー操作でサポートされているエントリ ポイントは、APM のユーザー インターフェースではPut
(メッセージの発行) またはTake
(メッセージの受信) として表示されます。
キューの操作 | メッセージを公開します (UI では | メッセージを受信 (UI では |
---|---|---|
RabbitMQ |
|
|
New Relic UIでの表示
キュー操作は、選択したアプリの APM の [トランザクション]ページに表示されます。Put
およびTake
指標が内訳表に表示され、 MessageBroker
指標として分類されます。次に例を示します。
one.newrelic.com > APM & サービス > アプリケーション > (アプリを選択) > トランザクション > (トランザクションを選択):トランザクションの内訳テーブルは、キュー操作をMessageBroker
メトリックとして分類し、それらをPut
(メッセージを発行) としてラベル付けしますまたはTake
(メッセージを受信)。
トランザクション追跡の概要ページでは、 [最も遅いコンポーネント]セクションにPut
およびTake
操作が表示される場合があります。例えば:
one.newrelic.com > APM & サービス > アプリケーション > (アプリを選択) > 概要 > (トランザクション追跡を選択):この例では、選択したトランザクション追跡の概要は、RabbitMQ 操作を色付きの棒グラフで示しています。最も遅いコンポーネントセクションには、RabbitMQ Put
およびTake
の結果もリストされています。
トランザクショントレース ページ には、専用の Messages タブがあり、トランザクションの一部として発生したメッセージアクティビティの概要が表示されます。
ヒント
トランザクショントレース は、アプリの Summary または Transactions のページから選択できます。 APM 。