passenger_dyno 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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