eye 0.2.4 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -3
  3. data/bin/eye +7 -0
  4. data/bin/loader_eye +7 -5
  5. data/examples/notify.eye +1 -1
  6. data/eye.gemspec +4 -4
  7. data/lib/eye.rb +1 -3
  8. data/lib/eye/controller.rb +4 -0
  9. data/lib/eye/controller/status.rb +1 -1
  10. data/lib/eye/dsl.rb +1 -1
  11. data/lib/eye/dsl/main.rb +0 -13
  12. data/lib/eye/dsl/opts.rb +4 -2
  13. data/lib/eye/loader.rb +2 -3
  14. data/lib/eye/notify.rb +3 -3
  15. data/lib/eye/process/monitor.rb +5 -3
  16. data/lib/eye/process/notify.rb +5 -5
  17. data/lib/eye/process/scheduler.rb +4 -4
  18. data/lib/eye/process/system.rb +3 -10
  19. data/lib/eye/process/trigger.rb +1 -1
  20. data/lib/eye/process/watchers.rb +1 -1
  21. data/lib/eye/server.rb +9 -8
  22. data/lib/eye/system.rb +2 -7
  23. data/lib/eye/system_resources.rb +3 -3
  24. data/lib/eye/utils/celluloid_chain.rb +2 -2
  25. metadata +7 -241
  26. data/lib/eye/io/unix_server.rb +0 -44
  27. data/lib/eye/io/unix_socket.rb +0 -39
  28. data/spec/checker/cpu_spec.rb +0 -58
  29. data/spec/checker/file_ctime_spec.rb +0 -34
  30. data/spec/checker/file_size_spec.rb +0 -107
  31. data/spec/checker/http_spec.rb +0 -114
  32. data/spec/checker/memory_spec.rb +0 -64
  33. data/spec/checker/socket_spec.rb +0 -116
  34. data/spec/checker_spec.rb +0 -187
  35. data/spec/child_process/child_process_spec.rb +0 -46
  36. data/spec/client_server_spec.rb +0 -33
  37. data/spec/controller/commands_spec.rb +0 -92
  38. data/spec/controller/controller_spec.rb +0 -157
  39. data/spec/controller/find_objects_spec.rb +0 -176
  40. data/spec/controller/group_spec.rb +0 -110
  41. data/spec/controller/intergration_spec.rb +0 -366
  42. data/spec/controller/load_spec.rb +0 -371
  43. data/spec/controller/races_spec.rb +0 -70
  44. data/spec/controller/stop_on_delete_spec.rb +0 -157
  45. data/spec/dsl/chain_spec.rb +0 -146
  46. data/spec/dsl/checks_spec.rb +0 -219
  47. data/spec/dsl/config_spec.rb +0 -44
  48. data/spec/dsl/dsl_spec.rb +0 -73
  49. data/spec/dsl/getter_spec.rb +0 -223
  50. data/spec/dsl/integration_spec.rb +0 -376
  51. data/spec/dsl/load_spec.rb +0 -52
  52. data/spec/dsl/notify_spec.rb +0 -114
  53. data/spec/dsl/process_spec.rb +0 -380
  54. data/spec/dsl/sub_procs_spec.rb +0 -93
  55. data/spec/dsl/with_server_spec.rb +0 -128
  56. data/spec/example/em.rb +0 -57
  57. data/spec/example/forking.rb +0 -20
  58. data/spec/example/sample.rb +0 -154
  59. data/spec/fixtures/dsl/0.rb +0 -8
  60. data/spec/fixtures/dsl/0a.rb +0 -8
  61. data/spec/fixtures/dsl/0c.rb +0 -8
  62. data/spec/fixtures/dsl/1.rb +0 -5
  63. data/spec/fixtures/dsl/bad.eye +0 -6
  64. data/spec/fixtures/dsl/configs/1.eye +0 -3
  65. data/spec/fixtures/dsl/configs/2.eye +0 -1
  66. data/spec/fixtures/dsl/configs/3.eye +0 -1
  67. data/spec/fixtures/dsl/configs/4.eye +0 -3
  68. data/spec/fixtures/dsl/empty.eye +0 -20
  69. data/spec/fixtures/dsl/include_test.eye +0 -5
  70. data/spec/fixtures/dsl/include_test/1.rb +0 -6
  71. data/spec/fixtures/dsl/include_test/ha.rb +0 -4
  72. data/spec/fixtures/dsl/include_test2.eye +0 -5
  73. data/spec/fixtures/dsl/integration.eye +0 -30
  74. data/spec/fixtures/dsl/integration2.eye +0 -32
  75. data/spec/fixtures/dsl/integration_locks.eye +0 -30
  76. data/spec/fixtures/dsl/integration_sor.eye +0 -32
  77. data/spec/fixtures/dsl/integration_sor2.eye +0 -27
  78. data/spec/fixtures/dsl/integration_sor3.eye +0 -32
  79. data/spec/fixtures/dsl/load.eye +0 -25
  80. data/spec/fixtures/dsl/load2.eye +0 -7
  81. data/spec/fixtures/dsl/load2_dup2.eye +0 -13
  82. data/spec/fixtures/dsl/load2_dup_pid.eye +0 -7
  83. data/spec/fixtures/dsl/load3.eye +0 -10
  84. data/spec/fixtures/dsl/load4.eye +0 -7
  85. data/spec/fixtures/dsl/load5.eye +0 -8
  86. data/spec/fixtures/dsl/load6.eye +0 -17
  87. data/spec/fixtures/dsl/load_dubls.eye +0 -36
  88. data/spec/fixtures/dsl/load_dup_ex_names.eye +0 -15
  89. data/spec/fixtures/dsl/load_error.eye +0 -5
  90. data/spec/fixtures/dsl/load_error_folder/load3.eye +0 -10
  91. data/spec/fixtures/dsl/load_error_folder/load4.eye +0 -7
  92. data/spec/fixtures/dsl/load_folder/load3.eye +0 -10
  93. data/spec/fixtures/dsl/load_folder/load4.eye +0 -7
  94. data/spec/fixtures/dsl/load_int.eye +0 -8
  95. data/spec/fixtures/dsl/load_int2.eye +0 -13
  96. data/spec/fixtures/dsl/load_logger.eye +0 -26
  97. data/spec/fixtures/dsl/load_logger2.eye +0 -3
  98. data/spec/fixtures/dsl/long_load.eye +0 -5
  99. data/spec/fixtures/dsl/subfolder1/proc1.rb +0 -3
  100. data/spec/fixtures/dsl/subfolder2.eye +0 -9
  101. data/spec/fixtures/dsl/subfolder2/common.rb +0 -1
  102. data/spec/fixtures/dsl/subfolder2/proc2.rb +0 -3
  103. data/spec/fixtures/dsl/subfolder2/sub/proc3.rb +0 -6
  104. data/spec/fixtures/dsl/subfolder3.eye +0 -8
  105. data/spec/fixtures/dsl/subfolder3/common.rb +0 -1
  106. data/spec/fixtures/dsl/subfolder3/proc4.rb +0 -3
  107. data/spec/fixtures/dsl/subfolder3/sub/proc5.rb +0 -6
  108. data/spec/fixtures/dsl/subfolder4.eye +0 -6
  109. data/spec/fixtures/dsl/subfolder4/a.rb +0 -2
  110. data/spec/fixtures/dsl/subfolder4/b.rb +0 -1
  111. data/spec/fixtures/dsl/subfolder4/c.rb +0 -1
  112. data/spec/mock_spec.rb +0 -31
  113. data/spec/notify/jabber_spec.rb +0 -25
  114. data/spec/notify/mail_spec.rb +0 -26
  115. data/spec/notify_spec.rb +0 -90
  116. data/spec/process/checks/child_checks_spec.rb +0 -79
  117. data/spec/process/checks/cpu_spec.rb +0 -114
  118. data/spec/process/checks/ctime_spec.rb +0 -43
  119. data/spec/process/checks/fsize_spec.rb +0 -22
  120. data/spec/process/checks/http_spec.rb +0 -52
  121. data/spec/process/checks/intergration_spec.rb +0 -32
  122. data/spec/process/checks/memory_spec.rb +0 -127
  123. data/spec/process/child_process_spec.rb +0 -125
  124. data/spec/process/config_spec.rb +0 -74
  125. data/spec/process/controller_spec.rb +0 -173
  126. data/spec/process/monitoring_spec.rb +0 -180
  127. data/spec/process/notify_spec.rb +0 -27
  128. data/spec/process/restart_spec.rb +0 -186
  129. data/spec/process/scheduler_spec.rb +0 -178
  130. data/spec/process/start_spec.rb +0 -261
  131. data/spec/process/states_history_spec.rb +0 -123
  132. data/spec/process/stop_spec.rb +0 -156
  133. data/spec/process/system_spec.rb +0 -136
  134. data/spec/process/triggers/flapping_spec.rb +0 -242
  135. data/spec/process/update_config_spec.rb +0 -62
  136. data/spec/spec_helper.rb +0 -128
  137. data/spec/support/rr_celluloid.rb +0 -15
  138. data/spec/support/spec_support.rb +0 -163
  139. data/spec/system_resources_spec.rb +0 -56
  140. data/spec/system_spec.rb +0 -174
  141. data/spec/utils/alive_array_spec.rb +0 -49
  142. data/spec/utils/celluloid_chain_spec.rb +0 -89
  143. data/spec/utils/tail_spec.rb +0 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7f123c5b720394e6881f617954469fac8a054e5b
4
- data.tar.gz: d717bad68e6f059afd86ea9b05975b59c5f8e36d
3
+ metadata.gz: ae0406a7f4bd886b167c02a54f60eed9c31c1f50
4
+ data.tar.gz: 37f991e3ab296e74f568ea84c40e6b57d9240ccb
5
5
  SHA512:
6
- metadata.gz: b56a789a1a18fd4acdda18ea67943bf1c4861e9fe46e8dce7c4b815ca17a1c2367a013e91fa3006669af4c61d470b3b8425792d1c4154a63090023799cf34416
7
- data.tar.gz: fa7ef643b765bfc27bb4c2bab36d73f9277c82d1ca22df3dd857b9597e98f00e5896811f77fdc26b24785e504153bfd17a77b883bec693662e904ac50a836347
6
+ metadata.gz: d0fca55046216067bc3a924a3526d1e483f8aceef3a72bac53462978f35df794fd2a4bbfe0e776f989273abb5f8709b7c676302caeffe098c1b6dd07955ccd65
7
+ data.tar.gz: 5311297341068796e16ae6e13035fbbde98b71891caa3738229bafa7f3762a88c97839b71ecae890f4fb114ef6d60b5aec6f8dfa119e4c7b2ac80f104154ea82
data/README.md CHANGED
@@ -1,8 +1,6 @@
1
- Eye
1
+ Eye [![Build Status](https://secure.travis-ci.org/kostya/eye.png?branch=master)](http://travis-ci.org/kostya/eye)
2
2
  ===
3
3
 
4
- [![Build Status](https://secure.travis-ci.org/kostya/eye.png?branch=master)](http://travis-ci.org/kostya/eye)
5
-
6
4
  Process monitoring tool. An alternative to God and Bluepill. With Bluepill like config syntax. Requires MRI Ruby >= 1.9.2. Uses Celluloid and Celluloid::IO.
7
5
 
8
6
  Little demo, shows general commands and how chain works:
data/bin/eye CHANGED
@@ -132,6 +132,13 @@ class Cli < Thor
132
132
  end
133
133
  end
134
134
 
135
+ desc "watch [MASK]", "interactive process info"
136
+ def watch(*args)
137
+ pid = Process.spawn("watch -n 1 --color #{$0} i #{args * ' '}")
138
+ Process.waitpid(pid)
139
+ rescue Interrupt
140
+ end
141
+
135
142
  private
136
143
 
137
144
  def client
@@ -40,6 +40,9 @@ Eye::Logger.link_logger(options[:logger]) if options[:logger]
40
40
 
41
41
  config = options[:config]
42
42
  config = File.expand_path(config) if config && !config.empty?
43
+
44
+ Eye::Control # preload
45
+
43
46
  if config
44
47
  res = server.command('load', config)
45
48
  exit if res[:error]
@@ -47,10 +50,9 @@ end
47
50
 
48
51
  Eye::Control.set_proc_line
49
52
 
50
- server.run!
53
+ server.async.run
51
54
 
52
- Kernel.trap("INT") do # for foregraund quit
53
- exit
54
- end
55
+ trap("INT"){ exit }
56
+ trap("USR2"){ GC.start }
55
57
 
56
- sleep
58
+ sleep
@@ -10,7 +10,7 @@ Eye.application :some do
10
10
  notify :errors
11
11
 
12
12
  process :some_process do
13
- notify :dev, :warn
13
+ notify :dev, :info
14
14
 
15
15
  ...
16
16
  end
@@ -8,9 +8,9 @@ Gem::Specification.new do |gem|
8
8
  %q{Process monitoring tool. An alternative to God and Bluepill. With Bluepill like config syntax. Requires MRI Ruby >= 1.9.2. Uses Celluloid and Celluloid::IO.}
9
9
  gem.homepage = "http://github.com/kostya/eye"
10
10
 
11
- gem.files = `git ls-files`.split($\).reject{|n| n =~ %r[png|gif\z]}
11
+ gem.files = `git ls-files`.split($\).reject{|n| n =~ %r[png|gif\z]}.reject{|n| n =~ %r[^(test|spec|features)/]}
12
12
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
13
+ #gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
14
  gem.name = "eye"
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = Eye::VERSION
@@ -19,8 +19,8 @@ Gem::Specification.new do |gem|
19
19
  gem.required_ruby_version = '>= 1.9.2' # because of celluloid
20
20
  gem.required_rubygems_version = '>= 1.3.6'
21
21
 
22
- gem.add_dependency 'celluloid', '~> 0.12.0'
23
- gem.add_dependency 'celluloid-io', '~> 0.12.0'
22
+ gem.add_dependency 'celluloid', '~> 0.13.0'
23
+ gem.add_dependency 'celluloid-io', '~> 0.13.0'
24
24
  gem.add_dependency 'state_machine', '< 1.2'
25
25
  gem.add_dependency 'activesupport', '~> 3.2.0'
26
26
  gem.add_dependency 'thor'
data/lib/eye.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Eye
2
- VERSION = "0.2.4"
2
+ VERSION = "0.3"
3
3
  ABOUT = "Eye v#{VERSION} (c) 2012-2013 @kostya"
4
4
 
5
5
  autoload :Process, 'eye/process'
@@ -21,5 +21,3 @@ module Eye
21
21
  autoload :Controller, 'eye/controller'
22
22
  autoload :Control, 'eye/control'
23
23
  end
24
-
25
- ENV_LANG = ENV['LANG'] # save original LANG, bug of celluloid 0.12
@@ -44,4 +44,8 @@ class Eye::Controller
44
44
  info "starting #{Eye::ABOUT} (#{$$})"
45
45
  end
46
46
 
47
+ def self_config
48
+ current_config[:config]
49
+ end
50
+
47
51
  end
@@ -89,7 +89,7 @@ private
89
89
 
90
90
  if data[:subtree].nil?
91
91
  str
92
- elsif data[:subtree].blank?
92
+ elsif data[:subtree].blank? && data[:type] != :application
93
93
  nil
94
94
  else
95
95
  [str, make_str(data[:subtree], level + 1)].compact * "\n"
@@ -52,4 +52,4 @@ class Eye::Dsl
52
52
  end
53
53
 
54
54
  # extend here global module
55
- Eye.send(:extend, Eye::Dsl::Main)
55
+ Eye.send(:extend, Eye::Dsl::Main)
@@ -41,18 +41,5 @@ module Eye::Dsl::Main
41
41
 
42
42
  Eye::Dsl.debug "<= config"
43
43
  end
44
-
45
- def logger=(log_path)
46
- STDERR.puts "Eye.logger= is deprecated!"
47
- @parsed_config ||= {}
48
- @parsed_config[:config] ||= {}
49
- @parsed_config[:config][:logger] = log_path
50
- end
51
44
 
52
- def logger_level=(log_level)
53
- STDERR.puts "Eye.logger_level= is deprecated!"
54
- @parsed_config ||= {}
55
- @parsed_config[:config] ||= {}
56
- @parsed_config[:config][:logger_level] = log_level
57
- end
58
45
  end
@@ -65,8 +65,10 @@ class Eye::Dsl::Opts < Eye::Dsl::PureOpts
65
65
  @config[:triggers].try :delete, type
66
66
  end
67
67
 
68
- def notify(contact, level = :crit)
69
- raise Eye::Dsl::Error, "level should be in #{[:warn, :crit]}" unless Eye::Process::Notify::LEVELS[level]
68
+ def notify(contact, level = :warn)
69
+ unless Eye::Process::Notify::LEVELS[level]
70
+ raise Eye::Dsl::Error, "level should be in #{Eye::Process::Notify::LEVELS.keys}"
71
+ end
70
72
 
71
73
  @config[:notify] ||= {}
72
74
  @config[:notify][contact.to_s] = level
@@ -1,9 +1,8 @@
1
1
  # mini bundler, for embedded server gem installation
2
2
 
3
- gem 'celluloid', '~> 0.12.0'
4
- gem 'celluloid-io', '~> 0.12.0'
3
+ gem 'celluloid', '~> 0.13.0'
4
+ gem 'celluloid-io', '~> 0.13.0'
5
5
  gem 'nio4r'
6
- gem 'facter'
7
6
  gem 'timers'
8
7
 
9
8
  gem 'state_machine', '< 1.2'
@@ -19,14 +19,14 @@ class Eye::Notify
19
19
  end
20
20
 
21
21
  def self.notify(contact, message_h)
22
- current_config = Eye::Control.current_config[:config] # Warning, using global reference here !!! (not so nice)
23
- needed_hash = (current_config[:contacts] || {})[contact.to_s]
22
+ self_config = Eye::Control.self_config
23
+ needed_hash = (self_config[:contacts] || {})[contact.to_s]
24
24
 
25
25
  return if needed_hash.blank?
26
26
 
27
27
  create_proc = lambda do |nh|
28
28
  type = nh[:type]
29
- config = (current_config[type] || {}).merge(nh[:opts] || {}).merge(:contact => nh[:contact])
29
+ config = (self_config[type] || {}).merge(nh[:opts] || {}).merge(:contact => nh[:contact])
30
30
  klass = get_class(type)
31
31
  notify = klass.new(config, message_h)
32
32
  notify.async_notify if notify
@@ -39,7 +39,7 @@ private
39
39
  # check that process runned
40
40
  unless process_realy_running?
41
41
  warn "check_alive: process(#{self.pid}) not found!"
42
- notify :warn, 'crashed!'
42
+ notify :info, 'crashed!'
43
43
  switch :crashed, 'crashed'
44
44
  else
45
45
  # check that pid_file still here
@@ -78,7 +78,7 @@ private
78
78
  if down?
79
79
  if self[:keep_alive]
80
80
  warn 'check crashed: process is down'
81
- schedule :start, 'crashed'
81
+ schedule :restore, 'crashed'
82
82
  else
83
83
  warn 'check crashed: process without keep_alive'
84
84
  schedule :unmonitor, 'crashed'
@@ -88,6 +88,8 @@ private
88
88
  end
89
89
  end
90
90
 
91
- public :check_crash # bug of celluloid 0.12
91
+ def restore
92
+ start if down?
93
+ end
92
94
 
93
95
  end
@@ -1,15 +1,15 @@
1
1
  module Eye::Process::Notify
2
2
 
3
3
  # notify to user:
4
- # 1) process crashed by itself, and we restart it [:warn]
5
- # 2) checker bounded to restart process [:crit]
6
- # 3) flapping + switch to unmonitored [:crit]
4
+ # 1) process crashed by itself, and we restart it [:info]
5
+ # 2) checker bounded to restart process [:warn]
6
+ # 3) flapping + switch to unmonitored [:error]
7
7
 
8
- LEVELS = {:warn => 0, :crit => 1}
8
+ LEVELS = {:debug => 0, :info => 1, :warn => 2, :error => 3, :fatal => 4}
9
9
 
10
10
  def notify(level, msg)
11
11
  # logging it
12
- error "NOTIFY: #{msg}" if ilevel(level) > 0
12
+ error "NOTIFY: #{msg}" if ilevel(level) > ilevel(:info)
13
13
 
14
14
  # send notifies
15
15
  if self[:notify].present?
@@ -44,9 +44,9 @@ module Eye::Process::Scheduler
44
44
  def scheduler_actions_list
45
45
  scheduler.list.map{|c| c[:args].first rescue nil }.compact
46
46
  end
47
-
48
- def finalize
49
- remove_scheduler
47
+
48
+ def self.included(base)
49
+ base.finalizer :remove_scheduler
50
50
  end
51
51
 
52
52
  attr_accessor :current_scheduled_command
@@ -61,7 +61,7 @@ private
61
61
  def remove_scheduler
62
62
  @scheduler.terminate if @scheduler && @scheduler.alive?
63
63
  end
64
-
64
+
65
65
  def scheduler
66
66
  @scheduler ||= Eye::Utils::CelluloidChain.new(current_actor)
67
67
  end
@@ -36,16 +36,9 @@ module Eye::Process::System
36
36
  end
37
37
 
38
38
  def process_realy_running?
39
- if self.pid
40
- res = Eye::System.check_pid_alive(self.pid)
41
- if res[:error] && res[:error].class != Errno::ESRCH
42
- error "process_realy_running?: check_pid_alive returns '#{res[:error].message}'"
43
- end
44
- res[:result]
45
- else
46
- debug "process_realy_running?: called without pid"
47
- nil
48
- end
39
+ res = Eye::System.check_pid_alive(self.pid)
40
+ debug "process_realy_running?: (#{self.pid}) #{res.inspect}"
41
+ !!res[:result]
49
42
  end
50
43
 
51
44
  def send_signal(code)
@@ -30,7 +30,7 @@ private
30
30
  end
31
31
 
32
32
  def on_flapping(trigger)
33
- notify :crit, 'flapping!'
33
+ notify :error, 'flapping!'
34
34
  schedule :unmonitor, "flapping"
35
35
 
36
36
  @retry_times ||= 0
@@ -61,7 +61,7 @@ private
61
61
  return unless up?
62
62
 
63
63
  action = subject.fire || :restart
64
- notify :crit, "Bounded #{subject.check_name}: #{subject.last_human_values} send to :#{action}"
64
+ notify :warn, "Bounded #{subject.check_name}: #{subject.last_human_values} send to :#{action}"
65
65
  schedule action, "bounded #{subject.check_name}"
66
66
  end
67
67
  end
@@ -1,6 +1,5 @@
1
1
  require 'celluloid/io'
2
- require_relative 'io/unix_socket'
3
- require_relative 'io/unix_server'
2
+ require 'celluloid/autostart'
4
3
 
5
4
  class Eye::Server
6
5
  include Celluloid::IO
@@ -16,14 +15,9 @@ class Eye::Server
16
15
  UNIXServer.open(socket_path)
17
16
  end
18
17
  end
19
-
20
- def finalize
21
- @server.close if @server
22
- unlink_socket_file
23
- end
24
18
 
25
19
  def run
26
- loop { handle_connection! @server.accept }
20
+ loop { async.handle_connection @server.accept }
27
21
  end
28
22
 
29
23
  def handle_connection(socket)
@@ -48,4 +42,11 @@ class Eye::Server
48
42
  rescue
49
43
  end
50
44
 
45
+ finalizer :close_socket
46
+
47
+ def close_socket
48
+ @server.close if @server
49
+ unlink_socket_file
50
+ end
51
+
51
52
  end
@@ -7,9 +7,8 @@ module Eye::System
7
7
  # very fast
8
8
  # return result hash
9
9
  def check_pid_alive(pid)
10
- res = if pid
10
+ res = if pid
11
11
  ::Process.kill(0, pid)
12
- true
13
12
  else
14
13
  false
15
14
  end
@@ -131,8 +130,7 @@ module Eye::System
131
130
  end
132
131
 
133
132
  def spawn_options(config = {})
134
- o = {}
135
- o = {chdir: config[:working_dir]} if config[:working_dir]
133
+ o = {pgroup: true, chdir: config[:working_dir] || '/'}
136
134
  o.update(out: [config[:stdout], 'a']) if config[:stdout]
137
135
  o.update(err: [config[:stderr], 'a']) if config[:stderr]
138
136
  o.update(in: config[:stdin]) if config[:stdin]
@@ -146,9 +144,6 @@ module Eye::System
146
144
  env[k.to_s] = v.to_s if v
147
145
  end
148
146
 
149
- # return original LANG env, because ruby loose it (needs for unicorn)
150
- env['LANG'] = ENV_LANG unless env['LANG']
151
-
152
147
  # set PWD for unicorn respawn
153
148
  env['PWD'] = config[:working_dir] if config[:working_dir]
154
149
 
@@ -69,7 +69,7 @@ class Eye::SystemResources
69
69
  def get
70
70
  if @at + UPDATE_INTERVAL < Time.now
71
71
  @at = Time.now # for minimize races
72
- set!
72
+ async.set
73
73
  end
74
74
  @ps_aux
75
75
  end
@@ -77,10 +77,10 @@ class Eye::SystemResources
77
77
  private
78
78
 
79
79
  def set
80
- @ps_aux = defer{ Eye::System.ps_aux }
80
+ @ps_aux = Eye::System.ps_aux
81
81
  @at = Time.now
82
82
  end
83
83
 
84
84
  end
85
85
 
86
- end
86
+ end
@@ -11,13 +11,13 @@ class Eye::Utils::CelluloidChain
11
11
 
12
12
  def add(method_name, *args, &block)
13
13
  @calls << {:method_name => method_name, :args => args, :block => block}
14
- process! unless @running
14
+ async.process unless @running
15
15
  end
16
16
 
17
17
  def add_wo_dups(method_name, *args, &block)
18
18
  h = {:method_name => method_name, :args => args, :block => block}
19
19
  @calls << h if @calls[-1] != h
20
- process! unless @running
20
+ async.process unless @running
21
21
  end
22
22
 
23
23
  def list
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eye
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: '0.3'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Makarchev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-09 00:00:00.000000000 Z
11
+ date: 2013-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: celluloid
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: 0.12.0
19
+ version: 0.13.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: 0.12.0
26
+ version: 0.13.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: celluloid-io
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: 0.12.0
33
+ version: 0.13.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
- version: 0.12.0
40
+ version: 0.13.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: state_machine
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -299,8 +299,6 @@ files:
299
299
  - lib/eye/dsl/validation.rb
300
300
  - lib/eye/group.rb
301
301
  - lib/eye/group/chain.rb
302
- - lib/eye/io/unix_server.rb
303
- - lib/eye/io/unix_socket.rb
304
302
  - lib/eye/loader.rb
305
303
  - lib/eye/logger.rb
306
304
  - lib/eye/notify.rb
@@ -332,122 +330,6 @@ files:
332
330
  - lib/eye/utils/celluloid_chain.rb
333
331
  - lib/eye/utils/leak_19.rb
334
332
  - lib/eye/utils/tail.rb
335
- - spec/checker/cpu_spec.rb
336
- - spec/checker/file_ctime_spec.rb
337
- - spec/checker/file_size_spec.rb
338
- - spec/checker/http_spec.rb
339
- - spec/checker/memory_spec.rb
340
- - spec/checker/socket_spec.rb
341
- - spec/checker_spec.rb
342
- - spec/child_process/child_process_spec.rb
343
- - spec/client_server_spec.rb
344
- - spec/controller/commands_spec.rb
345
- - spec/controller/controller_spec.rb
346
- - spec/controller/find_objects_spec.rb
347
- - spec/controller/group_spec.rb
348
- - spec/controller/intergration_spec.rb
349
- - spec/controller/load_spec.rb
350
- - spec/controller/races_spec.rb
351
- - spec/controller/stop_on_delete_spec.rb
352
- - spec/dsl/chain_spec.rb
353
- - spec/dsl/checks_spec.rb
354
- - spec/dsl/config_spec.rb
355
- - spec/dsl/dsl_spec.rb
356
- - spec/dsl/getter_spec.rb
357
- - spec/dsl/integration_spec.rb
358
- - spec/dsl/load_spec.rb
359
- - spec/dsl/notify_spec.rb
360
- - spec/dsl/process_spec.rb
361
- - spec/dsl/sub_procs_spec.rb
362
- - spec/dsl/with_server_spec.rb
363
- - spec/example/em.rb
364
- - spec/example/forking.rb
365
- - spec/example/sample.rb
366
- - spec/fixtures/dsl/0.rb
367
- - spec/fixtures/dsl/0a.rb
368
- - spec/fixtures/dsl/0c.rb
369
- - spec/fixtures/dsl/1.rb
370
- - spec/fixtures/dsl/bad.eye
371
- - spec/fixtures/dsl/configs/1.eye
372
- - spec/fixtures/dsl/configs/2.eye
373
- - spec/fixtures/dsl/configs/3.eye
374
- - spec/fixtures/dsl/configs/4.eye
375
- - spec/fixtures/dsl/empty.eye
376
- - spec/fixtures/dsl/include_test.eye
377
- - spec/fixtures/dsl/include_test/1.rb
378
- - spec/fixtures/dsl/include_test/ha.rb
379
- - spec/fixtures/dsl/include_test2.eye
380
- - spec/fixtures/dsl/integration.eye
381
- - spec/fixtures/dsl/integration2.eye
382
- - spec/fixtures/dsl/integration_locks.eye
383
- - spec/fixtures/dsl/integration_sor.eye
384
- - spec/fixtures/dsl/integration_sor2.eye
385
- - spec/fixtures/dsl/integration_sor3.eye
386
- - spec/fixtures/dsl/load.eye
387
- - spec/fixtures/dsl/load2.eye
388
- - spec/fixtures/dsl/load2_dup2.eye
389
- - spec/fixtures/dsl/load2_dup_pid.eye
390
- - spec/fixtures/dsl/load3.eye
391
- - spec/fixtures/dsl/load4.eye
392
- - spec/fixtures/dsl/load5.eye
393
- - spec/fixtures/dsl/load6.eye
394
- - spec/fixtures/dsl/load_dubls.eye
395
- - spec/fixtures/dsl/load_dup_ex_names.eye
396
- - spec/fixtures/dsl/load_error.eye
397
- - spec/fixtures/dsl/load_error_folder/load3.eye
398
- - spec/fixtures/dsl/load_error_folder/load4.eye
399
- - spec/fixtures/dsl/load_folder/load3.eye
400
- - spec/fixtures/dsl/load_folder/load4.eye
401
- - spec/fixtures/dsl/load_int.eye
402
- - spec/fixtures/dsl/load_int2.eye
403
- - spec/fixtures/dsl/load_logger.eye
404
- - spec/fixtures/dsl/load_logger2.eye
405
- - spec/fixtures/dsl/long_load.eye
406
- - spec/fixtures/dsl/subfolder1/proc1.rb
407
- - spec/fixtures/dsl/subfolder2.eye
408
- - spec/fixtures/dsl/subfolder2/common.rb
409
- - spec/fixtures/dsl/subfolder2/proc2.rb
410
- - spec/fixtures/dsl/subfolder2/sub/proc3.rb
411
- - spec/fixtures/dsl/subfolder3.eye
412
- - spec/fixtures/dsl/subfolder3/common.rb
413
- - spec/fixtures/dsl/subfolder3/proc4.rb
414
- - spec/fixtures/dsl/subfolder3/sub/proc5.rb
415
- - spec/fixtures/dsl/subfolder4.eye
416
- - spec/fixtures/dsl/subfolder4/a.rb
417
- - spec/fixtures/dsl/subfolder4/b.rb
418
- - spec/fixtures/dsl/subfolder4/c.rb
419
- - spec/mock_spec.rb
420
- - spec/notify/jabber_spec.rb
421
- - spec/notify/mail_spec.rb
422
- - spec/notify_spec.rb
423
- - spec/process/checks/child_checks_spec.rb
424
- - spec/process/checks/cpu_spec.rb
425
- - spec/process/checks/ctime_spec.rb
426
- - spec/process/checks/fsize_spec.rb
427
- - spec/process/checks/http_spec.rb
428
- - spec/process/checks/intergration_spec.rb
429
- - spec/process/checks/memory_spec.rb
430
- - spec/process/child_process_spec.rb
431
- - spec/process/config_spec.rb
432
- - spec/process/controller_spec.rb
433
- - spec/process/monitoring_spec.rb
434
- - spec/process/notify_spec.rb
435
- - spec/process/restart_spec.rb
436
- - spec/process/scheduler_spec.rb
437
- - spec/process/start_spec.rb
438
- - spec/process/states_history_spec.rb
439
- - spec/process/stop_spec.rb
440
- - spec/process/system_spec.rb
441
- - spec/process/triggers/flapping_spec.rb
442
- - spec/process/update_config_spec.rb
443
- - spec/spec_helper.rb
444
- - spec/support/rr_celluloid.rb
445
- - spec/support/spec_support.rb
446
- - spec/system_resources_spec.rb
447
- - spec/system_spec.rb
448
- - spec/utils/alive_array_spec.rb
449
- - spec/utils/celluloid_chain_spec.rb
450
- - spec/utils/tail_spec.rb
451
333
  homepage: http://github.com/kostya/eye
452
334
  licenses:
453
335
  - MIT
@@ -473,120 +355,4 @@ signing_key:
473
355
  specification_version: 4
474
356
  summary: Process monitoring tool. An alternative to God and Bluepill. With Bluepill
475
357
  like config syntax. Requires MRI Ruby >= 1.9.2. Uses Celluloid and Celluloid::IO.
476
- test_files:
477
- - spec/checker/cpu_spec.rb
478
- - spec/checker/file_ctime_spec.rb
479
- - spec/checker/file_size_spec.rb
480
- - spec/checker/http_spec.rb
481
- - spec/checker/memory_spec.rb
482
- - spec/checker/socket_spec.rb
483
- - spec/checker_spec.rb
484
- - spec/child_process/child_process_spec.rb
485
- - spec/client_server_spec.rb
486
- - spec/controller/commands_spec.rb
487
- - spec/controller/controller_spec.rb
488
- - spec/controller/find_objects_spec.rb
489
- - spec/controller/group_spec.rb
490
- - spec/controller/intergration_spec.rb
491
- - spec/controller/load_spec.rb
492
- - spec/controller/races_spec.rb
493
- - spec/controller/stop_on_delete_spec.rb
494
- - spec/dsl/chain_spec.rb
495
- - spec/dsl/checks_spec.rb
496
- - spec/dsl/config_spec.rb
497
- - spec/dsl/dsl_spec.rb
498
- - spec/dsl/getter_spec.rb
499
- - spec/dsl/integration_spec.rb
500
- - spec/dsl/load_spec.rb
501
- - spec/dsl/notify_spec.rb
502
- - spec/dsl/process_spec.rb
503
- - spec/dsl/sub_procs_spec.rb
504
- - spec/dsl/with_server_spec.rb
505
- - spec/example/em.rb
506
- - spec/example/forking.rb
507
- - spec/example/sample.rb
508
- - spec/fixtures/dsl/0.rb
509
- - spec/fixtures/dsl/0a.rb
510
- - spec/fixtures/dsl/0c.rb
511
- - spec/fixtures/dsl/1.rb
512
- - spec/fixtures/dsl/bad.eye
513
- - spec/fixtures/dsl/configs/1.eye
514
- - spec/fixtures/dsl/configs/2.eye
515
- - spec/fixtures/dsl/configs/3.eye
516
- - spec/fixtures/dsl/configs/4.eye
517
- - spec/fixtures/dsl/empty.eye
518
- - spec/fixtures/dsl/include_test.eye
519
- - spec/fixtures/dsl/include_test/1.rb
520
- - spec/fixtures/dsl/include_test/ha.rb
521
- - spec/fixtures/dsl/include_test2.eye
522
- - spec/fixtures/dsl/integration.eye
523
- - spec/fixtures/dsl/integration2.eye
524
- - spec/fixtures/dsl/integration_locks.eye
525
- - spec/fixtures/dsl/integration_sor.eye
526
- - spec/fixtures/dsl/integration_sor2.eye
527
- - spec/fixtures/dsl/integration_sor3.eye
528
- - spec/fixtures/dsl/load.eye
529
- - spec/fixtures/dsl/load2.eye
530
- - spec/fixtures/dsl/load2_dup2.eye
531
- - spec/fixtures/dsl/load2_dup_pid.eye
532
- - spec/fixtures/dsl/load3.eye
533
- - spec/fixtures/dsl/load4.eye
534
- - spec/fixtures/dsl/load5.eye
535
- - spec/fixtures/dsl/load6.eye
536
- - spec/fixtures/dsl/load_dubls.eye
537
- - spec/fixtures/dsl/load_dup_ex_names.eye
538
- - spec/fixtures/dsl/load_error.eye
539
- - spec/fixtures/dsl/load_error_folder/load3.eye
540
- - spec/fixtures/dsl/load_error_folder/load4.eye
541
- - spec/fixtures/dsl/load_folder/load3.eye
542
- - spec/fixtures/dsl/load_folder/load4.eye
543
- - spec/fixtures/dsl/load_int.eye
544
- - spec/fixtures/dsl/load_int2.eye
545
- - spec/fixtures/dsl/load_logger.eye
546
- - spec/fixtures/dsl/load_logger2.eye
547
- - spec/fixtures/dsl/long_load.eye
548
- - spec/fixtures/dsl/subfolder1/proc1.rb
549
- - spec/fixtures/dsl/subfolder2.eye
550
- - spec/fixtures/dsl/subfolder2/common.rb
551
- - spec/fixtures/dsl/subfolder2/proc2.rb
552
- - spec/fixtures/dsl/subfolder2/sub/proc3.rb
553
- - spec/fixtures/dsl/subfolder3.eye
554
- - spec/fixtures/dsl/subfolder3/common.rb
555
- - spec/fixtures/dsl/subfolder3/proc4.rb
556
- - spec/fixtures/dsl/subfolder3/sub/proc5.rb
557
- - spec/fixtures/dsl/subfolder4.eye
558
- - spec/fixtures/dsl/subfolder4/a.rb
559
- - spec/fixtures/dsl/subfolder4/b.rb
560
- - spec/fixtures/dsl/subfolder4/c.rb
561
- - spec/mock_spec.rb
562
- - spec/notify/jabber_spec.rb
563
- - spec/notify/mail_spec.rb
564
- - spec/notify_spec.rb
565
- - spec/process/checks/child_checks_spec.rb
566
- - spec/process/checks/cpu_spec.rb
567
- - spec/process/checks/ctime_spec.rb
568
- - spec/process/checks/fsize_spec.rb
569
- - spec/process/checks/http_spec.rb
570
- - spec/process/checks/intergration_spec.rb
571
- - spec/process/checks/memory_spec.rb
572
- - spec/process/child_process_spec.rb
573
- - spec/process/config_spec.rb
574
- - spec/process/controller_spec.rb
575
- - spec/process/monitoring_spec.rb
576
- - spec/process/notify_spec.rb
577
- - spec/process/restart_spec.rb
578
- - spec/process/scheduler_spec.rb
579
- - spec/process/start_spec.rb
580
- - spec/process/states_history_spec.rb
581
- - spec/process/stop_spec.rb
582
- - spec/process/system_spec.rb
583
- - spec/process/triggers/flapping_spec.rb
584
- - spec/process/update_config_spec.rb
585
- - spec/spec_helper.rb
586
- - spec/support/rr_celluloid.rb
587
- - spec/support/spec_support.rb
588
- - spec/system_resources_spec.rb
589
- - spec/system_spec.rb
590
- - spec/utils/alive_array_spec.rb
591
- - spec/utils/celluloid_chain_spec.rb
592
- - spec/utils/tail_spec.rb
358
+ test_files: []