Class: NewRelic::Agent::Samplers::MemorySampler::ShellPS

Inherits:
Base
  • Object
show all
Defined in:
lib/new_relic/agent/samplers/memory_sampler.rb

Instance Method Summary collapse

Methods inherited from Base

#can_run?, #get_sample

Constructor Details

#initialize(command) ⇒ ShellPS

Returns a new instance of ShellPS.



97
98
99
100
# File 'lib/new_relic/agent/samplers/memory_sampler.rb', line 97

def initialize(command)
  super()
  @command = command
end

Instance Method Details

#get_memoryObject

Returns the amount of resident memory this process is using in MB



103
104
105
106
107
108
109
110
# File 'lib/new_relic/agent/samplers/memory_sampler.rb', line 103

def get_memory
  process = $$
  memory = `#{@command} #{process}`.split("\n")[1].to_f / 1024.0 rescue nil
  # if for some reason the ps command doesn't work on the resident os,
  # then don't execute it any more.
  raise "Faulty command: `#{@command} #{process}`" if memory.nil? || memory <= 0
  memory
end

#to_sObject



111
112
113
# File 'lib/new_relic/agent/samplers/memory_sampler.rb', line 111

def to_s
  "shell command sampler: #{@command}"
end