Class: Eye::SystemResources::Cache

Inherits:
Object
  • Object
show all
Includes:
Celluloid
Defined in:
lib/eye/system_resources.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCache

Returns a new instance of Cache.



83
84
85
86
# File 'lib/eye/system_resources.rb', line 83

def initialize
  clear
  setup_expire
end

Instance Attribute Details

#expireObject (readonly)

Returns the value of attribute expire.



81
82
83
# File 'lib/eye/system_resources.rb', line 81

def expire
  @expire
end

Instance Method Details

#children(pid) ⇒ Object



114
115
116
117
118
119
120
# File 'lib/eye/system_resources.rb', line 114

def children(pid)
  if pid
    @ppids[pid] ||= Eye::Sigar.proc_list("State.Ppid.eq=#{pid}")
  else
    []
  end
end

#clearObject



94
95
96
97
98
# File 'lib/eye/system_resources.rb', line 94

def clear
  @memory = {}
  @cpu = {}
  @ppids = {}
end

#proc_cpu(pid) ⇒ Object



107
108
109
110
111
112
# File 'lib/eye/system_resources.rb', line 107

def proc_cpu(pid)
  @cpu[pid] ||= Eye::Sigar.proc_cpu(pid) if pid

rescue ArgumentError
  # when incorrect PID, just skip
end

#proc_mem(pid) ⇒ Object



100
101
102
103
104
105
# File 'lib/eye/system_resources.rb', line 100

def proc_mem(pid)
  @memory[pid] ||= Eye::Sigar.proc_mem(pid) if pid

rescue ArgumentError
  # when incorrect PID, just skip
end

#setup_expire(expire = 5) ⇒ Object



88
89
90
91
92
# File 'lib/eye/system_resources.rb', line 88

def setup_expire(expire = 5)
  @expire = expire
  @timer.cancel if @timer
  @timer = every(@expire) { clear }
end