Icon

Comments have been closed on this page. Please use AppMon & UEM Open Q & A forum for questions about this plugin.

The monitor returns a number of values associated with RabbitMQ. The RabbitMQ Monitor makes 2 initial calls to the RabbitMQ rest interface which gets the overview and node information.

The plug-in then uses the JSon-simple library to parse the JSon script returned from the rest interface into an overview and nodes object. The overview object contains the values from the overview of the RabbitMQ Server. The Nodes object contains an array of Node objects. One Node object is created for each node returned in the JSon script. The Node is used to hold information about individual nodes.

Finally the monitor iterates through the measures and uses the correct objects to match each measure. If a Node measure is created the Node Name is a required field in the Measure configuration. This will tell the Nodes object which Node to pull the information from. If a Queue Measure is created the monitor will make an additional call to the RabbitMQ rest interface to retrieve data about the Queue specified in the measure configuration.

Plugin Details

Plug-In Versions

Rabbit MQ Monitoring Plugin
Rabbit MQ Dashboard

Author

Derek Abing

License

dynaTrace BSD

Support

Not Supported
If you have any questions or suggestions for these plugins, please add a comment to this page, use our forum, or drop us an email at community@dynatrace.com!

Known Problems

 

Release History

2012-04-18 Initial Release
2013-09-25 Update
2016-12-15 Update 

Provided Measures

Measure Name

Description

Active Consumers

The number of consumers in the active state for a queue

Consumers

The number of consumers in a queue

Disk Alarm

Returns a 1 if the disk alarm has been tripped and a 0 if the disk alarm has not been tripped.

Disk Free

The amount of free bytes on the disk

EventCorrelationEngine.MainSubscription Active Consumers

The number of consumers in the active state for a queue

EventCorrelationEngine.MainSubscription Consumers

The number of consumers in a queue

EventCorrelationEngine.MainSubscription Messages

The total number of messages in a queue

EventingLoadTest.BPClaims_AssignmentClaim Acitve Consumers

The number of consumers in the active state for a queue

EventingLoadTest.BPClaims_AssignmentClaim Messages

The total number of messages in a queue

Memory Alarm

Returns a 1 if the memory alarm has been tripped and a 0 if the memory alarm has not been tripped.

Memory Used

The amount of bytes used by the Node

Messages

The total number of messages in the HornetQ instance.

Messages Ready

Total number of messages in the "Ready" state.

Messages Unacknowledged

The number of messages in the Unacknowledged state in the queue

Node Running

Returns a 1 if the node is running and a 0 if the node is down.

Configuration

Name

Value

Rest Port

Port on the server used by the restful interface.

Username

The username to use for authentication to the restful interface

Password

The password for the username used to authenticate to the restful interface.

Installation

Import the Plugin into the dynaTrace Server. For details how to do this please refer to the dynaTrace documentation.

  1. Anonymous (login to see details)

    Hello,
    How to configure all the Measures, In 5.0 this doesn't show any Measures and not sure what type of measures to create.

    -Jan

  2. Anonymous (login to see details)

    If you edit the measures, you can the Queue and Vhost depending on how RabbitMQ is configured in your environment.

    1. Anonymous (login to see details)

      Hello,

      Ok, Now I see the Measures to add. When I installed the plugin I didn't see any Measures that could be selected for some reason. But still when I run the plugin I get a "Error during execution of plug in occured". The log on the Collector for the plugin is 0 bytes even in FINER log level? Any ideas?

  3. Anonymous (login to see details)

    Hello,

    I am working on getting the Rabbit MQ Plugin working at a client.  It appears to be constantly failing.  We are able to execute a direct query for the counter from the dynaTrace collector using the same credentials.  There also appears to be no log files being written.  Any ideas on why this is?

     

     

  4. Anonymous (login to see details)

    I have the same issue. Constantly getting failures with RbMQ plugin.

  5. Anonymous (login to see details)

    From dynaTrace Server Settings > Plugins can you double click the RabbitMQ plugin and change the logging detail to FINE? That should spit out lots of stuff to the log.

  6. Anonymous (login to see details)

    I'm having issues using the RabbitMQ Plugin doesn't support the current version of RabbitMQ.

     

    I'm running RabbitMQ v3.3.3 on Windows Server 2012.

     

    Rest agent http://extintweb08:15672/api/queues/%2f/EventCorrelationEngine.MainSubscription is failing repeatedly.

    I've attempted to make this call via PostMan and get a 404 returned.

     
    <HTML>
        <HEAD>
            <TITLE>404 Not Found</TITLE>
        </HEAD>
        <BODY>
            <H1>Not Found</H1>The requested document was not found on this server.
            <P>
                <HR>
                    <ADDRESS>mochiweb+webmachine web server</ADDRESS>
                </BODY>
            </HTML>

     

    Management Plugin is enabled in RabbitMQ.

     

    I am actually able to call some of the other REST APIs to retrieve information directly via Postman

    http://extintweb05.exttest.local:15672/api/overview

    {
    "management_version": "3.3.2",
    "statistics_level": "fine",
    "exchange_types": [
    {
    "name": "topic",
    "description": "AMQP topic exchange, as per the AMQP specification",
    "enabled": true
    },
    {
    "name": "fanout",
    "description": "AMQP fanout exchange, as per the AMQP specification",
    "enabled": true
    },
    {
    "name": "x-federation-upstream",
    "description": "Federation upstream helper exchange",
    "internal_purpose": "federation",
    "enabled": true
    },
    {
    "name": "direct",
    "description": "AMQP direct exchange, as per the AMQP specification",
    "enabled": true
    },
    {
    "name": "headers",
    "description": "AMQP headers exchange, as per the AMQP specification",
    "enabled": true
    }
    ],
    "rabbitmq_version": "3.3.2",
    "cluster_name": "rabbit@EXTINTWEB05",
    "erlang_version": "17",
    "erlang_full_version": "Erlang/OTP 17 [erts-6.0] [64-bit] [smp:2:2] [async-threads:30]",
    "message_stats": {
    "publish": 237480,
    "publish_details": {
    "rate": 0
    },
    "ack": 142488,
    "ack_details": {
    "rate": 0
    },
    "deliver_get": 142488,
    "deliver_get_details": {
    "rate": 0
    },
    "confirm": 237480,
    "confirm_details": {
    "rate": 0
    },
    "deliver": 142488,
    "deliver_details": {
    "rate": 0
    }
    },
    "queue_totals": {
    "messages": 1,
    "messages_details": {
    "rate": 0
    },
    "messages_ready": 1,
    "messages_ready_details": {
    "rate": 0
    },
    "messages_unacknowledged": 0,
    "messages_unacknowledged_details": {
    "rate": 0
    }
    },
    "object_totals": {
    "consumers": 24,
    "queues": 33,
    "exchanges": 57,
    "connections": 11,
    "channels": 26
    },
    "node": "rabbit@EXTINTWEB05",
    "statistics_db_node": "rabbit@EXTINTWEB05",
    "listeners": [
    {
    "node": "rabbit@EXTINTWEB05",
    "protocol": "amqp",
    "ip_address": "0.0.0.0",
    "port": 5672
    },
    {
    "node": "rabbit@EXTINTWEB05",
    "protocol": "amqp",
    "ip_address": "::",
    "port": 5672
    },
    {
    "node": "rabbit@EXTINTWEB06",
    "protocol": "amqp",
    "ip_address": "0.0.0.0",
    "port": 5672
    },
    {
    "node": "rabbit@EXTINTWEB06",
    "protocol": "amqp",
    "ip_address": "::",
    "port": 5672
    },
    {
    "node": "rabbit@EXTINTWEB05",
    "protocol": "clustering",
    "ip_address": "::",
    "port": 25672
    },
    {
    "node": "rabbit@EXTINTWEB06",
    "protocol": "clustering",
    "ip_address": "::",
    "port": 25672
    }
    ],
    "contexts": [
    {
    "node": "rabbit@EXTINTWEB05",
    "description": "RabbitMQ Management",
    "path": "/",
    "port": 15672
    },
    {
    "node": "rabbit@EXTINTWEB06",
    "description": "RabbitMQ Management",
    "path": "/",
    "port": 15672
    }
    ]
    }

     

    Any help that you can provide is greatly appreciated.

     

    Troy

  7. Anonymous (login to see details)

    Hi Tory,

    "EventCorrelationEngine.MainSubscription" is the default queue name that comes with the plugin. The reason your are getting a 404 in the REST call is that you dont have the queue.

    When you create a monitor from the plugin, it creates default measures out of the box. I think those out of the box measures are causing the issue.

    Select the monitor that you created -> select the Measures tab -> Remove all the measures listed (refer the screenshot below).

    Click the “Create Measures..” button to create new measures and provide vhost/queue/node names as per your RabbitMQ configuration.

     

    Thanks,

    Muthu

  8. Anonymous (login to see details)

    Muthu,

     

    That got it resolved.  I appreciate the fast response.

     

    How soon before, there are any senor packs created for RabbitMQ, like the ones that exist for MSMQ & MQ Series.

     

    I'd like to be able to tag across tiers and have entry endpoints that are based on RabbitMQ destinations.

     

    Thanks

     

    Troy

    1. Anonymous (login to see details)

      Hi Tory,

      There is no sensor pack available for RabbitMQ, you will have to use dynaTrace ADK.

      Thanks,

      Muthu

  9. Anonymous (login to see details)

    Is it possible to add measures for queue based message rates.

     

    These seem to be returned in the JSON, but not parsed for the plugin.

     

    Also, is is possible to modify the plugin to allow for time base filters.  This is useful for us to look at queue statistics over the course of a time period to determine queue performance.

    Thanks,

     

    Troy

  10. Anonymous (login to see details)

    I deployed the plugi correctly but I seem to be getting an 'Invalid HTTP Response' in the log and no data.  Any ideas?

  11. Anonymous (login to see details)

    I am getting 'Error during execution of plug in occured' in dynatrace 5.5. I can't seem to make any sense of it. Any ideas?


    edit - resolved, but would also be interested in queue based measures.

  12. Anonymous (login to see details)

    Hello, I'm having some issues in 6.2.2 where the host/server names are not recognized properly within the plugin itself.

    Sometimes by removing and re-adding the host name it works, but more often that not, either the host name doesn't show up after I add it to the plugin, or the ping fails regardless, even though the rabbit node is up.

     

    edit - this seems to be a fix on the server/client level - i'm not seeing this issue since we went to 6.2.3

  13. Anonymous (login to see details)

    I am running the RabbitMQ monitor but in order to capture data, I must add the queue name to several of the monitor's measures (Consumers, Queue Messages, Queue Messages Ready and Queue Messages Acknowledged). In production, the Queue name is generated dynamically by the application so how do I configure in this type of environment?

     

    Thanks,

    Kevin.

  14. Anonymous (login to see details)

    Hello,

    I'm using 6.2.3. I seem to be having an issue when using 443 as the port. The monitor runs forever (always having the spinning wheels). Is this to be expected for Rabbit MQ over SSL? Using the typical http/15672 has no issues on other hosts. When I log into the collector of course I'm able to access the Rabbit console over https/443.

     

    Any ideas?

  15. Anonymous (login to see details)

    In 6.5, when I go to configure the Monitor the measures list is completely empty. I have checked that Windows is not blocking the jar file and adding the plugin to the server completed without error.

    Does this plugin no longer work with the newer versions of Dynatrace? Even though Dynatrace now supports RabbitMQ from a PurePath perspective.

     

  16. Anonymous (login to see details)

    Wow, I didn't realize how long it had been since I had sent over an update to this plugin.  Almost all of the code in this plugin has been changed.  Rather than try and fix the old plugin it would probably be more beneficial to just send over the new version.  I can confirm the new version works in Dynatrace 6.5.  I will contact Andreas and get the new plugin version uploaded.

     

    Thanks,

    Brian

    1. Anonymous (login to see details)

    2. Anonymous (login to see details)

      Thanks Brian for the update.

      I have just loaded it into my 6.5 and noticed that there are far fewer measures than detailed above.

      I have:

      Messages
      Message Rate
      Message Ready
      Message Ready Rate
      Messages Unacknowledged
      Messages Unacknowledged Rate

       

      As such it no longer seems to have:

      Active Consumers
      Consumers
      Disk Alarm
      Disk Free
      Queue specific ones
      Memory Alarm
      Memory Used
      Node Running

       

      Some of these, especially Node Running would be very useful to have. Is there a reason these have disappeared or is it something I have done? e.g.  only appear on a Linux Collector.

      1. Anonymous (login to see details)

        Jon,

         

        This would most likely be an issue with your Dynatrace setup.  All of those metrics are available in the plugin still.  There should be no issues with using a windows collector.

         

        Thanks,

        Brian

  17. Anonymous (login to see details)

    Hi Brian,

    I can't seem to get the monitor to work with the RabbitMQ instance bundled with Chef. Do you have any idea why I might be getting the errors below? RabbitMQ v3.3.4, chef user using 100 character password. I also tried the "actions" and "rabbitmgmt" users with the same results.

    From the monitor logs:

    2017-03-02 17:28:05 FINE [URLdownload@Chef Staging RabbitMQ Remote Monitor_0] URL: http://************:5672/api/queues
    2017-03-02 17:28:05 SEVERE [RabbitMQMonitor@Chef Staging RabbitMQ Remote Monitor_0] Valid JSON not returned for RabbitMQ QUEUE REST API Request.
    2017-03-02 17:28:05 SEVERE [RabbitMQMonitor@Chef Staging RabbitMQ Remote Monitor_0] Unexpected token END OF FILE at position 0.

     

    From the RabbitMQ logs:

    =ERROR REPORT==== 2-Mar-2017::17:28:05 ===

    closing AMQP connection <0.2378.0> (10.****:54619 -> 10.******:5672):

    {bad_header,<<"GET /api">>}

     

    Configuration:

     

    Not sure if this is helpful, but I included the Ruby code a coworker uses to successfully connect to the API below.

     

    irb(main):005:0> conn = Bunny.new(:host => "127.0.0.1", :vhost => "/chef", :user => "chef", :password => "***********")

    => #<Bunny::Session:0x24632d0 chef@127.0.0.1:5672, vhost=/chef, addresses=[127.0.0.1:5672]>

    Kind Regards,

    Jake

    1. Anonymous (login to see details)

      Jake,

       

      Can you try going to the URL manually with a browser and confirming that you are getting JSON back?  The error indicates that the JSON returned was not able to be parsed.

       

      Thanks,

      Brian

      1. Anonymous (login to see details)

        Hi Brian,

        It would take me a few days to get the firewall clearance set up to a host with a browser on it, but I have tried curling to it with no success:

        us********:~ # curl -u chef:********* http://********.com:5672/api/overview
        curl: (56) Failure when receiving data from the peer
        AMQP

        The error in the RabbitMQ logs is the same ("bad header") when we use curl vs. when we use the plugin.

        Thanks,

        Jake

  18. Anonymous (login to see details)

    Jake,

    Are you sure the port you are using is for the RabbitMQ REST API and not the message queue port?

    Thanks,

    Brian

    1. Anonymous (login to see details)

      Hi Brian,

      Ah, you're completely right, I think the team gave me the message port 5672 instead of 15672. It'll take me a few days to get the firewall request to test it out, but I'll let you know if that works.

      Thanks for the prompt responses.

      Jake