Module: PassengerStatus

Defined in:
lib/passenger_status.rb,
lib/passenger_status/version.rb

Constant Summary collapse

VERSION =
"0.0.2"

Class Method Summary collapse

Class Method Details

.passenger_memoryObject

Passenger Memory Stats



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/passenger_status.rb', line 36

def self.passenger_memory
  
  pass_mem = Hash.new
  mem_status = `rvmsudo passenger-memory-stats`
  unless $?.success?
    return("Error executing commmand")
    exit 1
  end
  #There must be a better way

  #PassengerWatchdog
  mem_status =~ /(^.*?PassengerWatchdog)/
  watch_dog = $1.scan(/([0-9]+.[0-9])+/)
  watch_vm = watch_dog[1]
  watch_private = watch_dog[2]
  pass_mem[:PassengerWatchdog] = {:vm_size=>watch_vm,:private=>watch_private}

  #PassengerHelperAgent
  mem_status =~ /(^.*?PassengerHelperAgent)/
  helper_agent = $1.scan(/([0-9]+.[0-9])+/)
  helper_vm = helper_agent[1]
  helper_private = helper_agent[2]
  pass_mem[:PassengerHelperAgent] = {:vm_size=>helper_vm,:private=>helper_private}
  #Passenger spawn server
  mem_status =~ /(^.*?Passenger spawn server)/
  spawn_server = $1.scan(/([0-9]+.[0-9])+/)
  spawn_vm = spawn_server[1]
  spawn_private = spawn_server[2]
  pass_mem[:PassengerSpawnServer] = {:vm_size=>spawn_vm,:private=>spawn_private}

  #PassengerLoggingAgent
  mem_status =~ /(^.*?PassengerLoggingAgent)/
  logging_agent = $1.scan(/([0-9]+.[0-9])+/)
  logging_vm = logging_agent[1]
  logging_private = logging_agent[2]
  pass_mem[:PassengerSpawnServer] = {:vm_size=>spawn_vm,:private=>spawn_private}
  
  #Rack
  #Assume only one application is running
  mem_status =~ /(^.*?Rack)/
  rack = $1.scan(/([0-9]+.[0-9])+/)
  rack_vm = rack[1]
  rack_private = rack[2]
  pass_mem[:Rack] = {:vm_size=>rack_vm,:private=>rack_private}
  return(pass_mem)

end

.passenger_statObject

Passenger Status



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/passenger_status.rb', line 3

def self.passenger_stat
  pass_stat = Hash.new
  status = `rvmsudo passenger-status`
  unless $?.success?
    return("Error executing commmand")
    exit 1
  end

  status =~ /max\s+=\s+(\d+)/
  pass_stat[:max] = $1

  status =~ /count\s+=\s+(\d+)/
  pass_stat[:count] = $1

  status =~ /active\s+=\s+(\d+)/
  pass_stat[:active] = $1

  status =~ /inactive\s+=\s+(\d+)/
  pass_stat[:inactive] = $1

  status =~ /(Waiting on global queue:)\s+(\d+)/ 
  pass_stat[:queued] = $2

  status =~ /\Sessions:\s+(\d+)/
  pass_stat[:sessions] = $1
 
  status =~ /\Processed:\s+(\d+)/
  pass_stat[:processed] = $1

  return(pass_stat)
end