eye 0.4.2 → 0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.travis.yml +4 -0
  4. data/CHANGES.md +11 -0
  5. data/README.md +3 -3
  6. data/Rakefile +8 -0
  7. data/bin/eye +0 -316
  8. data/bin/loader_eye +3 -3
  9. data/examples/test.eye +2 -2
  10. data/eye.gemspec +4 -9
  11. data/lib/eye.rb +4 -2
  12. data/lib/eye/application.rb +3 -3
  13. data/lib/eye/checker.rb +14 -5
  14. data/lib/eye/checker/cputime.rb +23 -0
  15. data/lib/eye/checker/file_touched.rb +15 -0
  16. data/lib/eye/checker/http.rb +7 -9
  17. data/lib/eye/checker/memory.rb +1 -1
  18. data/lib/eye/checker/runtime.rb +28 -0
  19. data/lib/eye/checker/socket.rb +4 -4
  20. data/lib/eye/cli.rb +166 -0
  21. data/lib/eye/cli/commands.rb +79 -0
  22. data/lib/eye/cli/render.rb +137 -0
  23. data/lib/eye/cli/server.rb +85 -0
  24. data/lib/eye/client.rb +3 -3
  25. data/lib/eye/config.rb +17 -14
  26. data/lib/eye/controller.rb +6 -10
  27. data/lib/eye/controller/commands.rb +6 -10
  28. data/lib/eye/controller/helpers.rb +1 -1
  29. data/lib/eye/controller/send_command.rb +5 -2
  30. data/lib/eye/controller/status.rb +37 -105
  31. data/lib/eye/dsl.rb +1 -1
  32. data/lib/eye/dsl/application_opts.rb +6 -2
  33. data/lib/eye/dsl/child_process_opts.rb +3 -2
  34. data/lib/eye/dsl/config_opts.rb +2 -2
  35. data/lib/eye/dsl/group_opts.rb +2 -1
  36. data/lib/eye/dsl/main.rb +4 -2
  37. data/lib/eye/dsl/opts.rb +11 -4
  38. data/lib/eye/dsl/validation.rb +49 -43
  39. data/lib/eye/group.rb +1 -1
  40. data/lib/eye/loader.rb +5 -9
  41. data/lib/eye/{settings.rb → local.rb} +1 -1
  42. data/lib/eye/logger.rb +5 -0
  43. data/lib/eye/notify.rb +12 -6
  44. data/lib/eye/notify/jabber.rb +2 -2
  45. data/lib/eye/process/child.rb +3 -1
  46. data/lib/eye/process/commands.rb +2 -2
  47. data/lib/eye/process/controller.rb +1 -1
  48. data/lib/eye/process/trigger.rb +1 -1
  49. data/lib/eye/sigar.rb +5 -0
  50. data/lib/eye/system.rb +7 -6
  51. data/lib/eye/system_resources.rb +46 -41
  52. data/lib/eye/trigger.rb +15 -8
  53. data/lib/eye/trigger/flapping.rb +1 -1
  54. data/lib/eye/trigger/stop_childs.rb +1 -1
  55. data/lib/eye/trigger/transition.rb +15 -0
  56. data/lib/eye/utils.rb +12 -0
  57. data/lib/eye/utils/leak_19.rb +7 -0
  58. data/lib/eye/utils/mini_active_support.rb +106 -0
  59. metadata +24 -15
  60. data/lib/eye/controller/show_history.rb +0 -63
  61. data/lib/eye/trigger/state.rb +0 -11
@@ -1,63 +0,0 @@
1
- module Eye::Controller::ShowHistory
2
-
3
- def history_string(*args)
4
- data = history_data(*args)
5
-
6
- res = []
7
- data.each do |name, data|
8
- res << detail_process_info(name, data)
9
- end
10
-
11
- res * "\n"
12
- end
13
-
14
- def history_data(*args)
15
- res = {}
16
- get_processes_for_history(*args).each do |process|
17
- res[process.full_name] = process.schedule_history.reject{|c| c[:state] == :check_crash }
18
- end
19
- res
20
- end
21
-
22
- private
23
-
24
- def get_processes_for_history(*args)
25
- args = ['*'] if args.empty?
26
- res = []
27
- matched_objects(*args) do |obj|
28
- if (obj.is_a?(Eye::Process) || obj.is_a?(Eye::ChildProcess))
29
- res << obj
30
- else
31
- res += obj.processes.to_a
32
- end
33
- end
34
- Eye::Utils::AliveArray.new(res)
35
- end
36
-
37
- def detail_process_info(name, history)
38
- return if history.empty?
39
-
40
- res = "\033[1m#{name}\033[0m:\n"
41
- history = history.reverse
42
-
43
- history.chunk{|h| [h[:state], h[:reason].to_s] }.each do |_, hist|
44
- if hist.size >= 3
45
- res << detail_process_info_string(hist[0])
46
- res << detail_process_info_string(:state => "... #{hist.size - 2} times", :reason => '...', :at => hist[-1][:at])
47
- res << detail_process_info_string(hist[-1])
48
- else
49
- hist.each do |h|
50
- res << detail_process_info_string(h)
51
- end
52
- end
53
- end
54
-
55
- res
56
- end
57
-
58
- def detail_process_info_string(h)
59
- state = h[:state].to_s.ljust(14)
60
- "#{Time.at(h[:at]).to_s(:db)} - #{state} (#{h[:reason]})\n"
61
- end
62
-
63
- end
@@ -1,11 +0,0 @@
1
- class Eye::Trigger::State < Eye::Trigger
2
-
3
- # triggers :state, :to => :up, :from => :starting, :do => ->{ ... }
4
-
5
- param :do, [Proc]
6
-
7
- def check(trans)
8
- instance_exec(&@options[:do]) if @options[:do]
9
- end
10
-
11
- end