server/files/usr/local/ec2onrails/lib/god_helper.rb in pauldowman-ec2onrails-0.9.10.1 vs server/files/usr/local/ec2onrails/lib/god_helper.rb in pauldowman-ec2onrails-0.9.10.2
- old
+ new
@@ -1,7 +1,8 @@
module GodHelper
require '/usr/local/ec2onrails/lib/roles_helper'
+ require '/usr/local/ec2onrails/lib/utils'
require 'fileutils'
def default_configurations(w)
w.interval = 30.seconds
w.grace = 30.seconds
@@ -9,78 +10,75 @@
w.behavior(:clean_pid_file)
w.start_if do |start|
start.condition(:process_running) do |c|
- c.notify = {:contacts => ['default'], :category => 'process not started...starting'}
c.interval = 5.seconds
c.running = false
end
end
# determine when process has finished starting
- # w.transition([:start, :restart], :up) do |on|
- # on.condition(:process_running) do |c|
- # c.running = true
- # end
- #
- # # failsafe
- # on.condition(:tries) do |c|
- # c.times = 8
- # c.within = 2.minutes
- # c.transition = :start
- # end
- # end
- #
- # # start if process is not running
- # w.transition(:up, :start) do |on|
- # on.condition(:process_exits) do |c|
- # c.notify = {:contacts => ['default'], :category => 'process exited...restarting'}
- # end
- # end
+ w.transition([:start, :restart], :up) do |on|
+ on.condition(:process_running) do |c|
+ c.running = true
+ end
+
+ # failsafe
+ on.condition(:tries) do |c|
+ c.times = 8
+ c.within = 2.minutes
+ c.transition = :start
+ end
+ end
+
+ # start if process is not running
+ w.transition(:up, :start) do |on|
+ on.condition(:process_exits) do |c|
+ c.notify = {:contacts => ['default'], :category => "RAILS_ENV=#{Ec2onrails::Utils.rails_env}"}
+ end
+ end
+
+ w.lifecycle do |on|
+ on.condition(:flapping) do |c|
+ c.notify = {:contacts => ['default'], :category => "RAILS_ENV=#{Ec2onrails::Utils.rails_env}"}
+ c.to_state = [:start, :restart]
+ c.times = 5
+ c.within = 5.minutes
+ c.transition = :unmonitored
+ c.retry_in = 10.minutes
+ c.retry_times = 5
+ c.retry_within = 2.hours
+ end
+ end
+
end
def restart_if_resource_hog(w, options={})
options = {:memory_usage => 175.megabytes, :cpu_usage => 50.percent}.merge(options)
w.restart_if do |restart|
if options[:memory_usage]
restart.condition(:memory_usage) do |c|
- c.notify = {:contacts => ['default'], :category => "process over #{options[:memory_usage]/1.megabyte}MB. restarting"}
+ c.notify = {:contacts => ['default'], :category => "RAILS_ENV=#{Ec2onrails::Utils.rails_env}"}
c.above = options[:memory_usage]
c.times = [3,5]
end
end
if options[:cpu_usage]
restart.condition(:cpu_usage) do |c|
- c.notify = {:contacts => ['default'], :category => "process over #{options[:cpu_usage]*100}%. restarting"}
+ c.notify = {:contacts => ['default'], :category => "RAILS_ENV=#{Ec2onrails::Utils.rails_env}"}
c.above = options[:cpu_usage]
c.times = 5
end
end
yield restart if block_given?
end
end
- def monitor_lifecycle(w)
- # w.transition(:up, :unmonitored) do |on|
- w.lifecycle do |on|
- on.condition(:flapping) do |c|
- c.notify = {:contacts => ['default'], :category => 'process flapping...restarting'}
- c.to_state = [:start, :restart]
- c.times = 5
- c.within = 5.minutes
- c.transition = :unmonitored
- c.retry_in = 10.minutes
- c.retry_times = 5
- c.retry_within = 2.hours
- end
- end
- end
-
class Configs
include Ec2onrails::RolesHelper
end
-end
\ No newline at end of file
+end