The New Relic Ruby agent supports the Bunny RabbitMQ client library, giving you insight into the performance of your message processing, for both incoming and outgoing messages.
The APM UI shows transactions initiated via RabbitMQ message receipt (subscribe/consume messages) as Message background tasks. Message creation via RabbitMQ also appears in transaction traces.
Requirements
Requires New Relic Ruby agent version 4.3.0 or higher. Instrumentation is automatic for supported versions of Bunny AMQP, and requires no additional configuration.
Performance improvements with background tasks
One way to increase responsiveness of web applications is to delegate work to background processes. Message queues are commonly used for this inter-process communication.
In the context of message queuing systems, applications typically interact with message brokers to send and receive messages. The RabbitMQ Bunny client library allows Ruby applications to interface with message brokers that implement the Advanced Message Queuing Protocol (AMQP).
New Relic's Ruby agent shows messages sent and received using the RabbitMQ client library. With this visibility, you can see details including:
- Number of messages produced by your app
- Time your app spends publishing messages
- Time your app spends processing "consumed" messages
APM conveniently groups and reports operations that interact with queues. By analyzing this information, you can more easily identify bottlenecks and areas for performance improvement in your message passing architecture.
Queue operations
Supported entry points for queue operations appear as Put
(publish a message) or Take
(receive a message) in APM's user interface.
Queue operations | Publish a message (Put in UI) |
Receive a message (Take in UI) |
---|---|---|
RabbitMQ | publish |
|
View in New Relic UI
Message queue operations are visible in several places in the APM UI:
- Transactions page
-
Queue operations appear on APM's Transactions page for the selected app. The
Put
andTake
metrics appear in the Breakdown table and are categorized asMessageBroker
metrics. Here is an example:Transaction traces also provide additional details for messages.
You can select transaction traces from the app's Summary or Transactions pages in APM.
- Transaction trace summary page
-
The Transaction trace summary page may show
Put
andTake
operations in the Slowest components section. For example: - Transaction trace messages tab
-
The Transaction trace page includes a dedicated Messages tab that shows a summary of the message activity that occurred as part of the transaction. Here is an example: