From cfa1e339c5bf5f77a861467a4ac0f8aa064cc920 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Ho=CC=88rberg?= Date: Wed, 5 Aug 2015 10:08:36 +0200 Subject: [PATCH 01/16] construct path properly when reporting queues, fixes #52 --- .../pivotal_rabbitmq_plugin.rb | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb index 7dc1388..dac92b5 100755 --- a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb +++ b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb @@ -158,13 +158,17 @@ def report_queues return unless rmq_manager.queues.length > 0 rmq_manager.queues.each do |q| next if q['name'].start_with?('amq.gen') - report_metric_check_debug 'Queue' + q['vhost'] + q['name'] + '/Messages/Ready', 'message', q['messages_ready'] - report_metric_check_debug 'Queue' + q['vhost'] + q['name'] + '/Memory', 'bytes', q['memory'] - report_metric_check_debug 'Queue' + q['vhost'] + q['name'] + '/Messages/Total', 'message', q['messages'] - report_metric_check_debug 'Queue' + q['vhost'] + q['name'] + '/Consumers/Total', 'consumers', q['consumers'] - report_metric_check_debug 'Queue' + q['vhost'] + q['name'] + '/Consumers/Active', 'consumers', q['active_consumers'] + report_metric_check_debug mk_path('Queue', q['vhost'], q['name'], 'Messages', 'Ready'), 'message', q['messages_ready'] + report_metric_check_debug mk_path('Queue', q['vhost'], q['name'], 'Memory'), 'bytes', q['memory'] + report_metric_check_debug mk_path('Queue', q['vhost'], q['name'], 'Messages', 'Total'), 'message', q['messages'] + report_metric_check_debug mk_path('Queue', q['vhost'], q['name'], 'Consumers', 'Total'), 'consumers', q['consumers'] + report_metric_check_debug mk_path('Queue', q['vhost'], q['name'], 'Consumers', 'Active'), 'consumers', q['active_consumers'] end end + + def mk_path(*args) + args.map { |a| URI.encode_www_form_component a }.join "/" + end end NewRelic::Plugin::Setup.install_agent :rabbitmq, self From 4554ac16de75945e91a64b149704c0b74369a586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Ho=CC=88rberg?= Date: Wed, 5 Aug 2015 12:20:11 +0200 Subject: [PATCH 02/16] Remove unnecessary length check --- plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb index 7dc1388..58ff695 100755 --- a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb +++ b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb @@ -155,7 +155,6 @@ def user_count end def report_queues - return unless rmq_manager.queues.length > 0 rmq_manager.queues.each do |q| next if q['name'].start_with?('amq.gen') report_metric_check_debug 'Queue' + q['vhost'] + q['name'] + '/Messages/Ready', 'message', q['messages_ready'] From bfbfaf95fa11b7136ed4bbba0629aaf132541914 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Ho=CC=88rberg?= Date: Wed, 5 Aug 2015 12:22:47 +0200 Subject: [PATCH 03/16] fix extra new lines --- plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb index 58ff695..17b3852 100755 --- a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb +++ b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb @@ -23,7 +23,6 @@ # THE SOFTWARE. # - require 'rubygems' require 'bundler/setup' require 'newrelic_plugin' @@ -79,7 +78,9 @@ def report_metric_check_debug(metricname, metrictype, metricvalue) report_metric metricname, metrictype, metricvalue end end + private + def rmq_manager @rmq_manager ||= ::RabbitMQManager.new(management_api_url) end From 90d48bc48b11f7c55e536c9dfaad8830ced950f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Ho=CC=88rberg?= Date: Wed, 5 Aug 2015 12:23:35 +0200 Subject: [PATCH 04/16] no begin necessary if rescue is on the method level --- .../pivotal_rabbitmq_plugin.rb | 52 +++++++++---------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb index 17b3852..7490b9f 100755 --- a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb +++ b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb @@ -41,38 +41,34 @@ class Agent < NewRelic::Plugin::Agent::Base end def poll_cycle - begin - if "#{self.debug}" == "true" - puts "[RabbitMQ] Debug Mode On: Metric data will not be sent to new relic" - end - - report_metric_check_debug 'Queued Messages/Ready', 'messages', queue_size_ready - report_metric_check_debug 'Queued Messages/Unacknowledged', 'messages', queue_size_unacknowledged - - report_metric_check_debug 'Message Rate/Acknowledge', 'messages/sec', ack_rate - report_metric_check_debug 'Message Rate/Confirm', 'messages/sec', confirm_rate - report_metric_check_debug 'Message Rate/Deliver', 'messages/sec', deliver_rate - report_metric_check_debug 'Message Rate/Publish', 'messages/sec', publish_rate - report_metric_check_debug 'Message Rate/Return', 'messages/sec', return_unroutable_rate - - report_metric_check_debug 'Node/File Descriptors', 'file_descriptors', node_info('fd_used') - report_metric_check_debug 'Node/Sockets', 'sockets', node_info('sockets_used') - report_metric_check_debug 'Node/Erlang Processes', 'processes', node_info('proc_used') - report_metric_check_debug 'Node/Memory Used', 'bytes', node_info('mem_used') - - report_queues - - rescue Exception => e - $stderr.puts "[RabbitMQ] Exception while processing metrics. Check configuration." - $stderr.puts e.message - if "#{self.debug}" == "true" - $stderr.puts e.backtrace.inspect - end + if "#{debug}" == "true" + puts "[RabbitMQ] Debug Mode On: Metric data will not be sent to new relic" end + + report_metric_check_debug 'Queued Messages/Ready', 'messages', queue_size_ready + report_metric_check_debug 'Queued Messages/Unacknowledged', 'messages', queue_size_unacknowledged + + report_metric_check_debug 'Message Rate/Acknowledge', 'messages/sec', ack_rate + report_metric_check_debug 'Message Rate/Confirm', 'messages/sec', confirm_rate + report_metric_check_debug 'Message Rate/Deliver', 'messages/sec', deliver_rate + report_metric_check_debug 'Message Rate/Publish', 'messages/sec', publish_rate + report_metric_check_debug 'Message Rate/Return', 'messages/sec', return_unroutable_rate + + report_metric_check_debug 'Node/File Descriptors', 'file_descriptors', node_info('fd_used') + report_metric_check_debug 'Node/Sockets', 'sockets', node_info('sockets_used') + report_metric_check_debug 'Node/Erlang Processes', 'processes', node_info('proc_used') + report_metric_check_debug 'Node/Memory Used', 'bytes', node_info('mem_used') + + report_queues + + rescue Exception => e + $stderr.puts "[RabbitMQ] Exception while processing metrics. Check configuration." + $stderr.puts e.message + $stderr.puts e.backtrace.inspect if "#{debug}" == "true" end def report_metric_check_debug(metricname, metrictype, metricvalue) - if "#{self.debug}" == "true" + if "#{debug}" == "true" puts("#{metricname}[#{metrictype}] : #{metricvalue}") else report_metric metricname, metrictype, metricvalue From 93c7df531b2c77d128919364e739a319abc83e35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Ho=CC=88rberg?= Date: Wed, 5 Aug 2015 12:24:07 +0200 Subject: [PATCH 05/16] prefer $PROGRAM_NAME to $0 --- plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb index 7490b9f..a300cb7 100755 --- a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb +++ b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb @@ -168,8 +168,6 @@ def report_queues # # Launch the agent; this never returns. # - if __FILE__==$0 - NewRelic::Plugin::Run.setup_and_run - end + NewRelic::Plugin::Run.setup_and_run if __FILE__ == $PROGRAM_NAME end end From 1db97ccfe5afadb4ef0a2e77c7e876ba6fb4bc96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Ho=CC=88rberg?= Date: Wed, 5 Aug 2015 12:25:29 +0200 Subject: [PATCH 06/16] dont rescue Exception, rescue StandardError, implicitly --- plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb index a300cb7..baadc1b 100755 --- a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb +++ b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb @@ -61,7 +61,7 @@ def poll_cycle report_queues - rescue Exception => e + rescue => e $stderr.puts "[RabbitMQ] Exception while processing metrics. Check configuration." $stderr.puts e.message $stderr.puts e.backtrace.inspect if "#{debug}" == "true" From 175978dcb1d7034a39b18cca029a1bff0e82743b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Ho=CC=88rberg?= Date: Wed, 5 Aug 2015 12:31:19 +0200 Subject: [PATCH 07/16] Remove superfluous comments --- .../pivotal_rabbitmq_plugin.rb | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb index baadc1b..ed92003 100755 --- a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb +++ b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb @@ -81,9 +81,6 @@ def rmq_manager @rmq_manager ||= ::RabbitMQManager.new(management_api_url) end - # - # Queue size - # def queue_size_for(type = nil) totals_key = 'messages' totals_key << "_#{type}" if type @@ -104,9 +101,6 @@ def queue_size_unacknowledged queue_size_for 'unacknowledged' end - # - # Rates - # def ack_rate rate_for 'ack' end @@ -138,9 +132,6 @@ def return_unroutable_rate rate_for 'return_unroutable' end - # - # Node info - # def node_info(key) default_node_name = rmq_manager.overview['node'] node = rmq_manager.node(default_node_name) @@ -165,9 +156,7 @@ def report_queues NewRelic::Plugin::Setup.install_agent :rabbitmq, self - # # Launch the agent; this never returns. - # NewRelic::Plugin::Run.setup_and_run if __FILE__ == $PROGRAM_NAME end end From 219fcb4a89b778b85c246a1ec7d2062912ec02e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Ho=CC=88rberg?= Date: Wed, 5 Aug 2015 12:34:11 +0200 Subject: [PATCH 08/16] debug is a bool, dont convert it to a string, this is not bash --- plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb index ed92003..8a4a236 100755 --- a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb +++ b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb @@ -41,7 +41,7 @@ class Agent < NewRelic::Plugin::Agent::Base end def poll_cycle - if "#{debug}" == "true" + if debug puts "[RabbitMQ] Debug Mode On: Metric data will not be sent to new relic" end @@ -64,11 +64,11 @@ def poll_cycle rescue => e $stderr.puts "[RabbitMQ] Exception while processing metrics. Check configuration." $stderr.puts e.message - $stderr.puts e.backtrace.inspect if "#{debug}" == "true" + $stderr.puts e.backtrace.inspect if debug end def report_metric_check_debug(metricname, metrictype, metricvalue) - if "#{debug}" == "true" + if debug puts("#{metricname}[#{metrictype}] : #{metricvalue}") else report_metric metricname, metrictype, metricvalue From 2b6f42c387cc02477887e26a243a22db2fbd8b87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Ho=CC=88rberg?= Date: Wed, 5 Aug 2015 12:39:52 +0200 Subject: [PATCH 09/16] Improved upstart script Don't use start-stop-daemon, upstart takes care of PID tracking Use upstart's built in logging Run as nobody, no privileges are required Remove superfluous comments --- extras/pivotal_agent-upstart.conf | 28 ++++------------------------ 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/extras/pivotal_agent-upstart.conf b/extras/pivotal_agent-upstart.conf index 382e870..6de09d2 100644 --- a/extras/pivotal_agent-upstart.conf +++ b/extras/pivotal_agent-upstart.conf @@ -1,29 +1,9 @@ -# -# This is provided as an example of a Ubuntu style upstart script -# You'll want to give it a more useful name -# -# pivotal_agent - myservice job file - description "Pivotal Monitoring Agent for New Relic" author "Pivotal - https://github.com/gopivotal/newrelic_pivotal_agent/" - -# Change this to the user running the agent -env USER=sysadmin - -# When to start the service start on runlevel [2345] - -# When to stop the service stop on runlevel [016] - -# Automatically restart process if crashed respawn - -# Run before process -pre-start script - [ -d /var/log/pivotal_agent ] || mkdir -p /var/log/pivotal_agent -end script - -# This assumes that start-stop-daemon is present on the system -# Change this to the path where pivotal_agent is located -exec start-stop-daemon --start --make-pidfile --pidfile /var/run/pivotal_agent.pid --chuid $USER --exec /opt/newrelic_pivotal_agent/pivotal_agent +setuid nobody +setgid nogroup +console log +exec /opt/newrelic_pivotal_agent/pivotal_agent From a7734503a151918d59c592d553ac31df8d9308af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Ho=CC=88rberg?= Date: Wed, 5 Aug 2015 12:54:39 +0200 Subject: [PATCH 10/16] only poll node info once --- .../pivotal_rabbitmq_plugin.rb | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb index 7dc1388..cfb92d8 100755 --- a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb +++ b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb @@ -56,11 +56,7 @@ def poll_cycle report_metric_check_debug 'Message Rate/Publish', 'messages/sec', publish_rate report_metric_check_debug 'Message Rate/Return', 'messages/sec', return_unroutable_rate - report_metric_check_debug 'Node/File Descriptors', 'file_descriptors', node_info('fd_used') - report_metric_check_debug 'Node/Sockets', 'sockets', node_info('sockets_used') - report_metric_check_debug 'Node/Erlang Processes', 'processes', node_info('proc_used') - report_metric_check_debug 'Node/Memory Used', 'bytes', node_info('mem_used') - + report_node report_queues rescue Exception => e @@ -141,13 +137,13 @@ def return_unroutable_rate rate_for 'return_unroutable' end - # - # Node info - # - def node_info(key) + def report_node default_node_name = rmq_manager.overview['node'] - node = rmq_manager.node(default_node_name) - node[key] + node_info = rmq_manager.node(default_node_name) + report_metric_check_debug 'Node/File Descriptors', 'file_descriptors', node_info['fd_used'] + report_metric_check_debug 'Node/Sockets', 'sockets', node_info['sockets_used'] + report_metric_check_debug 'Node/Erlang Processes', 'processes', node_info['proc_used'] + report_metric_check_debug 'Node/Memory Used', 'bytes', node_info['mem_used'] end def user_count From 1e9a5a131d3110f85ed455e5b2e9140377d8e087 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Ho=CC=88rberg?= Date: Wed, 5 Aug 2015 13:01:58 +0200 Subject: [PATCH 11/16] only poll /overview once --- plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb index cfb92d8..c868f90 100755 --- a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb +++ b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb @@ -47,6 +47,7 @@ def poll_cycle puts "[RabbitMQ] Debug Mode On: Metric data will not be sent to new relic" end + @overview = rmq_manager.overview report_metric_check_debug 'Queued Messages/Ready', 'messages', queue_size_ready report_metric_check_debug 'Queued Messages/Unacknowledged', 'messages', queue_size_unacknowledged @@ -87,7 +88,7 @@ def queue_size_for(type = nil) totals_key = 'messages' totals_key << "_#{type}" if type - queue_totals = rmq_manager.overview['queue_totals'] + queue_totals = @overview['queue_totals'] if queue_totals.size == 0 $stderr.puts "[RabbitMQ] No data found for queue_totals[#{totals_key}]. Check that queues are declared. No data will be reported." else @@ -123,7 +124,7 @@ def publish_rate end def rate_for(type) - msg_stats = rmq_manager.overview['message_stats'] + msg_stats = @overview['message_stats'] if msg_stats.is_a?(Hash) details = msg_stats["#{type}_details"] @@ -138,7 +139,7 @@ def return_unroutable_rate end def report_node - default_node_name = rmq_manager.overview['node'] + default_node_name = @overview['node'] node_info = rmq_manager.node(default_node_name) report_metric_check_debug 'Node/File Descriptors', 'file_descriptors', node_info['fd_used'] report_metric_check_debug 'Node/Sockets', 'sockets', node_info['sockets_used'] From 70f8de7dab345d4034f89aa5919926a188ac6191 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Ho=CC=88rberg?= Date: Wed, 5 Aug 2015 13:15:30 +0200 Subject: [PATCH 12/16] remove unused user_count method --- plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb index 751f37e..57616dc 100755 --- a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb +++ b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb @@ -141,10 +141,6 @@ def report_node report_metric_check_debug 'Node/Memory Used', 'bytes', node_info['mem_used'] end - def user_count - rmq_manager.users.length - end - def report_queues rmq_manager.queues.each do |q| next if q['name'].start_with?('amq.gen') From fa39e5798c74ad6603feb92849feaa9e8de20f29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Ho=CC=88rberg?= Date: Wed, 5 Aug 2015 13:20:26 +0200 Subject: [PATCH 13/16] use cluster name as agent_human_labels --- plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb index 57616dc..5d3c987 100755 --- a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb +++ b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb @@ -36,8 +36,7 @@ class Agent < NewRelic::Plugin::Agent::Base agent_version '1.0.5' agent_config_options :management_api_url, :debug agent_human_labels('RabbitMQ') do - uri = URI.parse(management_api_url) - "#{uri.host}:#{uri.port}" + rmq_manager.overview["cluster_name"] end def poll_cycle From 37cfbb998df5d8c37d39135bea62566f06678dc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Ho=CC=88rberg?= Date: Wed, 5 Aug 2015 13:21:02 +0200 Subject: [PATCH 14/16] report stats for all nodes in the cluster --- .../pivotal_rabbitmq_plugin.rb | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb index 5d3c987..4c29240 100755 --- a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb +++ b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb @@ -53,11 +53,7 @@ def poll_cycle report_metric_check_debug 'Message Rate/Publish', 'messages/sec', publish_rate report_metric_check_debug 'Message Rate/Return', 'messages/sec', return_unroutable_rate - report_metric_check_debug 'Node/File Descriptors', 'file_descriptors', node_info('fd_used') - report_metric_check_debug 'Node/Sockets', 'sockets', node_info('sockets_used') - report_metric_check_debug 'Node/Erlang Processes', 'processes', node_info('proc_used') - report_metric_check_debug 'Node/Memory Used', 'bytes', node_info('mem_used') - + report_nodes report_queues rescue => e @@ -131,13 +127,13 @@ def return_unroutable_rate rate_for 'return_unroutable' end - def report_node - default_node_name = @overview['node'] - node_info = rmq_manager.node(default_node_name) - report_metric_check_debug 'Node/File Descriptors', 'file_descriptors', node_info['fd_used'] - report_metric_check_debug 'Node/Sockets', 'sockets', node_info['sockets_used'] - report_metric_check_debug 'Node/Erlang Processes', 'processes', node_info['proc_used'] - report_metric_check_debug 'Node/Memory Used', 'bytes', node_info['mem_used'] + def report_nodes + rmq_manager.nodes.each do |node| + report_metric_check_debug mk_path('Node', node['name'], 'File Descriptors'), 'file_descriptors', node_info['fd_used'] + report_metric_check_debug mk_path('Node', node['name'], 'Sockets'), 'sockets', node_info['sockets_used'] + report_metric_check_debug mk_path('Node', node['name'], 'Erlang Processes'), 'processes', node_info['proc_used'] + report_metric_check_debug mk_path('Node', node['name'], 'Memory Used'), 'bytes', node_info['mem_used'] + end end def report_queues From 378b31354b90a79b013253efa6603d886e0a4214 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Ho=CC=88rberg?= Date: Wed, 5 Aug 2015 13:24:47 +0200 Subject: [PATCH 15/16] added back overview caching that disappeared in a merge --- plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb index 4c29240..4674bef 100755 --- a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb +++ b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb @@ -44,6 +44,7 @@ def poll_cycle puts "[RabbitMQ] Debug Mode On: Metric data will not be sent to new relic" end + @overview = rmq_manager.overview report_metric_check_debug 'Queued Messages/Ready', 'messages', queue_size_ready report_metric_check_debug 'Queued Messages/Unacknowledged', 'messages', queue_size_unacknowledged From f1523d587fcce0fc10cf23722d24219eb3b574ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Ho=CC=88rberg?= Date: Wed, 5 Aug 2015 18:01:14 +0200 Subject: [PATCH 16/16] typo on node info --- .../pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb index 4674bef..4f40284 100755 --- a/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb +++ b/plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb @@ -129,11 +129,11 @@ def return_unroutable_rate end def report_nodes - rmq_manager.nodes.each do |node| - report_metric_check_debug mk_path('Node', node['name'], 'File Descriptors'), 'file_descriptors', node_info['fd_used'] - report_metric_check_debug mk_path('Node', node['name'], 'Sockets'), 'sockets', node_info['sockets_used'] - report_metric_check_debug mk_path('Node', node['name'], 'Erlang Processes'), 'processes', node_info['proc_used'] - report_metric_check_debug mk_path('Node', node['name'], 'Memory Used'), 'bytes', node_info['mem_used'] + rmq_manager.nodes.each do |n| + report_metric_check_debug mk_path('Node', n['name'], 'File Descriptors'), 'file_descriptors', n['fd_used'] + report_metric_check_debug mk_path('Node', n['name'], 'Sockets'), 'sockets', n['sockets_used'] + report_metric_check_debug mk_path('Node', n['name'], 'Erlang Processes'), 'processes', n['proc_used'] + report_metric_check_debug mk_path('Node', n['name'], 'Memory Used'), 'bytes', n['mem_used'] end end