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.



114
115
116
117
# File 'lib/new_relic/agent/samplers/memory_sampler.rb', line 114

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

Instance Method Details

#get_memoryObject

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



121
122
123
124
125
126
127
128
129
# File 'lib/new_relic/agent/samplers/memory_sampler.rb', line 121

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



131
132
133
# File 'lib/new_relic/agent/samplers/memory_sampler.rb', line 131

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