流程监控工具。灵感来自 Bluepill 和 God。
Process monitoring tool. Inspired from Bluepill and God. Requires Ruby(MRI) >= 1.9.3-p194. Uses Celluloid and Celluloid::IO.
Little demo, shows general commands and how chain works: Installation:
$ gem install eyeWe have used god and bluepill in production and always ran into bugs (segfaults, crashes, lost processes, kill not-related processes, load problems, deploy problems, ...)
We wanted something more robust and production stable.
We wanted the features of bluepill and god, with a few extras like chains, nested configuring, mask matching, easy debug configs
I hope we've succeeded, we're using eye in production and are quite happy.
examples/test.eye (more examples)
…$ eye l(oad) examples/test.eyeload folder with configs:
$ eye l examples/
$ eye l examples/*.rbforeground load:
$ eye l CONF -fIf the eye daemon has already started and you call the load command, the config will be updated (into eye daemon). New objects(applications, groups, processes) will be added and monitored. Processes removed from the config will be removed (and stopped if the process has stop_on_delete true). Other objects will update their configs.
Two global configs loaded by default, if they exist (with the first eye load):
/etc/eye.conf
~/.eyeconfigProcess statuses:
$ eye i(nfo)test
samples
sample1 ....................... up (21:52, 0%, 13Mb, )
sample2 ....................... up (21:52, 0%, 12Mb, )
event_machine ................... up (21:52, 3%, 26Mb, )
forking ......................... up (21:52, 0%, 41Mb, )
child-4206 .................... up (21:52, 0%, 41Mb, )
child-4211 .................... up (21:52, 0%, 41Mb, )
child-4214 .................... up (21:52, 0%, 41Mb, )
thin ............................ up (21:53, 2%, 54Mb, )$ eye i -j # show info in JSON formatstart, stop, restart, delete, monitor, unmonitorCommand params (with restart for example):
$ eye r(estart) all
$ eye r test
$ eye r samples
$ eye r sample1
$ eye r sample*
$ eye r test:samples
$ eye r test:samples:sample1
$ eye r test:samples:sample*
$ eye r test:*sample*Check config syntax:
$ eye c(heck) examples/test.eyeConfig explain (for debug):
$ eye e(xplain) examples/test.eyeLog tracing (tail and grep):
$ eye t(race)
$ eye t test
$ eye t sampleQuit monitoring:
$ eye q(uit)
$ eye q -s # stop all processes and quitInteractive info:
$ eye w(atch)Process statuses history:
$ eye hi(story)Eye daemon info:
$ eye x(info)
$ eye x -c # for show current configLocal Eye version LEye (like foreman):
Process states and events: How to write Eye extensions, plugins, gems:
Eye-http Eye-rotate Eye-hipchat Plugin example
Thanks Bluepill for the nice config ideas.
暂无开放 Issues,或尚未同步最近议题。