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, line 5
def initialize
  @starttime = Time.now.to_i
  @validated = 0
  @unvalidated = 0
  @filtered = 0
  @passed = 0
  @total = 0
  @replies = 0
  @ttlexpired = 0

  @mutex = Mutex.new
end

Public Instance Methods

filtered() click to toggle source

Records a message that didnt pass the filters

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

Records a message that passed the filters

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

Records receipt of a message

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

Records sending a message

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

Returns a hash with all stats

# File lib/mcollective/runnerstats.rb, line 62
def to_hash
  stats = {:validated => @validated,
    :unvalidated => @unvalidated,
    :passed => @passed,
    :filtered => @filtered,
    :starttime => @starttime,
    :total => @total,
    :ttlexpired => @ttlexpired,
    :replies => @replies}

  reply = {:stats => stats,
    :threads => [],
    :pid => Process.pid,
    :times => {} }

  ::Process.times.each_pair{|k,v|
    k = k.to_sym
    reply[:times][k] = v
  }

  Thread.list.each do |t|
    reply[:threads] << "#{t.inspect}"
  end

  reply[:agents] = Agents.agentlist
  reply
end
ttlexpired() click to toggle source

Records a message that failed TTL checks

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

Records a message that validated ok

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