mcproc 2016.2.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Announce.txt +135 -0
- data/Gemfile +9 -0
- data/History.txt +469 -0
- data/LICENSE +22 -0
- data/README.md +37 -0
- data/Rakefile +185 -0
- data/TODO.md +37 -0
- data/bin/mcproc +134 -0
- data/doc/intro.asciidoc +20 -0
- data/doc/mcproc.asciidoc +1592 -0
- data/ext/god/.gitignore +5 -0
- data/ext/god/extconf.rb +56 -0
- data/ext/god/kqueue_handler.c +133 -0
- data/ext/god/netlink_handler.c +182 -0
- data/lib/god.rb +780 -0
- data/lib/god/behavior.rb +52 -0
- data/lib/god/behaviors/clean_pid_file.rb +21 -0
- data/lib/god/behaviors/clean_unix_socket.rb +21 -0
- data/lib/god/behaviors/notify_when_flapping.rb +51 -0
- data/lib/god/cli/command.rb +268 -0
- data/lib/god/cli/run.rb +170 -0
- data/lib/god/cli/version.rb +23 -0
- data/lib/god/compat19.rb +33 -0
- data/lib/god/condition.rb +96 -0
- data/lib/god/conditions/always.rb +36 -0
- data/lib/god/conditions/complex.rb +86 -0
- data/lib/god/conditions/cpu_usage.rb +80 -0
- data/lib/god/conditions/degrading_lambda.rb +52 -0
- data/lib/god/conditions/disk_usage.rb +32 -0
- data/lib/god/conditions/file_mtime.rb +28 -0
- data/lib/god/conditions/file_touched.rb +44 -0
- data/lib/god/conditions/flapping.rb +128 -0
- data/lib/god/conditions/http_response_code.rb +184 -0
- data/lib/god/conditions/lambda.rb +25 -0
- data/lib/god/conditions/memory_usage.rb +82 -0
- data/lib/god/conditions/process_exits.rb +66 -0
- data/lib/god/conditions/process_running.rb +63 -0
- data/lib/god/conditions/socket_responding.rb +142 -0
- data/lib/god/conditions/tries.rb +44 -0
- data/lib/god/configurable.rb +57 -0
- data/lib/god/contact.rb +114 -0
- data/lib/god/contacts/airbrake.rb +44 -0
- data/lib/god/contacts/campfire.rb +121 -0
- data/lib/god/contacts/email.rb +130 -0
- data/lib/god/contacts/hipchat.rb +117 -0
- data/lib/god/contacts/jabber.rb +75 -0
- data/lib/god/contacts/prowl.rb +57 -0
- data/lib/god/contacts/scout.rb +55 -0
- data/lib/god/contacts/sensu.rb +59 -0
- data/lib/god/contacts/slack.rb +98 -0
- data/lib/god/contacts/statsd.rb +46 -0
- data/lib/god/contacts/twitter.rb +51 -0
- data/lib/god/contacts/webhook.rb +74 -0
- data/lib/god/driver.rb +238 -0
- data/lib/god/errors.rb +24 -0
- data/lib/god/event_handler.rb +112 -0
- data/lib/god/event_handlers/dummy_handler.rb +13 -0
- data/lib/god/event_handlers/kqueue_handler.rb +17 -0
- data/lib/god/event_handlers/netlink_handler.rb +13 -0
- data/lib/god/logger.rb +109 -0
- data/lib/god/metric.rb +87 -0
- data/lib/god/process.rb +381 -0
- data/lib/god/registry.rb +32 -0
- data/lib/god/simple_logger.rb +59 -0
- data/lib/god/socket.rb +113 -0
- data/lib/god/sugar.rb +62 -0
- data/lib/god/sys_logger.rb +45 -0
- data/lib/god/system/portable_poller.rb +42 -0
- data/lib/god/system/process.rb +50 -0
- data/lib/god/system/slash_proc_poller.rb +92 -0
- data/lib/god/task.rb +552 -0
- data/lib/god/timeline.rb +25 -0
- data/lib/god/trigger.rb +43 -0
- data/lib/god/watch.rb +340 -0
- data/mcproc.gemspec +192 -0
- data/test/configs/child_events/child_events.god +44 -0
- data/test/configs/child_events/simple_server.rb +3 -0
- data/test/configs/child_polls/child_polls.god +37 -0
- data/test/configs/child_polls/simple_server.rb +12 -0
- data/test/configs/complex/complex.god +59 -0
- data/test/configs/complex/simple_server.rb +3 -0
- data/test/configs/contact/contact.god +118 -0
- data/test/configs/contact/simple_server.rb +3 -0
- data/test/configs/daemon_events/daemon_events.god +37 -0
- data/test/configs/daemon_events/simple_server.rb +8 -0
- data/test/configs/daemon_events/simple_server_stop.rb +11 -0
- data/test/configs/daemon_polls/daemon_polls.god +17 -0
- data/test/configs/daemon_polls/simple_server.rb +6 -0
- data/test/configs/degrading_lambda/degrading_lambda.god +31 -0
- data/test/configs/degrading_lambda/tcp_server.rb +15 -0
- data/test/configs/keepalive/keepalive.god +9 -0
- data/test/configs/keepalive/keepalive.rb +12 -0
- data/test/configs/lifecycle/lifecycle.god +25 -0
- data/test/configs/matias/matias.god +50 -0
- data/test/configs/real.rb +59 -0
- data/test/configs/running_load/running_load.god +16 -0
- data/test/configs/stop_options/simple_server.rb +12 -0
- data/test/configs/stop_options/stop_options.god +39 -0
- data/test/configs/stress/simple_server.rb +3 -0
- data/test/configs/stress/stress.god +15 -0
- data/test/configs/task/logs/.placeholder +0 -0
- data/test/configs/task/task.god +26 -0
- data/test/configs/test.rb +61 -0
- data/test/configs/usr1_trapper.rb +10 -0
- data/test/helper.rb +172 -0
- data/test/suite.rb +6 -0
- data/test/test_airbrake.rb +14 -0
- data/test/test_behavior.rb +18 -0
- data/test/test_campfire.rb +22 -0
- data/test/test_condition.rb +52 -0
- data/test/test_conditions_disk_usage.rb +50 -0
- data/test/test_conditions_http_response_code.rb +109 -0
- data/test/test_conditions_process_running.rb +40 -0
- data/test/test_conditions_socket_responding.rb +176 -0
- data/test/test_conditions_tries.rb +67 -0
- data/test/test_contact.rb +109 -0
- data/test/test_driver.rb +26 -0
- data/test/test_email.rb +34 -0
- data/test/test_event_handler.rb +82 -0
- data/test/test_god.rb +710 -0
- data/test/test_god_system.rb +201 -0
- data/test/test_handlers_kqueue_handler.rb +16 -0
- data/test/test_hipchat.rb +23 -0
- data/test/test_jabber.rb +29 -0
- data/test/test_logger.rb +55 -0
- data/test/test_metric.rb +74 -0
- data/test/test_process.rb +263 -0
- data/test/test_prowl.rb +15 -0
- data/test/test_registry.rb +15 -0
- data/test/test_sensu.rb +11 -0
- data/test/test_slack.rb +57 -0
- data/test/test_socket.rb +34 -0
- data/test/test_statsd.rb +22 -0
- data/test/test_sugar.rb +42 -0
- data/test/test_system_portable_poller.rb +17 -0
- data/test/test_system_process.rb +30 -0
- data/test/test_task.rb +246 -0
- data/test/test_timeline.rb +37 -0
- data/test/test_trigger.rb +63 -0
- data/test/test_watch.rb +286 -0
- data/test/test_webhook.rb +22 -0
- metadata +475 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8d6bfdb0931d2431e3a74deebc24e8a627e10ec6
|
4
|
+
data.tar.gz: 80817e29a167482beed67d241e9df02e6fe70063
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e38b8e07ee38f004ce24473c84868d2d3636c823da80498378c48e8f2d0fdc1209ea8cbf9ed3252b8b4d96286614656b9bb292c4d88dc53af86764be501db558
|
7
|
+
data.tar.gz: feb789907c6b64dcec74fdbc1c534e9b46aa204815a0a42c41ff3e78ed1d5d4397c75615b7ebdc287a79f74455efa019acd7c94095da8a104f48a00e10cea3b4
|
data/Announce.txt
ADDED
@@ -0,0 +1,135 @@
|
|
1
|
+
Subject: [ANN] god 0.6.0 released (and mailing list)
|
2
|
+
|
3
|
+
!!!NEW MAILING LIST!!! We now have a mailing list at http://groups.google.com/group/god-rb
|
4
|
+
|
5
|
+
This release is primarily focused on increased stability, robustness, and code cleanliness.
|
6
|
+
|
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).
|
8
|
+
|
9
|
+
More attention is now paid to Syslogging behavior.
|
10
|
+
|
11
|
+
God will delete its own PID file when terminated via a user request.
|
12
|
+
|
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.
|
14
|
+
|
15
|
+
A watch can now be removed entirely at runtime using `god remove <watch name>`.
|
16
|
+
|
17
|
+
A new condition DiskUsage allows you to check the available disk space on a given volume.
|
18
|
+
|
19
|
+
Updated documentation is now available on the website:
|
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
|
+
|
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.
|
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
|
47
|
+
* Easily control non-daemonized processes
|
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
|
+
|
54
|
+
# run with: god -c /path/to/gravatar.god
|
55
|
+
#
|
56
|
+
# This is the actual config file used to keep the mongrels of
|
57
|
+
# gravatar.com running.
|
58
|
+
|
59
|
+
RAILS_ROOT = "/Users/tom/dev/gravatar2"
|
60
|
+
|
61
|
+
%w{8200 8201 8202}.each do |port|
|
62
|
+
God.watch do |w|
|
63
|
+
w.name = "gravatar2-mongrel-#{port}"
|
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
|
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
|
79
|
+
end
|
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
|
86
|
+
end
|
87
|
+
|
88
|
+
restart.condition(:cpu_usage) do |c|
|
89
|
+
c.above = 50.percent
|
90
|
+
c.times = 5
|
91
|
+
end
|
92
|
+
end
|
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
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
|
110
|
+
DOCS
|
111
|
+
|
112
|
+
Detailed documentation is available at http://god.rubyforge.org/
|
113
|
+
|
114
|
+
|
115
|
+
CHANGES
|
116
|
+
|
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
|
127
|
+
* New Conditions
|
128
|
+
* DiskUsage < PollCondition - trigger if disk usage is above limit on mount [Rudy Desjardins]
|
129
|
+
|
130
|
+
|
131
|
+
|
132
|
+
AUTHORS
|
133
|
+
|
134
|
+
Tom Preston-Werner
|
135
|
+
Kevin Clark
|
data/Gemfile
ADDED
data/History.txt
ADDED
@@ -0,0 +1,469 @@
|
|
1
|
+
== 0.13.7 / 2015-08-19
|
2
|
+
* Bug fixes
|
3
|
+
* Fixed slack integration (#217)
|
4
|
+
* Update twitter gem to support newer rubies (#219)
|
5
|
+
* Make stop_all work with newer rubies (#209)
|
6
|
+
* Don't start more DRb servers than necessary
|
7
|
+
* Minor Enhancements
|
8
|
+
* Allow uid and gid to be specified as an integer (#202)
|
9
|
+
|
10
|
+
== 0.13.6 / 2015-02-21
|
11
|
+
* Minor Enhancements
|
12
|
+
* sensu notifier (#199)
|
13
|
+
|
14
|
+
== 0.13.5 / 2015-01-09
|
15
|
+
* Minor Enhancements
|
16
|
+
* statsd notifier (#144)
|
17
|
+
* Slack notifier (#172)
|
18
|
+
* Bug fixes
|
19
|
+
* Add support for Ruby 2.2.0 (#206)
|
20
|
+
* Fix tests for Ruby 2.0 (#205)
|
21
|
+
* Make group assignment more like login (#159)
|
22
|
+
* Flush file descriptors to prevent too many processes from being started (#141)
|
23
|
+
* Allow SSL URLs (#168)
|
24
|
+
* Documentation fixes
|
25
|
+
* Clarify Hipchat privilege requirements (#176)
|
26
|
+
|
27
|
+
== 0.13.4 / 2014-03-05
|
28
|
+
* Minor Enhancements
|
29
|
+
* Hipchat reporter (#162)
|
30
|
+
* Re-open log files on SIGUSR1 (#103)
|
31
|
+
* Bug fixes
|
32
|
+
* Send query params on webhook reporter (#160)
|
33
|
+
* Don't thow an exception when there are problems reading pid file (#164)
|
34
|
+
|
35
|
+
== 0.13.3 / 2013-09-25
|
36
|
+
* Minor Enhancements
|
37
|
+
* Invoke commands for all watchers
|
38
|
+
* Airbrake reporter
|
39
|
+
* Improvements to socket responding condition
|
40
|
+
|
41
|
+
== 0.13.2 / 2013-02-26
|
42
|
+
* Minor Enhancements
|
43
|
+
* Added file_touched condition (#86)
|
44
|
+
* Bug fixes
|
45
|
+
* Ensure Ruby 1.9 fixes only apply to 1.9.0 and 1.9.1 (#125)
|
46
|
+
* Documentation fixes (#109, #84, #92)
|
47
|
+
|
48
|
+
== 0.13.1 / 2012-09-18
|
49
|
+
* Minor Changes
|
50
|
+
* Prevent auto-loading from bundler by requiring $load_god to require (#97)
|
51
|
+
|
52
|
+
== 0.13.0 / 2012-09-17
|
53
|
+
* Minor Changes
|
54
|
+
* Reduce verbosity of non-failing conditions (#111)
|
55
|
+
|
56
|
+
== 0.12.1 / 2012-01-21
|
57
|
+
* Bug Fixes
|
58
|
+
* Fix undefined variable problem in CLI (#82)
|
59
|
+
|
60
|
+
== 0.12.0 / 2012-01-13
|
61
|
+
* Minor Enhancements
|
62
|
+
* Add umask support
|
63
|
+
* Add socket response condition (#25)
|
64
|
+
* Don't require tests run as sudo under non-linux systems (#15)
|
65
|
+
* Add Bundler support
|
66
|
+
* Add keepalive simple conditional setups (#71)
|
67
|
+
* Better load command to act upon removed watches (#70)
|
68
|
+
* Add support for ssl in http_response_code condition (#36)
|
69
|
+
* New documentation at http://godrb.com
|
70
|
+
* Bug Fixes
|
71
|
+
* Use IO.print instead of IO.puts for thread safety (#35)
|
72
|
+
* Fix Slashproc poller for commands with spaces (#31)
|
73
|
+
* Various segfault and kernel panic fixes
|
74
|
+
* Fix SMTP Auth documentation (#29)
|
75
|
+
* Fix a bunch of tests that were failing on Ruby 1.9
|
76
|
+
|
77
|
+
== 0.11.0 / 2010-07-01
|
78
|
+
* Major Changes
|
79
|
+
* Rewrite notification system to be more consistent and flexible.
|
80
|
+
|
81
|
+
== 0.10.1 / 2010-05-17
|
82
|
+
* Bug Fixes
|
83
|
+
* Fix date in gemspec
|
84
|
+
|
85
|
+
== 0.10.0 / 2010-05-17
|
86
|
+
* Minor Enhancements
|
87
|
+
* Add stop_timeout and stop_signal options to Watch
|
88
|
+
* Bug Fixes
|
89
|
+
* Stop command string was being ignored
|
90
|
+
|
91
|
+
== 0.9.0 / 2010-04-03
|
92
|
+
* Minor Enhancements
|
93
|
+
* Allow kqueue for OpenBSD and NetBSD
|
94
|
+
* Add err_log and err_log_cmd
|
95
|
+
* Add God.terminate_timeout option
|
96
|
+
* Respect --log-level in Syslog
|
97
|
+
* Add configuration parameters to set permissions on socket
|
98
|
+
* Add Scout contact
|
99
|
+
* Add Prowl contact
|
100
|
+
* Bug Fixes
|
101
|
+
* Fix interleaved log messages
|
102
|
+
* Experimental
|
103
|
+
* Ruby 1.9 support
|
104
|
+
|
105
|
+
== 0.8.0 / 2009-11-30
|
106
|
+
* Minor Enhancements
|
107
|
+
* Rubygems decontamination
|
108
|
+
* Use Monitor instead of Mutex to provide ability to wait with a timeout
|
109
|
+
* Only generate log messages when they're being used
|
110
|
+
* Remove usage of Thread.critical in DriverEventQueue
|
111
|
+
* Update to work with latest bleak-house
|
112
|
+
* Cache some frequent lookups to reduce object creation
|
113
|
+
* Changing the @io.print call in SimpleLogger to not concatenate
|
114
|
+
the formatted results before printing
|
115
|
+
* Bug fixes
|
116
|
+
* Make sure we don't leak hash slots when processes die
|
117
|
+
* Make sure the driver is shutdown on Task#unregister!
|
118
|
+
* Fix memory leak when issuing "god load" successfully
|
119
|
+
* Fix defunct process
|
120
|
+
|
121
|
+
== NOTE
|
122
|
+
At this point I will stop giving credit in the history. Look at the author
|
123
|
+
and committer in the commit for that info.
|
124
|
+
|
125
|
+
== 0.7.22 / 2009-10-29
|
126
|
+
* Minor Enhancements
|
127
|
+
* Save ARGV so we can get access to it later if we want [github.com/eric]
|
128
|
+
|
129
|
+
== 0.7.21 / 2009-10-29
|
130
|
+
* Minor Enhancements
|
131
|
+
* Cache some frequent lookups to reduce object creation [github.com/eric]
|
132
|
+
* Try to make SimpleLogger less leaky [github.com/eric]
|
133
|
+
|
134
|
+
== 0.7.20 / 2009-09-24
|
135
|
+
* Minor Enhancements
|
136
|
+
* Rewrite `god status` command to be not as horrible. Add ability to get
|
137
|
+
status for individual tasks.
|
138
|
+
|
139
|
+
== 0.7.19 / 2009-09-21
|
140
|
+
* Minor Enhancements
|
141
|
+
* Teach `god status` to take a task name as a param and return
|
142
|
+
an exit code of 0 if all watches are up or a non-zero exit code
|
143
|
+
(equal to the number of non-up watches) if they are not.
|
144
|
+
|
145
|
+
== 0.7.18 / 2009-09-09
|
146
|
+
* Minor Enhancements
|
147
|
+
* Better handling of unexpected exceptions in conditions
|
148
|
+
* Added support for running processes in a directory other than '/' [github.com/samhendley]
|
149
|
+
* Bug Fixes
|
150
|
+
* Generate an actual unique identifier for email contact [github.com/underley]
|
151
|
+
|
152
|
+
== 0.7.17 / 2009-08-25
|
153
|
+
* Bug Fixes
|
154
|
+
* Fix the glob and directory config loading for -c option
|
155
|
+
|
156
|
+
== 0.7.16 / 2009-08-24
|
157
|
+
* Minor Enhancements
|
158
|
+
* Better logging for disk_usage condition [github.com/lettherebecode]
|
159
|
+
* Bug Fixes
|
160
|
+
* Only sleep if driver delay is > 0 [github.com/ps2]
|
161
|
+
* Rescue Timeout::Error exception due to smtp server timing out [github.com/ps2]
|
162
|
+
* Disk usage condition should use `df -P` to prevent line splitting [github.com/mseppae]
|
163
|
+
* Always require YAML so binary works on dumb systems
|
164
|
+
|
165
|
+
== 0.7.15 / 2009-08-19
|
166
|
+
* Minor Enhancements
|
167
|
+
* Support SSL Campfire connections [github.com/eric]
|
168
|
+
* Allow wildcards in -c configuration file option
|
169
|
+
|
170
|
+
== 0.7.14 / 2009-08-10
|
171
|
+
* Minor Enhancements
|
172
|
+
* Only store log lines when a client wishes to see them
|
173
|
+
* Add an lsb-compliant init script into god/init [Woody Peterson]
|
174
|
+
* Never require stop command; use default killer if none is specified
|
175
|
+
* Bug Fixes
|
176
|
+
* Fix redefinition error for time.h and allow it to compile on Ubuntu Edgy [github.com/tbuser]
|
177
|
+
* Fix a memory leak in jabber by adding a call to jabber_client.close [github.com/woahdae]
|
178
|
+
* Make jabber code manage one connection to make it faster, use less memory,
|
179
|
+
and not leak [github.com/woahdae]
|
180
|
+
|
181
|
+
== 0.7.13 / 2009-05-04
|
182
|
+
* Bug Fixes
|
183
|
+
* Auto daemonized processes are now stopped/unmonitored correctly [github.com/jcapote]
|
184
|
+
|
185
|
+
== 0.7.12 / 2008-12-10
|
186
|
+
* Bug Fixes
|
187
|
+
* Fix capistrano deployability [github.com/eric]
|
188
|
+
* Fix event handling [brianw]
|
189
|
+
|
190
|
+
== 0.7.11 / 2008-11-14
|
191
|
+
* Bug Fixes
|
192
|
+
* Make notifications work inside lifecycle blocks
|
193
|
+
|
194
|
+
== 0.7.10 / 2008-11-13
|
195
|
+
* Major Enhancements
|
196
|
+
* Enable sending of arbitrary signals to a task or group via `god signal`
|
197
|
+
* Bug Fixes
|
198
|
+
* setup logging *after* loading a given config file when daemonized.
|
199
|
+
enables logging to the 'God.log_file' specified in a config file. [github.com/jnewland]
|
200
|
+
* New Conditions
|
201
|
+
* FileMtime < PollCondition - trigger on file mtime durations [github.com/jwilkins]
|
202
|
+
* New Contacts
|
203
|
+
* Twitter - allow messages to twitter [github.com/jwilkins]
|
204
|
+
* Campfire - send messages to 37signals' Campfire [github.com/hellvinz]
|
205
|
+
* Minor Enhancements
|
206
|
+
* Add watch log_cmd that can be reopened with STDOUT instead of a log file [github.com/jberkel]
|
207
|
+
* Added webhook output support [Martyn Loughran]
|
208
|
+
|
209
|
+
== 0.7.9 / 2008-08-06
|
210
|
+
* Major Enhancements
|
211
|
+
* Use a psuedo-priority queue for more efficient driver loop [Darrell Kresge]
|
212
|
+
* Bug Fixes
|
213
|
+
* Fix file_writable? when using chroot [github.com/eric]
|
214
|
+
|
215
|
+
== 0.7.8 / 2008-07-09
|
216
|
+
* Bug Fixes
|
217
|
+
* Catch all Exceptions from HttpResponseCode condition [github.com/rliebling]
|
218
|
+
* Don't error out if the process went away in SlashProcPoller [Kevin Clark]
|
219
|
+
* Correction of Task#handle_poll to prevent crash under event registration failure conditions. [github.com/raggi]
|
220
|
+
* Cleaned up logging of failed e-mail sends. [github.com/raggi]
|
221
|
+
* Listen on 127.0.0.1 when using God as a client. [github.com/halorgium]
|
222
|
+
* New Behaviors
|
223
|
+
* clean_unix_socket [github.com/gma]
|
224
|
+
* New Contacts
|
225
|
+
* jabber [github.com/jwulff]
|
226
|
+
* email via sendmail [github.com/monde]
|
227
|
+
* Minor Enhancements
|
228
|
+
* chroot support [github.com/eric]
|
229
|
+
* Added God.log_file for the main god log, overridden by command line option. [github.com/raggi]
|
230
|
+
* Print groups from `god status` command if present [github.com/pdlug]
|
231
|
+
* Allow headers to be specified for http_response_code condition [github.com/pdlug]
|
232
|
+
|
233
|
+
== 0.7.7 / 2008-06-17
|
234
|
+
* Bug Fixes
|
235
|
+
* Fix detection of proc file system [raggi]
|
236
|
+
|
237
|
+
== 0.7.6 / 2008-05-13
|
238
|
+
* Major Enhancements
|
239
|
+
* Implement System::Process methods for Linux based on /proc [Kevin Clark]
|
240
|
+
* Minor Enhancements
|
241
|
+
* Allowing directories to be loaded at start [Bert Goethals]
|
242
|
+
* Bug Fixes
|
243
|
+
* Don't leak events on error in the kqueue handler [Kevin Clark]
|
244
|
+
|
245
|
+
== 0.7.5 / 2008-02-21
|
246
|
+
* Bug Fixes
|
247
|
+
* Remove Ruby's Logger and replace with custom SimpleLogger to stop threaded leak
|
248
|
+
|
249
|
+
== 0.7.4 / 2008-02-18
|
250
|
+
* Bug Fixes
|
251
|
+
* Introduce local scope to prevent faulty optimization that causes memory to leak
|
252
|
+
|
253
|
+
== 0.7.3 / 2008-02-14
|
254
|
+
* Minor Enhancements
|
255
|
+
* Add --bleakhouse to make running diagnostics easier
|
256
|
+
* Bug Fixes
|
257
|
+
* Use ::Process.kill(0, ...) instead of `kill -0` [queso]
|
258
|
+
* Fix pid_file behavior in process-centric conditions so they work with tasks [matias]
|
259
|
+
* Redirect output of daemonized god to log file or /dev/null earlier [_eric]
|
260
|
+
|
261
|
+
== 0.7.2 / 2008-02-04
|
262
|
+
* Bug Fixes
|
263
|
+
* Start event system for CLI commands
|
264
|
+
* Up internal history to 100 lines per watch
|
265
|
+
|
266
|
+
== 0.7.1 / 2008-02-04
|
267
|
+
* Minor Enhancements
|
268
|
+
* Add --no-events option to completely disable events system
|
269
|
+
|
270
|
+
== 0.7.0 / 2008-02-01
|
271
|
+
* Minor Enhancements
|
272
|
+
* Better default pid_file_directory behavior
|
273
|
+
* Add --attach <pid> to specify that god should quit if <pid> exits
|
274
|
+
* Bug Fixes
|
275
|
+
* Handle ECONNRESET in HttpResponseCode
|
276
|
+
|
277
|
+
== 0.6.12 / 2008-01-31
|
278
|
+
* Minor Enhancements
|
279
|
+
* Allow log file output for non-daemonized god
|
280
|
+
* Switch to SIGTERM from SIGHUP for default lambda killer
|
281
|
+
|
282
|
+
== 0.6.11 / 2008-01-31
|
283
|
+
* Major Enhancements
|
284
|
+
* HUGE refactor of timer system to simplify scheduling
|
285
|
+
* Minor Enhancements
|
286
|
+
* Check for a truly working event system and disallow event conditions if none is present
|
287
|
+
|
288
|
+
== 0.6.10 / 2008-01-24
|
289
|
+
* Bug Fixes
|
290
|
+
* Fix ensure_stop nil pid no local variable bug
|
291
|
+
|
292
|
+
== 0.6.9 / 2008-01-23
|
293
|
+
* Bug Fixes
|
294
|
+
* Fix Timer condition dedup behavior
|
295
|
+
|
296
|
+
== 0.6.8 / 2008-01-23
|
297
|
+
* Minor Enhancements
|
298
|
+
* Warn if a command returns a non-zero exit code
|
299
|
+
* Ensure that stop command actually stops process
|
300
|
+
|
301
|
+
== 0.6.7 / 2008-01-22
|
302
|
+
* Minor Enhancements
|
303
|
+
* Add --no-syslog option to disable Syslog
|
304
|
+
* Allow contact redeclaration (dups are ignored)
|
305
|
+
|
306
|
+
== 0.6.6 / 2008-01-07
|
307
|
+
* Bug Fixes
|
308
|
+
* Redo Timer mutexing to reduce synchronization needs
|
309
|
+
|
310
|
+
== 0.6.5 / 2008-01-04
|
311
|
+
* Bug Fixes
|
312
|
+
* Fix Timer descheduling deadlock issue
|
313
|
+
* Change HttpResponseCode to use GET instead of HEAD
|
314
|
+
|
315
|
+
== 0.6.4 / 2008-12-31
|
316
|
+
* Bug Fixes
|
317
|
+
* Refactor Hub to clarify mutexing
|
318
|
+
* Eliminate potential iteration problem in Timer
|
319
|
+
* Add caching PID accessor to process to solve event deregistration failure
|
320
|
+
|
321
|
+
== 0.6.3 / 2007-12-18
|
322
|
+
* Minor Enhancements
|
323
|
+
* Output ProcessExits registration/deregistration info
|
324
|
+
|
325
|
+
== 0.6.2 / 2007-12-17
|
326
|
+
* Minor Enhancements
|
327
|
+
* Output registered PID for ProcessExits
|
328
|
+
* Bug Fixes
|
329
|
+
* Fix `god remove <group>` not working for unmonitored watches
|
330
|
+
|
331
|
+
== 0.6.1 / 2007-12-14
|
332
|
+
|
333
|
+
* Minor Enhancement
|
334
|
+
* Log when state change is complete
|
335
|
+
|
336
|
+
== 0.6.0 / 2007-12-4
|
337
|
+
|
338
|
+
* Minor Enhancement
|
339
|
+
* Move Syslog calls into God::Logger and clean up all calling code
|
340
|
+
* Remove god's pid file on user requested termination
|
341
|
+
* Better handling and cleanup of DRb server's unix domain socket
|
342
|
+
* Allow shorthand for requesting a god log
|
343
|
+
* Add `god check` to make it easier to diagnose event problems
|
344
|
+
* Refactor god binary into class/method structure
|
345
|
+
* Implement `god remove` to remove a Task altogether
|
346
|
+
* New Conditions
|
347
|
+
* DiskUsage < PollCondition - trigger if disk usage is above limit on mount [Rudy Desjardins]
|
348
|
+
|
349
|
+
== 0.5.2 / 2007-10-10
|
350
|
+
|
351
|
+
* Minor Enhancement
|
352
|
+
* Allow extra args to pass through to config file
|
353
|
+
|
354
|
+
== 0.5.1 / 2007-10-08
|
355
|
+
|
356
|
+
* Bug Fixes
|
357
|
+
* Rescue connection refused in http response code condition
|
358
|
+
|
359
|
+
== 0.5.0 / 2007-10-05
|
360
|
+
|
361
|
+
* Major Enhancements
|
362
|
+
* Implement lifecycle scoped metric to allow for cross-state conditions
|
363
|
+
* Add TriggerCondition for conditions that need info about state changes
|
364
|
+
* Implement notification system
|
365
|
+
* Add Tasks (a generalization of Watches) to do non-process related tasks
|
366
|
+
* Add example init.d file in GOD_INSTALL_DIR/init/god [scott becker]
|
367
|
+
* Add human readable info to conditions (and make low level log lines debug)
|
368
|
+
* Switch DRb to use a unix domain socket for security reasons
|
369
|
+
* Minor Enchancements
|
370
|
+
* Allow EventConditions to do transition overloading
|
371
|
+
* Report errors during god startup instead of failing silently
|
372
|
+
* Make transition block optional (default to Always condition returning true)
|
373
|
+
* Better usage info for `god --help`
|
374
|
+
* Explain what's going on when attempting to rebind to an in-use port
|
375
|
+
* Add -b option to god binary to auto-bind to an unused port
|
376
|
+
* Add `god quit` to stop god without stopping any tasks
|
377
|
+
* Make self-daemonized Watch commands synchronous (as they should be)
|
378
|
+
* Allow self-daemonized Watches to specify a log (could be useful)
|
379
|
+
* Check for existence of config file if specified
|
380
|
+
* Robustify `god load` and report errors back to the command issuer
|
381
|
+
* Warn when `god load` tries to set global options
|
382
|
+
* Add Configurable.clear method and make built-in conditions clear on entry
|
383
|
+
* New Conditions
|
384
|
+
* Flapping < TriggerCondition - trigger on state change
|
385
|
+
* HttpResponseCode < PollCondition - trigger on http response code or timeout (thx scott becker)
|
386
|
+
* New Contacts
|
387
|
+
* Email < Contact - notify via email (smtp)
|
388
|
+
* Bug Fixes
|
389
|
+
* Fix abort not aborting problem
|
390
|
+
* Fix -p option not working for god binary
|
391
|
+
* Fix God.init not accepting block (thx _eric)
|
392
|
+
* Fix SIGHUP ignore (thx _eric)
|
393
|
+
* Fix error reporting on `god --help` (don't error report a normal SystemExit)
|
394
|
+
|
395
|
+
== 0.4.3 / 2007-09-10
|
396
|
+
* Bug Fixes
|
397
|
+
* fix Process#alive? to not raise on no such file (affects `god terminate`)
|
398
|
+
|
399
|
+
== 0.4.2 / 2007-09-10
|
400
|
+
* Bug Fixes
|
401
|
+
* fix netlink buffer issue that prevented events on Linux from working consistently [dkresge]
|
402
|
+
|
403
|
+
== 0.4.1 / 2007-09-10
|
404
|
+
* Bug Fixes
|
405
|
+
* require 'stringio' for ruby 1.8.5
|
406
|
+
|
407
|
+
== 0.4.0 / 2007-09-10
|
408
|
+
|
409
|
+
* Major Enhancements
|
410
|
+
* Add the ability for conditions to override transition state (for exceptional cases)
|
411
|
+
* Implement dynamic load of config files while god is running (god load <filename>)
|
412
|
+
* Add ability to save auto-daemonized process output to a log file
|
413
|
+
* Add robust default stop lambda command for auto-daemonized processes (inspired by _eric)
|
414
|
+
* Add status command for god binary (shows status of each watch)
|
415
|
+
* Create proper logger with timestamps
|
416
|
+
* Add log command to god binary to get real time logs for a specific watch from a running god instance
|
417
|
+
* Add terminate command for god binary (stop god and all watches)
|
418
|
+
* Minor Enhancements
|
419
|
+
* Enforce validity of Watches
|
420
|
+
* Enforce that God.init is not called after a Watch
|
421
|
+
* Move pid_file_directory creation and validation to God.start
|
422
|
+
* Remove check for at least one Watch during startup (now that dynamic loading exists)
|
423
|
+
* New Conditions
|
424
|
+
* Tries < PollCondition - triggers after the specified number of tries
|
425
|
+
* Add :notify_when_flapping behavior to check for oscillation [kevinclark]
|
426
|
+
* Add :degrading_lambda condition. [kevinclark]
|
427
|
+
It uses a decaying interval (1/2 rate) for 3 cycles before failing.
|
428
|
+
* Bug Fixes
|
429
|
+
* Use exit!(0) instead of exit! in god binary to exit with code 0 (instead of default -1)
|
430
|
+
* Command line group control fixed
|
431
|
+
* Fix cross-thread return problem
|
432
|
+
|
433
|
+
== 0.3.0 / 2007-08-17
|
434
|
+
|
435
|
+
* Fix netlink header problem on Ubuntu Edgy [Dan Sully]
|
436
|
+
* Add uid/gid setting for processes [kevinclark]
|
437
|
+
* Add autostart flag for watches so they don't necessarily startup with god [kevinclark]
|
438
|
+
* Change command line call options for god binary to accommodate watch start/stop functionality
|
439
|
+
* Add individual start/stop/restart grace periods for finer grained control
|
440
|
+
* Change default DRb port to 17165 ('god'.to_i(32))
|
441
|
+
* Implement command line control to start/restart/stop/monitor/unmonitor watches/groups by name
|
442
|
+
* Watches can now belong to a group that can be controlled as a whole
|
443
|
+
* Allow god to be installed (sans events) on systems that don't support events
|
444
|
+
* Daemonize and handle PID files for non-daemonizing scripts [kevinclark]
|
445
|
+
* Fix simple mode lifecycle gap
|
446
|
+
* Remove necessity to specify pid_file for conditions
|
447
|
+
* Change config file to use God.init and God.watch directly instead of God.meddle block
|
448
|
+
* Move god binary command logic to main library
|
449
|
+
* Enhance god binary with better reporting
|
450
|
+
* Fix synchronization bug in Timer (reported by Srini Panguluri)
|
451
|
+
* Add Lambda condition for easy custom conditions [Mike Mintz]
|
452
|
+
* Add sugar for numerics (seconds, minutes, kilobytes, megabytes, percent, etc)
|
453
|
+
* Add optional PID and log file generation to god binary for daemon mode
|
454
|
+
* Add God.load to do glob enabled loading
|
455
|
+
* Add -V option to god binary for detailed version/build info
|
456
|
+
|
457
|
+
== 0.2.0 / 2007-07-18
|
458
|
+
|
459
|
+
* Rewrote innards to use a state and event based lifecycle
|
460
|
+
* Basic support for events via kqueue (bsd/darwin) and netlink/pec (linux) [kevinclark]
|
461
|
+
* Added advanced syntax (simple syntax calls advanced api underneath)
|
462
|
+
* Condition returns have changed meaning. With simple syntax, a true return activates block
|
463
|
+
* Updated http://god.rubyforge.org with updated simple config and new advanced config
|
464
|
+
|
465
|
+
== 0.1.0 / 2007-07-07
|
466
|
+
|
467
|
+
* 1 major enhancement
|
468
|
+
* Birthday!
|
469
|
+
|