This extension works only with the standalone machine agent.
##Use Case RabbitMQ is open source message broker software that implements the Advanced Message Queuing Protocol (AMQP). It is written in the Erlang programming language. The RabbitMQ Monitoring extension collects metrics from an RabbitMQ messaging server and uploads them to the AppDynamics Controller.
##Prerequisite The RabbitMQ Management Plugin must be enabled. Please refer to http://www.rabbitmq.com/management.html for more details.
##Installation
- Run "mvn clean install"
- Download and unzip the file 'target/RabbitMQMonitor.zip' to <machineagent install dir>/monitors
- Configure the config.yml. A sample config is as follows :
############
## Queue Group Configuration. The queue stats will be grouped by the 'groupName'
## if the 'queueNameRegex' matches the name of the Queue.
## groupName The stats from Queues matched by the 'queueNameRegex' will be reported under this name
## queueNameRegex A Regex to match the Queue Name
## showIndividualStats If set to false then the Individual Queue stats will not be reported.
## This will help if there are several short lived queues and an explosion of metrics
## in the controller can be avoided
############
# Uncomment the following lines for configuration
queueGroups:
- groupName: group1
queueNameRegex: queue.+
showIndividualStats: false
# Queue Group Configuration
#- groupName: group2
# queueNameRegex: temp.+
# showIndividualStats: false
####### RabbitMQ Server Instances. You can configure multiple instances as follows to report metrics from #######
servers:
- host: "localhost"
port: 15672
useSSL: false
username: "guest"
password: "guest"
##passwordEncrypted : Encrypted Password to be used, In this case do not use normal password field as above
connectTimeout: 10000
socketTimeout: 10000
displayName: "displayName" //The display name to be used for the metrics of this server, mandatory
- host: "localhost"
port: 15673
useSSL: false
username: "guest"
password: "guest"
connectTimeout: 10000
socketTimeout: 10000
displayName: "displayName1" //The display name to be used for the metrics of this server, mandatory
##encryptionKey: "myKey", the encryption key used to encrypt passowrd(s), same will be used to decrypt`
# number of concurrent tasks
numberOfThreads: 5
##Metrics The following metrics are reported. The Metric Path is relative to the "metricPrefix" defined in the monitor.xml
Metric Path | Description |
---|---|
Nodes/{node}/Erlang Processes | The count of Erlang Processes running in the node |
Nodes/{node}/File Descriptors | The count of open file descriptors in the node |
Nodes/{node}/Memory(MB) | The memory in MB used by the node |
Nodes/{node}/Sockets | The count of open sockets in the node |
Nodes/{node}/Channels/Count | The count of channels in the node |
Nodes/{node}/Channels/Blocked | The count of BLOCKED channels in the node |
Nodes/{node}/Messages/Delivered | The count of messages 'deliver' in the node |
Nodes/{node}/Messages/Acknowledged | The count of messages 'ack' in the node |
Nodes/{node}/Messages/Got No-Ack | The count of messages with the status 'get_no_ack' in the node |
Nodes/{node}/Messages/Delivered No-Ack | The count of messages with the status 'deliver_no_ack' in the node |
Nodes/{node}/Messages/Redelivered | The count of messages with the status 'redeliver' in the node |
Nodes/{node}/Messages/Published | The count of messages with the status 'publish' in the node |
Nodes/{node}/Messages/Available | The count of messages with the status 'messages_ready' in the node |
Nodes/{node}/Messages/Pending Acknowledgements | The count of messages with the status 'messages_unacknowledged' in the node |
Nodes/{node}/Consumers/Count | The count of consumers for the node |
Queues/{vHost}/{qName}/Consumers | The consumer count of a queue in a host |
Queues/{vHost}/{qName}/Messages/Acknowledged | The count of messages with the status 'ack' in the host and the given queue |
Queues/{vHost}/{qName}/Messages/Available | The count of messages with the status 'messages_ready' in the host and the given queue |
Queues/{vHost}/{qName}/Messages/Delivered (Total) | The count of messages with the status 'deliver_get' in the host and the given queue |
Queues/{vHost}/{qName}/Messages/Delivered | The count of messages with the status 'deliver' in the host and the given queue |
Queues/{vHost}/{qName}/Messages/Delivered No-Ack | The count of messages with the status 'deliver_no_ack' in the host and the given queue |
Queues/{vHost}/{qName}/Messages/Got | The count of messages with the status 'get' in the host and the given queue |
Queues/{vHost}/{qName}/Messages/Got No-Ack | The count of messages with the status 'get_no_ack' in the host and the given queue |
Queues/{vHost}/{qName}/Messages/Published | The count of messages with the status 'publish' in the host and the given queue |
Queues/{vHost}/{qName}/Messages/Redelivered | The count of messages with the status 'redeliver' in the host and the given queue |
Queues/{vHost}/{qName}/Messages/Pending Acknowledgements | The count of messages with the status 'messages_unacknowledged' in the host and the given queue |
Summary/Channels | The total number of channels registered in the server |
Summary/Consumers | The total number of Consumers registered in the server |
Summary/Messages/Available | The total count of messages with the status 'messages_ready' in the RabbitMQ server |
Summary/Messages/Delivered (Total) | The total count of messages with the status 'deliver_get' in the RabbitMQ server |
Summary/Messages/Published | The total count of messages with the status 'publish' in the RabbitMQ server |
Summary/Messages/Redelivered | The total count of messages with the status 'redeliver' in the RabbitMQ server |
Summary/Messages/Pending Acknowledgements | The total count of messages with the status 'messages_unacknowledged' in the RabbitMQ server |
Summary/Queues | The count of queues in the RabbitMQ Server |
##Password Encryption Support
To avoid setting the clear text password in the config.yml. Please follow the process to encrypt the password and set the encrypted password and the key in the config.yml
- Download the util jar to encrypt the password from here
- Encrypt password from the commandline java -cp "appd-exts-commons-1.1.2.jar" com.appdynamics.extensions.crypto.Encryptor myKey myPassword
- Add the properties in the config.yml. See sample config above
##Contributing
Always feel free to fork and contribute any changes directly here on GitHub.
##Community
Find out more in the AppSphere community.
##Support
For any questions or feature request, please contact AppDynamics Center of Excellence.