Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 136 lines (90 sloc) 4.558 kB
f2db79f @mojombo update announcement
mojombo authored
1 Subject: [ANN] god 0.6.0 released (and mailing list)
01467de implemented state based lifecycle
Tom Werner authored
2
f2db79f @mojombo update announcement
mojombo authored
3 !!!NEW MAILING LIST!!! We now have a mailing list at http://groups.google.com/group/god-rb
910e0c2 @mojombo additional test configs
mojombo authored
4
f2db79f @mojombo update announcement
mojombo authored
5 This release is primarily focused on increased stability, robustness, and code cleanliness.
910e0c2 @mojombo additional test configs
mojombo authored
6
f2db79f @mojombo update announcement
mojombo authored
7 The last release (0.5.0) switched from TCP sockets to Unix Domain Sockets for the CLI tools. There were some issues regarding file descriptors that would cause god to hang when restarting (the unix socket was being held open by spawned processes). These problems are all fixed in 0.6.0. You may need to kill any processes that were started under god 0.5.0 when you upgrade to 0.6.0 (you will only need to do this once during the upgrade process).
910e0c2 @mojombo additional test configs
mojombo authored
8
f2db79f @mojombo update announcement
mojombo authored
9 More attention is now paid to Syslogging behavior.
910e0c2 @mojombo additional test configs
mojombo authored
10
f2db79f @mojombo update announcement
mojombo authored
11 God will delete its own PID file when terminated via a user request.
4ebea2b @mojombo update announcement and create god-check to run a diagnostic for events
mojombo authored
12
f2db79f @mojombo update announcement
mojombo authored
13 A new command line option now allows you to check whether your installation properly handles events (sometimes the C extension will compile ok, but still not support events. Gentoo, I'm looking at you). Run `god check` to see an attempt to use the event system. It will tell you if your installation does not support events.
4ebea2b @mojombo update announcement and create god-check to run a diagnostic for events
mojombo authored
14
f2db79f @mojombo update announcement
mojombo authored
15 A watch can now be removed entirely at runtime using `god remove <watch name>`.
4ebea2b @mojombo update announcement and create god-check to run a diagnostic for events
mojombo authored
16
f2db79f @mojombo update announcement
mojombo authored
17 A new condition DiskUsage allows you to check the available disk space on a given volume.
910e0c2 @mojombo additional test configs
mojombo authored
18
19 Updated documentation is now available on the website:
01467de implemented state based lifecycle
Tom Werner authored
20
21 http://god.rubyforge.org/
22
23
24 WHAT IS GOD?
25
26 God is an easy to configure, easy to extend monitoring framework written in Ruby.
27
28 Keeping your server processes and tasks running should be a simple part of your deployment process. God aims to be the simplest, most powerful monitoring application available.
29
30
31 DISCLAIMER
32
4ebea2b @mojombo update announcement and create god-check to run a diagnostic for events
mojombo authored
33 God is still beta so I do not yet recommend you use it for mission critical tasks. We are using it at Powerset, Inc. to monitor our public facing applications, but then, we're daring fellows.
01467de implemented state based lifecycle
Tom Werner authored
34
35
36 INSTALL
37
38 sudo gem install god
39
40
41 FEATURES
42
43 * Config file is written in Ruby
44 * Easily write your own custom conditions in Ruby
45 * Supports both poll and event based conditions
46 * Different poll conditions can have different intervals
910e0c2 @mojombo additional test configs
mojombo authored
47 * Easily control non-daemonized processes
01467de implemented state based lifecycle
Tom Werner authored
48
49
50 EXAMPLE
51
52 The easiest way to understand how god will make your life better is by looking at a sample config file. The following configuration file is what I use at gravatar.com to keep the mongrels running:
53
910e0c2 @mojombo additional test configs
mojombo authored
54 # run with: god -c /path/to/gravatar.god
2042f67 @mojombo updated announce email and history for 0.2.0 release
mojombo authored
55 #
01467de implemented state based lifecycle
Tom Werner authored
56 # This is the actual config file used to keep the mongrels of
57 # gravatar.com running.
58
4ebea2b @mojombo update announcement and create god-check to run a diagnostic for events
mojombo authored
59 RAILS_ROOT = "/Users/tom/dev/gravatar2"
01467de implemented state based lifecycle
Tom Werner authored
60
910e0c2 @mojombo additional test configs
mojombo authored
61 %w{8200 8201 8202}.each do |port|
62 God.watch do |w|
63 w.name = "gravatar2-mongrel-#{port}"
4ebea2b @mojombo update announcement and create god-check to run a diagnostic for events
mojombo authored
64 w.interval = 30.seconds # default
65 w.start = "mongrel_rails start -c #{RAILS_ROOT} -p #{port} \
66 -P #{RAILS_ROOT}/log/mongrel.#{port}.pid -d"
67 w.stop = "mongrel_rails stop -P #{RAILS_ROOT}/log/mongrel.#{port}.pid"
68 w.restart = "mongrel_rails restart -P #{RAILS_ROOT}/log/mongrel.#{port}.pid"
69 w.start_grace = 10.seconds
70 w.restart_grace = 10.seconds
910e0c2 @mojombo additional test configs
mojombo authored
71 w.pid_file = File.join(RAILS_ROOT, "log/mongrel.#{port}.pid")
72
73 w.behavior(:clean_pid_file)
74
75 w.start_if do |start|
76 start.condition(:process_running) do |c|
77 c.interval = 5.seconds
78 c.running = false
01467de implemented state based lifecycle
Tom Werner authored
79 end
910e0c2 @mojombo additional test configs
mojombo authored
80 end
81
82 w.restart_if do |restart|
83 restart.condition(:memory_usage) do |c|
84 c.above = 150.megabytes
85 c.times = [3, 5] # 3 out of 5 intervals
01467de implemented state based lifecycle
Tom Werner authored
86 end
910e0c2 @mojombo additional test configs
mojombo authored
87
88 restart.condition(:cpu_usage) do |c|
89 c.above = 50.percent
90 c.times = 5
01467de implemented state based lifecycle
Tom Werner authored
91 end
92 end
4ebea2b @mojombo update announcement and create god-check to run a diagnostic for events
mojombo authored
93
94 # lifecycle
95 w.lifecycle do |on|
96 on.condition(:flapping) do |c|
97 c.to_state = [:start, :restart]
98 c.times = 5
99 c.within = 5.minute
100 c.transition = :unmonitored
101 c.retry_in = 10.minutes
102 c.retry_times = 5
103 c.retry_within = 2.hours
104 end
105 end
01467de implemented state based lifecycle
Tom Werner authored
106 end
107 end
108
109
110 DOCS
111
112 Detailed documentation is available at http://god.rubyforge.org/
113
114
115 CHANGES
116
f2db79f @mojombo update announcement
mojombo authored
117 == 0.6.0 / 2007-12-4
118
119 * Minor Enhancement
120 * Move Syslog calls into God::Logger and clean up all calling code
121 * Remove god's pid file on user requested termination
122 * Better handling and cleanup of DRb server's unix domain socket
123 * Allow shorthand for requesting a god log
124 * Add `god check` to make it easier to diagnose event problems
125 * Refactor god binary into class/method structure
126 * Implement `god remove` to remove a Task altogether
3b90139 @mojombo update history and announce for 0.4.0
mojombo authored
127 * New Conditions
f2db79f @mojombo update announcement
mojombo authored
128 * DiskUsage < PollCondition - trigger if disk usage is above limit on mount [Rudy Desjardins]
129
01467de implemented state based lifecycle
Tom Werner authored
130
131
2042f67 @mojombo updated announce email and history for 0.2.0 release
mojombo authored
132 AUTHORS
01467de implemented state based lifecycle
Tom Werner authored
133
134 Tom Preston-Werner
2042f67 @mojombo updated announce email and history for 0.2.0 release
mojombo authored
135 Kevin Clark
Something went wrong with that request. Please try again.