class MCollective::RunnerStats

Class to store stats about the mcollectived, it should live in the PluginManager so that agents etc can get hold of it and return the stats to callers

Public Class Methods

new() click to toggle source
   # File lib/mcollective/runnerstats.rb
 5 def initialize
 6   @starttime = Time.now.to_i
 7   @validated = 0
 8   @unvalidated = 0
 9   @filtered = 0
10   @passed = 0
11   @total = 0
12   @replies = 0
13   @ttlexpired = 0
14 
15   @mutex = Mutex.new
16 end

Public Instance Methods

filtered() click to toggle source

Records a message that didnt pass the filters

   # File lib/mcollective/runnerstats.rb
31 def filtered
32   Log.debug("Incrementing filtered stat")
33   @filtered += 1
34 end
passed() click to toggle source

Records a message that passed the filters

   # File lib/mcollective/runnerstats.rb
25 def passed
26   Log.debug("Incrementing passed stat")
27   @passed += 1
28 end
received() click to toggle source

Records receipt of a message

   # File lib/mcollective/runnerstats.rb
48 def received
49   Log.debug("Incrementing total stat")
50   @total += 1
51 end
sent() click to toggle source

Records sending a message

   # File lib/mcollective/runnerstats.rb
54 def sent
55   @mutex.synchronize do
56     Log.debug("Incrementing replies stat")
57     @replies += 1
58   end
59 end
to_hash() click to toggle source

Returns a hash with all stats

   # File lib/mcollective/runnerstats.rb
62 def to_hash
63   stats = {:validated => @validated,
64     :unvalidated => @unvalidated,
65     :passed => @passed,
66     :filtered => @filtered,
67     :starttime => @starttime,
68     :total => @total,
69     :ttlexpired => @ttlexpired,
70     :replies => @replies}
71 
72   reply = {:stats => stats,
73     :threads => [],
74     :pid => Process.pid,
75     :times => {} }
76 
77   ::Process.times.each_pair{|k,v|
78     k = k.to_sym
79     reply[:times][k] = v
80   }
81 
82   Thread.list.each do |t|
83     reply[:threads] << "#{t.inspect}"
84   end
85 
86   reply[:agents] = Agents.agentlist
87   reply
88 end
ttlexpired() click to toggle source

Records a message that failed TTL checks

   # File lib/mcollective/runnerstats.rb
19 def ttlexpired
20   Log.debug("Incrementing ttl expired stat")
21   @ttlexpired += 1
22 end
unvalidated() click to toggle source
   # File lib/mcollective/runnerstats.rb
42 def unvalidated
43   Log.debug("Incrementing unvalidated stat")
44   @unvalidated += 1
45 end
validated() click to toggle source

Records a message that validated ok

   # File lib/mcollective/runnerstats.rb
37 def validated
38   Log.debug("Incrementing validated stat")
39   @validated += 1
40 end