[ANN] god 0.2.0 released

T

Tom Werner

A lot of work has gone into god since the last release. Say goodbye to
polling for process status--support for event based conditions via
kqueue/netlink has been added (thanks Kevin Clark)! Only a few events
are currently supported (most prominently process exit), but the way is
now open for the addition of other events. A new, advanced syntax is
available (in addition to the familiar simple syntax) that gives you
full power over the new state based lifecycle of your Watches. Updated
documentation is available on the website:

http://god.rubyforge.org/


WHAT IS GOD?

God is an easy to configure, easy to extend monitoring framework written
in Ruby.

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.


DISCLAIMER

God is still very young, I'd love to get feedback and bug reports, but I
do not yet recommend you use it for mission critical tasks. I personally
use it in production but then I'm a daring fellow.


INSTALL

sudo gem install god

* note: currently tested only on Redhat Linux and Darwin (won't work on
Windows)


FEATURES

* Config file is written in Ruby
* Easily write your own custom conditions in Ruby
* Supports both poll and event based conditions
* Different poll conditions can have different intervals


EXAMPLE

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:

# file: gravatar.god
# run with: god start -c /path/to/gravatar.god
#
# This is the actual config file used to keep the mongrels of
# gravatar.com running.

RAILS_ROOT = "/var/www/gravatar2/current"

God.meddle do |god|
%w{8200 8201 8202}.each do |port|
god.watch do |w|
w.name = "gravatar2-mongrel-#{port}"
w.interval = 30 # seconds default
w.start = "mongrel_rails cluster::start --only #{port} \
-C #{RAILS_ROOT}/config/mongrel_cluster.yml"
w.stop = "mongrel_rails cluster::stop --only #{port} \
-C #{RAILS_ROOT}/config/mongrel_cluster.yml"
w.grace = 10 # seconds

pid_file = File.join(RAILS_ROOT, "log/mongrel.#{port}.pid")

w.behavior:)clean_pid_file) do |b|
b.pid_file = pid_file
end

w.start_if do |start|
start.condition:)process_running) do |c|
c.interval = 5 # seconds
c.running = false
c.pid_file = pid_file
end
end

w.restart_if do |restart|
restart.condition:)memory_usage) do |c|
c.pid_file = pid_file
c.above = (150 * 1024) # 150mb
c.times = [3, 5] # 3 out of 5 intervals
end

restart.condition:)cpu_usage) do |c|
c.pid_file = pid_file
c.above = 50 # percent
c.times = 5
end
end
end
end
end


DOCS

Detailed documentation is available at http://god.rubyforge.org/


CHANGES

== 0.2.0 / 2007-07-18

* Rewrote innards to use a state and event based lifecycle
* Basic support for events via kqueue (bsd/darwin) and netlink/pec
(linux) [kevinclark]
* Added advanced syntax (simple syntax calls advanced api underneath)
* Condition returns have changed meaning. With simple syntax, a true
return activates block
* Updated http://god.rubygorge.org with updated simple config and new
advanced config


AUTHORS

Tom Preston-Werner
Kevin Clark
 
G

Glen F. Pankow

Daniel said:
It's where the bad projects go when they die.

Regards,

Dan


<facetious>

No, that would be RubyGehenna. We just don't say so because we
wouldn't want to be insensitive to our superstitiously-correct
friends, now would we?

</facetious>

Glen
 
M

MenTaLguY

--=-pLjX8R45EmaGeq5C1PGO
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

=20
Too late - it's registered to a typo squatter.

rubygehenna.org looks like it's still available.

-mental

--=-pLjX8R45EmaGeq5C1PGO
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQBGoAARSuZBmZzm14ERAjyHAJwKzX+EwYmbf24rr/du6OGe9UNSLgCdEfUT
scH7q7BqcQWE35JyXYl+M9Q=
=ixLs
-----END PGP SIGNATURE-----

--=-pLjX8R45EmaGeq5C1PGO--
 
C

Chad Perrin

rubygehenna.org looks like it's still available.

That's not as funny . . . but I'd like to see what someone does with it,
if it gets registered and used.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

Forum statistics

Threads
474,260
Messages
2,571,039
Members
48,768
Latest member
first4landlord

Latest Threads

Top