History.txt

Path: History.txt
Last Update: Thu Sep 25 14:49:29 +0000 2008

0.6.0 /

  • Minor Enhancement
    • Move Syslog calls into God::Logger and clean up all calling code
    • Remove god‘s pid file on user requested termination
    • Better handling and cleanup of DRb server‘s unix domain socket
    • Allow shorthand for requesting a god log
    • Add `god check` to make it easier to diagnose event problems
    • Refactor god binary into class/method structure
    • Implement `god remove` to remove a Task altogether
  • New Conditions
    • DiskUsage < PollCondition - trigger if disk usage is above limit on mount [Rudy Desjardins]

0.5.2 / 2007-10-10

  • Minor Enhancement
    • Allow extra args to pass through to config file

0.5.1 / 2007-10-08

  • Bug Fixes
    • Rescue connection refused in http response code condition

0.5.0 / 2007-10-05

  • Major Enhancements
    • Implement lifecycle scoped metric to allow for cross-state conditions
    • Add TriggerCondition for conditions that need info about state changes
    • Implement notification system
    • Add Tasks (a generalization of Watches) to do non-process related tasks
    • Add example init.d file in GOD_INSTALL_DIR/init/god [scott becker]
    • Add human readable info to conditions (and make low level log lines debug)
    • Switch DRb to use a unix domain socket for security reasons
  • Minor Enchancements
    • Allow EventConditions to do transition overloading
    • Report errors during god startup instead of failing silently
    • Make transition block optional (default to Always condition returning true)
    • Better usage info for `god —help`
    • Explain what‘s going on when attempting to rebind to an in-use port
    • Add -b option to god binary to auto-bind to an unused port
    • Add `god quit` to stop god without stopping any tasks
    • Make self-daemonized Watch commands synchronous (as they should be)
    • Allow self-daemonized Watches to specify a log (could be useful)
    • Check for existence of config file if specified
    • Robustify `god load` and report errors back to the command issuer
    • Warn when `god load` tries to set global options
    • Add Configurable.clear method and make built-in conditions clear on entry
  • New Conditions
    • Flapping < TriggerCondition - trigger on state change
    • HttpResponseCode < PollCondition - trigger on http response code or timeout (thx scott becker)
  • New Contacts
    • Email < Contact - notify via email (smtp)
  • Bug Fixes
    • Fix abort not aborting problem
    • Fix -p option not working for god binary
    • Fix God.init not accepting block (thx _eric)
    • Fix SIGHUP ignore (thx _eric)
    • Fix error reporting on `god —help` (don‘t error report a normal SystemExit)

0.4.3 / 2007-09-10

  • Bug Fixes
    • fix Process#alive? to not raise on no such file (affects `god terminate`)

0.4.2 / 2007-09-10

  • Bug Fixes
    • fix netlink buffer issue that prevented events on Linux from working consistently [dkresge]

0.4.1 / 2007-09-10

  • Bug Fixes
    • require ‘stringio’ for ruby 1.8.5

0.4.0 / 2007-09-10

  • Major Enhancements
    • Add the ability for conditions to override transition state (for exceptional cases)
    • Implement dynamic load of config files while god is running (god load <filename>)
    • Add ability to save auto-daemonized process output to a log file
    • Add robust default stop lambda command for auto-daemonized processes (inspired by _eric)
    • Add status command for god binary (shows status of each watch)
    • Create proper logger with timestamps
    • Add log command to god binary to get real time logs for a specific watch from a running god instance
    • Add terminate command for god binary (stop god and all watches)
  • Minor Enhancements
    • Enforce validity of Watches
    • Enforce that God.init is not called after a Watch
    • Move pid_file_directory creation and validation to God.start
    • Remove check for at least one Watch during startup (now that dynamic loading exists)
  • New Conditions
    • Tries < PollCondition - triggers after the specified number of tries
    • Add :notify_when_flapping behavior to check for oscillation [kevinclark]
    • Add :degrading_lambda condition. [kevinclark] It uses a decaying interval (1/2 rate) for 3 cycles before failing.
  • Bug Fixes
    • Use exit!(0) instead of exit! in god binary to exit with code 0 (instead of default -1)
    • Command line group control fixed
    • Fix cross-thread return problem

0.3.0 / 2007-08-17

  • Fix netlink header problem on Ubuntu Edgy [Dan Sully]
  • Add uid/gid setting for processes [kevinclark]
  • Add autostart flag for watches so they don‘t necessarily startup with god [kevinclark]
  • Change command line call options for god binary to accommodate watch start/stop functionality
  • Add individual start/stop/restart grace periods for finer grained control
  • Change default DRb port to 17165 (‘god’.to_i(32))
  • Implement command line control to start/restart/stop/monitor/unmonitor watches/groups by name
  • Watches can now belong to a group that can be controlled as a whole
  • Allow god to be installed (sans events) on systems that don‘t support events
  • Daemonize and handle PID files for non-daemonizing scripts [kevinclark]
  • Fix simple mode lifecycle gap
  • Remove necessity to specify pid_file for conditions
  • Change config file to use God.init and God.watch directly instead of God.meddle block
  • Move god binary command logic to main library
  • Enhance god binary with better reporting
  • Fix synchronization bug in Timer (reported by Srini Panguluri)
  • Add Lambda condition for easy custom conditions [Mike Mintz]
  • Add sugar for numerics (seconds, minutes, kilobytes, megabytes, percent, etc)
  • Add optional PID and log file generation to god binary for daemon mode
  • Add God.load to do glob enabled loading
  • Add -V option to god binary for detailed version/build info

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 god.rubyforge.org with updated simple config and new advanced config

0.1.0 / 2007-07-07

  • 1 major enhancement
    • Birthday!

[Validate]