Module: ZabbixRubyClient::Plugins::Rabbitmq

Extended by:
ZabbixRubyClient::PluginBase, Rabbitmq
Included in:
Rabbitmq
Defined in:
lib/zabbix-ruby-client/plugins/rabbitmq.rb

Instance Method Summary collapse

Methods included from ZabbixRubyClient::PluginBase

getline, getlines, httprequest, os, perform, time

Instance Method Details

#collect(*args) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/zabbix-ruby-client/plugins/rabbitmq.rb', line 12

def collect(*args)
  host, rabbitmqadmin, , pass = *args
  info = get_info(rabbitmqadmin, , pass)
  back = []
  if info
    back << "#{host} rabbitmq.version #{time} #{info['rabbitmq_version']}"
    back << "#{host} rabbitmq.erlang.version #{time} #{info['erlang_version']}"
    %w(ack deliver deliver_get publish redeliver).each do |i|
      if info['message_stats'][i]
        back << "#{host} rabbitmq.message.#{i} #{time} #{info['message_stats'][i]}"
        back << "#{host} rabbitmq.message.#{i}.rate #{time} #{info['message_stats']["#{i}_details"]['rate'].round}"
      end
    end
    %w(messages messages_ready messages_unacknowledged).each do |i|
      back << "#{host} rabbitmq.queue.total.#{i} #{time} #{info['queue_totals'][i]}"
    end
    %w(channels connections consumers exchanges queues).each do |i|
      back << "#{host} rabbitmq.total.#{i} #{time} #{info['object_totals'][i]}"
    end
    back << "#{host} rabbitmq.total.listeners #{time} #{info['listeners'].count}"
  end
  back
end