passenger_dyno 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
data/lib/dyno_check.rb CHANGED
@@ -13,8 +13,8 @@ class DynoCheck
13
13
  MongoMapper.database = database_config['database']
14
14
 
15
15
  @servers = dyno_config['servers']
16
- @passenger_memory_stats_output = `passenger-memory-stats`
17
- @passenger_status_output = `passenger-status`
16
+ @passenger_memory_stats_output = `sudo passenger-memory-stats`
17
+ @passenger_status_output = `sudo passenger-status`
18
18
  end
19
19
 
20
20
  def run
@@ -43,36 +43,49 @@ class DynoCheck
43
43
  # Line 4 Total memory used by Nginx worker processes
44
44
  # Line 5 Total Passenger rails processes
45
45
  # Line 6 Total memory used by Passenger rails processes
46
- overview_stats = `grep '###' "#{@passenger_memory_stats_output}" | awk '{print $3"\t"$6}'`.split("\n")
46
+ overview_stats = `echo "#{@passenger_memory_stats_output}" | grep '###' | awk '{print $3"\t"$6}'`.split("\n")
47
47
 
48
- apache_workers = overview_stats[0].split("\t")[0]
49
- apache_memory = overview_stats[1].split("\t")[1]
50
- passenger_process = overview_stats[4].split("\t")[0]
51
- passenger_memory = overview_stats[5].split("\t")[1]
48
+ apache_workers_count = overview_stats[0].split("\t")[0]
49
+ apache_memory_used = overview_stats[1].split("\t")[1]
52
50
 
53
- @dyno_server_check.overview = PassengerOverview.new(:total_apache_processes => apache_workers,
54
- :total_apache_memory => apache_memory,
55
- :total_passenger_processes => passenger_process,
56
- :total_passenger_memory => passenger_memory)
51
+ # here we really only want the passenger processes for our server (minus application and spawn server)
52
+ passenger_process_count = `echo "#{@passenger_memory_stats_output}" | grep 'Rails:' | grep 'govpulse'`.split("\n").length
53
+
54
+ passenger_memory_used = overview_stats[5].split("\t")[1]
55
+
56
+ # here we really only want the total mem for the threads for our server
57
+ memory_threads = `echo "#{@passenger_memory_stats_output}" | grep 'MB.*Rails' | awk '{ print $1"\t"$4"\t"$7 }' | sort`.split("\n")
58
+ passenger_memory_used_for_server = []
59
+ memory_threads.length.times do |i|
60
+ memory_thread = memory_threads[i].split("\t")
61
+ passenger_memory_used_for_server = passenger_memory_used_for_server + memory_thread[1]
62
+ end
63
+
64
+
65
+ @dyno_server_check.passenger_overview = PassengerOverview.new(:total_apache_processes => apache_workers_count,
66
+ :total_apache_memory => apache_memory_used,
67
+ :total_passenger_processes => passenger_process_count,
68
+ :total_passenger_memory => passenger_memory_used,
69
+ :total_passenger_memory_for_server => passenger_memory_used_for_server)
57
70
  end
58
71
 
59
72
  def thread_check
60
73
  # prints PID PrivateMem ProcessName
61
- memory_threads = `grep 'MB.*Rails' "#{@passenger_memory_stats_output}" | awk '{ print $1"\t"$4"\t"$7 }'`.split('\n')
74
+ memory_threads = `echo "#{@passenger_memory_stats_output}" | grep 'MB.*Rails' | awk '{ print $1"\t"$4"\t"$7 }' | sort`.split("\n")
62
75
 
63
76
  # prints PID Sessions Processed Uptime(min) Uptime(sec) seperated by tabs
64
- status_threads = `grep 'PID: ' "#{@passenger_status_output}" | awk '{ print $2"\t"$4"\t"6"\t"$8"\t"$9 }'`.split('\n')
77
+ status_threads = `echo "#{@passenger_status_output}" | grep 'PID: ' | awk '{ print $2"\t"$4"\t"$6"\t"$8"\t"$9 }' | sort`.split("\n")
65
78
 
66
79
  memory_threads.length.times do |i|
67
- memory_thread = memory_threads[i-1].split("\t")
80
+ memory_thread = memory_threads[i].split("\t")
68
81
  pid = memory_thread[0]
69
82
  private_mem = memory_thread[1]
70
83
  process_name = memory_thread[2]
71
84
 
72
- status_thread = status_threads[i-1].split("\t")
85
+ status_thread = status_threads[i].split("\t")
73
86
  sessions_waiting = status_thread[1]
74
87
  sessions_processed = status_thread[2]
75
- uptime = (status_thread[3] * 60) + status_thread[4]
88
+ uptime = (status_thread[3].slice(0...-1) * 60) + status_thread[4].slice(0...-1)
76
89
 
77
90
  @dyno_server_check.passenger_threads << PassengerThread.new(:pid => pid,
78
91
  :private_mem => private_mem,
@@ -4,6 +4,7 @@ class PassengerOverview < MongoStore
4
4
  key :total_apache_processes, Integer
5
5
  key :total_apache_memory, Integer
6
6
 
7
- key :total_passenger_processes, Integer
8
- key :total_passenger_memory, Integer
7
+ key :total_passenger_processes, Integer
8
+ key :total_passenger_memory, Integer
9
+ key :passenger_memory_used_for_server, Integer
9
10
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{passenger_dyno}
8
- s.version = "0.0.1"
8
+ s.version = "0.0.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Bob Burbach"]
12
- s.date = %q{2010-04-10}
12
+ s.date = %q{2010-04-11}
13
13
  s.description = %q{ Store passenger memory usage and other useful statitics in MongoDb. Use
14
14
  passenger_dyno_clinet to see those stats rendered with javascript!
15
15
  }
@@ -34,6 +34,7 @@ Gem::Specification.new do |s|
34
34
  "lib/passenger_dyno.rb",
35
35
  "passenger_dyno.gemspec",
36
36
  "pkg/passenger_dyno-0.0.1.gem",
37
+ "pkg/passenger_dyno-0.0.2.gem",
37
38
  "test/helper.rb",
38
39
  "test/test_passenger_dyno.rb",
39
40
  "utilities/dyno_daemon.rb",
Binary file
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 1
9
- version: 0.0.1
8
+ - 2
9
+ version: 0.0.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Bob Burbach
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-04-10 00:00:00 -07:00
17
+ date: 2010-04-11 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -110,6 +110,7 @@ files:
110
110
  - lib/passenger_dyno.rb
111
111
  - passenger_dyno.gemspec
112
112
  - pkg/passenger_dyno-0.0.1.gem
113
+ - pkg/passenger_dyno-0.0.2.gem
113
114
  - test/helper.rb
114
115
  - test/test_passenger_dyno.rb
115
116
  - utilities/dyno_daemon.rb