class NewRelicRMQPlugin::Agent::Agent
> Import the NewRelic Agent
Base¶ ↑
Public Instance Methods
poll_cycle()
click to toggle source
# File lib/newrelic-rmq-plugin/agent.rb, line 27 def poll_cycle # => Collect Per-Queue Metrics per_queue # => Collect Global Metrics global_metrics # => Collect Cluster Status cluster_status # => Reset @overview = nil end
Private Instance Methods
cluster_status()
click to toggle source
> Cluster Status Monitoring¶ ↑
# File lib/newrelic-rmq-plugin/agent.rb, line 78 def cluster_status report_metric 'Cluster Status/Partitioned', 'nodes', rmq_manager.nodes.count { |n| Array(n['partitions']).any? } report_metric 'Cluster Status/Stopped', 'nodes', rmq_manager.nodes.count { |n| !n['running'] } end
global_metrics()
click to toggle source
> Global Metrics¶ ↑
# File lib/newrelic-rmq-plugin/agent.rb, line 48 def global_metrics # rubocop: disable AbcSize report_metric 'Global Queue Size/Total', 'messages', overview['queue_totals']['messages'] report_metric 'Global Queue Size Components/Ready', 'messages', overview['queue_totals']['messages_ready'] report_metric 'Global Queue Size Components/Unacked', 'messages', overview['queue_totals']['messages_unacknowledged'] report_metric 'Global Message Rate/Deliver', 'messages/sec', rate_for('deliver') report_metric 'Global Message Rate/Acknowledge', 'messages/sec', rate_for('ack') report_metric 'Global Message Rate/Return', 'messages/sec', rate_for('return_unroutable') overview['object_totals'].each do |obj| report_metric "Global Object Totals/#{obj[0].capitalize}", nil, obj[1] end end
overview()
click to toggle source
per_queue()
click to toggle source
> Per-Queue Metrics¶ ↑
# File lib/newrelic-rmq-plugin/agent.rb, line 63 def per_queue # rubocop: disable AbcSize rmq_manager.queues.each do |queue| queue_name = queue['name'].split('queue.').last report_metric "Queue Size/#{queue_name}/Total", 'messages', queue['messages'] report_metric "Queue Size Components/#{queue_name}/Ready", 'messages', queue['messages_ready'] report_metric "Queue Size Components/#{queue_name}/Unacked", 'messages', queue['messages_unacknowledged'] report_metric "Message Rate/#{queue_name}/Deliver", 'messages/sec', rate_for('deliver', queue) report_metric "Message Rate/#{queue_name}/Acknowledge", 'messages/sec', rate_for('ack', queue) report_metric "Message Rate/#{queue_name}/Return", 'messages/sec', rate_for('return_unroutable', queue) end end
rate_for(type, source = overview)
click to toggle source