Sha256: 75c4d716eaab5cd2e66d616260711d2367c2d092e6a64e0830f4bef9666eab94

Contents?: true

Size: 1.75 KB

Versions: 26

Compression:

Stored size: 1.75 KB

Contents

#
# This is a configuration template for 'god' process monitoring.
#
# More information can be found at http://god.rubyforge.org/
#

DAEMON_ROOT = "<%= DaemonKit.root %>"

God.watch do |w|
  w.name = '<%= DaemonKit.configuration.daemon_name %>'
  w.interval = 30.seconds
  w.start = "/usr/bin/env DAEMON_ENV=<%= DaemonKit.env %> <%= DaemonKit.root %>/bin/<%= DaemonKit.configuration.daemon_name %> start"
  w.stop = "/usr/bin/env DAEMON_ENV=<%= DaemonKit.env %> <%= DaemonKit.root %>/bin/<%= DaemonKit.configuration.daemon_name %> stop"
  w.start_grace = 10.seconds
  w.stop_grace = 10.seconds
  w.pid_file = "<%= DaemonKit.configuration.pid_file %>"
  w.behavior(:clean_pid_file)
  #w.uid = 'nobody'
  #w.gid = 'nobody'

  w.start_if do |start|
    start.condition(:process_running) do |c|
      c.interval = 30.seconds
      c.running = false
      c.notify = 'sysadmin'
    end
  end

  w.restart_if do |restart|
    restart.condition(:memory_usage) do |c|
      c.above = 250.megabytes
      c.times = [3, 5] # 3 out of 5 intervals
      c.notify = 'sysadmin'
    end

    restart.condition(:cpu_usage) do |c|
      c.above = 50.percent
      c.times = 5
      c.notify = 'sysadmin'
    end
  end

  w.lifecycle do |on|
    on.condition(:flapping) do |c|
      c.to_state = [:start, :restart]
      c.times = 5
      c.within = 5.minute
      c.transition = :unmonitored
      c.retry_in = 10.minutes
      c.retry_times = 5
      c.retry_within = 2.hours
      c.notify = 'sysadmin'
    end
  end
end

God::Contacts::Email.server_settings = {
  :address => "smtp.gmail.com",
  :port => 587,
  :domain => "localhost",
  :authentication => :plain,
  :user_name => "you@gmail.com",
  :password => "secret"
}

God.contact(:email) do |c|
  c.name = 'sysadmin'
  c.email = 'you@gmail.com'
end

Version data entries

26 entries across 26 versions & 5 rubygems

Version Path
kennethkalmer-daemon-kit-0.1.7.10 templates/god/god.erb
kennethkalmer-daemon-kit-0.1.7.3 templates/god/god.erb
kennethkalmer-daemon-kit-0.1.7.4 templates/god/god.erb
kennethkalmer-daemon-kit-0.1.7.5 templates/god/god.erb
kennethkalmer-daemon-kit-0.1.7.7 templates/god/god.erb
kennethkalmer-daemon-kit-0.1.7.8 templates/god/god.erb
kennethkalmer-daemon-kit-0.1.7.9 templates/god/god.erb
queso-daemon-kit-0.1.7.10 templates/god/god.erb
skaar-daemon-kit-0.1.7.10 templates/god/god.erb
apphunkd-0.13.0 vendor/daemon_kit/templates/god/god.erb
apphunkd-0.12.2 vendor/daemon_kit/templates/god/god.erb
apphunkd-0.12.1 vendor/daemon_kit/templates/god/god.erb
apphunkd-0.12.0 vendor/daemon_kit/templates/god/god.erb
apphunkd-0.11.1 vendor/daemon_kit/templates/god/god.erb
apphunkd-0.11.0 vendor/daemon_kit/templates/god/god.erb
apphunkd-0.10.1 vendor/daemon_kit/templates/god/god.erb
apphunkd-0.10.0 vendor/daemon_kit/templates/god/god.erb
apphunkd-0.9.2 vendor/daemon_kit/templates/god/god.erb
apphunkd-0.9.1 vendor/daemon-kit/templates/god/god.erb
apphunkd-0.9.0 vendor/daemon-kit/templates/god/god.erb