observed 0.1.1 → 0.2.0.rc1

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.
Files changed (94) hide show
  1. checksums.yaml +9 -9
  2. data/.travis.yml +4 -0
  3. data/README.md +53 -78
  4. data/examples/observed.rb +1 -1
  5. data/exe/observed-oneshot +3 -1
  6. data/features/explicit_routing.feature +33 -0
  7. data/features/oneshot.feature +4 -0
  8. data/features/test_in_single_ruby_source.feature +4 -0
  9. data/integrations/observed-clockwork/features/run_observed_inside_clockwork.feature +6 -7
  10. data/integrations/observed-clockwork/lib/observed/clockwork/version.rb +1 -1
  11. data/integrations/observed-clockwork/lib/observed/clockwork.rb +0 -1
  12. data/integrations/observed-clockwork/observed-clockwork.gemspec +1 -1
  13. data/integrations/observed-eventmachine/.gitignore +17 -0
  14. data/integrations/observed-eventmachine/Gemfile +8 -0
  15. data/integrations/observed-eventmachine/LICENSE.txt +22 -0
  16. data/integrations/observed-eventmachine/README.md +29 -0
  17. data/integrations/observed-eventmachine/Rakefile +1 -0
  18. data/integrations/observed-eventmachine/examples/observed.rb +30 -0
  19. data/integrations/observed-eventmachine/features/integration_via_single_ruby_source.feature +48 -0
  20. data/integrations/observed-eventmachine/features/support/env.rb +8 -0
  21. data/integrations/observed-eventmachine/lib/observed/eventmachine/version.rb +5 -0
  22. data/integrations/observed-eventmachine/lib/observed/eventmachine.rb +70 -0
  23. data/integrations/observed-eventmachine/observed-eventmachine.gemspec +28 -0
  24. data/lib/observed/application/oneshot.rb +14 -37
  25. data/lib/observed/builtin_plugins/file.rb +5 -14
  26. data/lib/observed/builtin_plugins/stdout.rb +7 -14
  27. data/lib/observed/config.rb +4 -4
  28. data/lib/observed/config_builder.rb +154 -87
  29. data/lib/observed/config_dsl.rb +2 -8
  30. data/lib/observed/configurable.rb +61 -3
  31. data/lib/observed/context.rb +90 -0
  32. data/lib/observed/default/observer.rb +2 -5
  33. data/lib/observed/default.rb +0 -1
  34. data/lib/observed/event_bus.rb +31 -0
  35. data/lib/observed/execution_job_factory.rb +95 -0
  36. data/lib/observed/job.rb +163 -0
  37. data/lib/observed/jobbed_event_bus.rb +33 -0
  38. data/lib/observed/logging.rb +40 -0
  39. data/lib/observed/observer.rb +1 -0
  40. data/lib/observed/observer_helpers/timer.rb +13 -5
  41. data/lib/observed/pluggable.rb +11 -0
  42. data/lib/observed/reporter/regexp_matching.rb +2 -1
  43. data/lib/observed/reporter/report_formatting.rb +57 -0
  44. data/lib/observed/reporter.rb +0 -2
  45. data/lib/observed/system.rb +11 -78
  46. data/lib/observed/translator.rb +22 -0
  47. data/lib/observed/version.rb +1 -1
  48. data/lib/observed.rb +10 -12
  49. data/omnibus-observed/.gitignore +9 -0
  50. data/omnibus-observed/Berksfile +3 -0
  51. data/omnibus-observed/Berksfile.lock +52 -0
  52. data/omnibus-observed/Gemfile +4 -0
  53. data/omnibus-observed/README.md +102 -0
  54. data/omnibus-observed/Vagrantfile +93 -0
  55. data/omnibus-observed/config/projects/observed.rb +20 -0
  56. data/omnibus-observed/config/software/observed.rb +19 -0
  57. data/omnibus-observed/package-scripts/observed/makeselfinst +27 -0
  58. data/omnibus-observed/package-scripts/observed/postinst +17 -0
  59. data/omnibus-observed/package-scripts/observed/postrm +9 -0
  60. data/plugins/observed-fluentd/lib/observed/fluentd/version.rb +1 -1
  61. data/plugins/observed-gauge/README.md +5 -0
  62. data/plugins/observed-gauge/lib/observed/gauge/version.rb +1 -1
  63. data/plugins/observed-gauge/lib/observed/gauge.rb +11 -13
  64. data/plugins/observed-gauge/observed-gauge.gemspec +1 -1
  65. data/plugins/observed-gauge/spec/gauge_spec.rb +7 -7
  66. data/plugins/observed-growl/Gemfile +6 -0
  67. data/plugins/observed-growl/lib/observed/growl.rb +80 -0
  68. data/plugins/observed-http/lib/observed/http/version.rb +1 -1
  69. data/plugins/observed-http/lib/observed/http.rb +10 -8
  70. data/plugins/observed-http/observed-http.gemspec +1 -1
  71. data/plugins/observed-http/spec/http_spec.rb +62 -7
  72. data/plugins/observed-http/spec/integration_spec.rb +14 -0
  73. data/plugins/observed-shell/Gemfile +5 -0
  74. data/plugins/observed-shell/lib/observed/shell.rb +54 -0
  75. data/run-integration-tests +81 -0
  76. data/spec/builtin_plugins/stdout_spec.rb +7 -3
  77. data/spec/config_builder_spec.rb +42 -59
  78. data/spec/config_dsl_spec.rb +4 -0
  79. data/spec/configurable_spec.rb +141 -31
  80. data/spec/event_bus_spec.rb +16 -0
  81. data/spec/execution_job_factory_spec.rb +35 -0
  82. data/spec/job_factory_spec.rb +16 -0
  83. data/spec/job_spec.rb +228 -0
  84. data/spec/jobbed_event_bus_spec.rb +38 -0
  85. data/spec/observed_spec.rb +203 -0
  86. data/spec/observer_helpers/timer_spec.rb +187 -0
  87. data/spec/oneshot_spec.rb +7 -2
  88. data/spec/system_spec.rb +5 -39
  89. metadata +55 -12
  90. data/lib/observed/default/reporter.rb +0 -17
  91. data/lib/observed/reader.rb +0 -14
  92. data/lib/observed/writer.rb +0 -14
  93. data/spec/reader_spec.rb +0 -15
  94. data/spec/writer_spec.rb +0 -16
@@ -76,4 +76,207 @@ describe Observed do
76
76
  end
77
77
  end
78
78
  end
79
+
80
+ describe 'when included' do
81
+ subject {
82
+ Module.new do
83
+ extend Observed
84
+ end
85
+ }
86
+ let(:t) {
87
+ Time.now
88
+ }
89
+ let(:common) {
90
+ 'common'
91
+ }
92
+ let(:out) {
93
+ out = mock('out1')
94
+ out.expects(:write).with(tag:'t', foo:1, foo2:1, bar:2, bar2:2, baz:3, baz2:3, r3:'common', time: t)
95
+ .at_least_once
96
+ out
97
+ }
98
+ it 'can be used to define components and trigger them immediately' do
99
+ report_to_out = subject.report do |data, options|
100
+ out.write data.merge(baz2:data[:baz]).merge(r3: common).merge(options)
101
+ end
102
+ observe_then_translate_then_report = (
103
+ subject.observe 'foo' do |data|
104
+ data.merge(foo2:data[:foo],bar:2)
105
+ end
106
+ ).then(
107
+ subject.translate do |data, options|
108
+ data.merge(bar2:data[:bar],baz:3)
109
+ end
110
+ ).then(
111
+ report_to_out
112
+ )
113
+
114
+ observe_then_translate_then_report.now({foo:1}, {tag: 't', time: t})
115
+
116
+ end
117
+ context 'with plugins' do
118
+ before {
119
+ class TestObserver < Observed::Observer
120
+ plugin_name 'test1'
121
+ def observe(data, options)
122
+ data.merge({foo2:data[:foo],bar:2})
123
+ end
124
+ end
125
+ class TestTranslator < Observed::Translator
126
+ plugin_name 'test1'
127
+ def translate(data, options)
128
+ data.merge({bar2:data[:bar],baz:3})
129
+ end
130
+ end
131
+ class TestReporter < Observed::Reporter
132
+ plugin_name 'test1'
133
+ attribute :common
134
+ include Observed::Reporter::RegexpMatching
135
+ def report(data, options)
136
+ out = options[:out]
137
+ options = options.dup
138
+ options.delete :out
139
+ out.write data.merge({baz2:data[:baz],r3:common}.merge(options))
140
+ end
141
+ end
142
+ }
143
+ it 'can be used to define components from plugins and trigger them immediately' do
144
+ observe_then_translate_then_report = (subject.observe via: 'test1')
145
+ .then(subject.translate via: 'test1')
146
+ .then(subject.report via: 'test1', with: {common: common})
147
+
148
+ observe_then_translate_then_report.now({foo:1}, {tag: 't', time: t, out: out})
149
+ end
150
+ it 'can be used to send and receive tagged events' do
151
+ require 'observed/job'
152
+ require 'observed/jobbed_event_bus'
153
+ executor = Observed::BlockingJobExecutor.new
154
+ job_factory = Observed::JobFactory.new(executor: executor)
155
+ bus = Observed::JobbedEventBus.new(job_factory: job_factory)
156
+
157
+ observe_then_send = (subject.observe via: 'test1')
158
+ .then(bus.pipe_to_emit 'foo')
159
+
160
+ bus.receive(/foo/)
161
+ .then(subject.translate via: 'test1')
162
+ .then(subject.report via: 'test1', with: {common: common})
163
+
164
+ observe_then_send.now({foo:1}, {tag: 't', time: t, out: out})
165
+ end
166
+ it 'can be used to send and receive tagged events with the default event bus' do
167
+ require 'observed/job'
168
+
169
+ subject.configure executor: Observed::BlockingJobExecutor.new
170
+
171
+ observe_then_send = (subject.observe via: 'test1')
172
+ .then(subject.emit 'foo')
173
+
174
+ subject.receive(/foo/)
175
+ .then(subject.translate via: 'test1')
176
+ .then(subject.report via: 'test1', with: {common: common})
177
+
178
+ observe_then_send.now({foo:1}, {tag: 't', time: t, out: out})
179
+ end
180
+ it 'provides the way to send the tagged events with a bit shorter code' do
181
+ require 'observed/job'
182
+
183
+ subject.configure executor: Observed::BlockingJobExecutor.new
184
+
185
+ observe_then_send = (subject.observe 'foo', via: 'test1')
186
+
187
+ subject.receive(/foo/)
188
+ .then(subject.translate via: 'test1')
189
+ .then(subject.report via: 'test1', with: {out: out, common: common})
190
+
191
+ observe_then_send.now({foo:1}, {tag: 't', time: t, out: out})
192
+ end
193
+ it 'provides the way to receive the tagged events with a bit shorter code' do
194
+ require 'observed/job'
195
+
196
+ subject.configure executor: Observed::BlockingJobExecutor.new
197
+
198
+ observe_then_send = (subject.observe via: 'test1')
199
+ .then(subject.translate via: 'test1')
200
+ .then(subject.emit('bar'))
201
+
202
+ subject.report /bar/, via: 'test1', with: {out: out, common: common}
203
+
204
+ observe_then_send.now({foo:1}, {tag: 't', time: t, out: out})
205
+ end
206
+ it 'provides the way to group up observations' do
207
+ require 'observed/job'
208
+
209
+ subject.configure executor: Observed::BlockingJobExecutor.new
210
+
211
+ subject.group :a, [
212
+ (subject.observe via: 'test1')
213
+ .then(subject.translate via: 'test1')
214
+ .then(subject.emit('baz'))
215
+ ]
216
+
217
+ subject.report /baz/, via: 'test1', with: {out: out, common: common}
218
+
219
+ subject.group(:a).each do |observe_something|
220
+ observe_something.now({foo:1}, {tag: 't', time: t, out: out})
221
+ end
222
+ end
223
+ it 'provides the way to group up observations by their tags' do
224
+ require 'observed/job'
225
+
226
+ subject.configure executor: Observed::BlockingJobExecutor.new
227
+
228
+ subject.observe 'hoge', via: 'test1'
229
+
230
+ subject.receive(/hoge/)
231
+ .then(subject.translate via: 'test1')
232
+ .then(subject.report via: 'test1', with: {out: out, common: common})
233
+
234
+ subject.group('hoge').each do |observe_something|
235
+ observe_something.now({foo:1}, {tag: 't', time: t, out: out})
236
+ end
237
+ end
238
+ it 'provides the way to run a group of observations in single method call' do
239
+ require 'observed/job'
240
+
241
+ subject.configure executor: Observed::BlockingJobExecutor.new
242
+
243
+ subject.observe 'hoge', via: 'test1'
244
+
245
+ subject.receive(/hoge/)
246
+ .then(subject.translate via: 'test1')
247
+ .then(subject.report via: 'test1', with: {out: out, common: common})
248
+
249
+ subject.run_group('hoge').now({foo:1}, {tag: 't', time: t, out: out})
250
+ end
251
+ it 'provides a short-cut for running a group of observations' do
252
+ require 'observed/job'
253
+
254
+ subject.configure executor: Observed::BlockingJobExecutor.new
255
+
256
+ subject.observe 'fuga', via: 'test1'
257
+
258
+ subject.receive(/fuga/)
259
+ .then(subject.translate via: 'test1')
260
+ .then(subject.report via: 'test1', with: {out: out, common: common})
261
+
262
+ subject.run('fuga', {foo:1}, {tag: 't', time: t, out: out})
263
+ end
264
+ it 'provides the default values for the option `tag` and `time`' do
265
+ require 'observed/job'
266
+
267
+ subject.configure executor: Observed::BlockingJobExecutor.new
268
+
269
+ subject.observe 't', via: 'test1'
270
+
271
+ subject.receive(/t/)
272
+ .then(subject.translate via: 'test1')
273
+ .then(subject.report via: 'test1', with: {out: out, common: common})
274
+
275
+ ::Time.stubs(now: t)
276
+
277
+ subject.run('t', {foo:1}, {out: out})
278
+ end
279
+ end
280
+
281
+ end
79
282
  end
@@ -0,0 +1,187 @@
1
+ require 'spec_helper'
2
+
3
+ require 'observed/observer'
4
+ require 'observed/observer_helpers/timer'
5
+ require 'observed/configurable'
6
+
7
+ describe describe Observed::ObserverHelpers::Timer do
8
+
9
+ before {
10
+ subject.configure system: sys, logger: logger
11
+ }
12
+
13
+ let(:sys) {
14
+ sys = stub('system')
15
+ sys.stubs(:now).returns(before).then.returns(after)
16
+ sys
17
+ }
18
+
19
+ let(:before) { Time.now }
20
+
21
+ let(:after) { Time.now + 1 }
22
+
23
+ let(:logger) {
24
+ mock('logger')
25
+ }
26
+
27
+ context 'when included to the new Observer implementation class' do
28
+ subject {
29
+ klass = Class.new(Observed::Observer) do
30
+ include Observed::ObserverHelpers::Timer
31
+ include Observed::Configurable
32
+ include Observed::Logging
33
+
34
+ def observe(data)
35
+ [tag, data]
36
+ end
37
+ end
38
+ klass.new
39
+ }
40
+ it 'returns the result instead of reporting it via the system' do
41
+ data = ['test.success', {status: :success, result: 'the result', elapsed_time: after - before }]
42
+
43
+ expect(
44
+ subject.time_and_report(tag: 'test', timeout_in_seconds: 1.0) do
45
+ 'the result'
46
+ end
47
+ ).to eq(data)
48
+ end
49
+ end
50
+
51
+ context 'when its logging enabled' do
52
+
53
+ subject {
54
+ klass = Class.new(Observed::Observer) do
55
+ include Observed::ObserverHelpers::Timer
56
+ include Observed::Configurable
57
+ include Observed::Logging
58
+ end
59
+ klass.new
60
+ }
61
+
62
+ describe 'its `time` method' do
63
+ context 'when missing :timeout_in_seconds parameter' do
64
+ it 'fails' do
65
+
66
+ expect {
67
+ subject.time({}) do
68
+ fail 'This block should not be called'
69
+ end
70
+ }.to raise_error(/The key `:timeout_in_seconds` must be exist in the options/)
71
+
72
+ end
73
+ end
74
+
75
+ context 'with correct parameters' do
76
+ context 'given the block which does not time out' do
77
+ it 'returns the result containing its status, value, elapsed time' do
78
+
79
+ expect(
80
+ subject.time({timeout_in_seconds: 1.0}) do
81
+ 'test_value'
82
+ end
83
+ ).to eq(status: :success, result: 'test_value', elapsed_time: after - before)
84
+
85
+ end
86
+
87
+ context 'given the block which does time out' do
88
+ it 'returns the result containing its status, flag, message while logging the error' do
89
+
90
+ logger.expects(:debug).once
91
+ expect(
92
+ subject.time(timeout_in_seconds: 1.0) do
93
+ raise Timeout::Error
94
+ end
95
+ ).to eq(status: :error, timed_out: true, error: {message: 'Timed out.'})
96
+
97
+ end
98
+ end
99
+
100
+ context 'given the block which fails' do
101
+ it 'returns the result containing its status, message while logging the error' do
102
+
103
+ logger.expects(:error).once
104
+ expect(
105
+ subject.time(timeout_in_seconds: 1.0) do
106
+ raise RuntimeError, 'The error message'
107
+ end
108
+ ).to eq(status: :error, error: {message: 'The error message'})
109
+
110
+ end
111
+ end
112
+ end
113
+ end
114
+
115
+ end
116
+ end
117
+
118
+ context 'when its logging disabled' do
119
+
120
+ subject {
121
+ klass = Class.new(Observed::Observer) do
122
+ include Observed::ObserverHelpers::Timer
123
+ include Observed::Configurable
124
+ end
125
+ klass.new
126
+ }
127
+
128
+ describe 'its `time` method' do
129
+ context 'with correct parameters' do
130
+ context 'given the block which does time out' do
131
+ it 'returns the result containing its status, flag, message while not logging the error' do
132
+
133
+ logger.expects(:debug).never
134
+ expect(
135
+ subject.time(timeout_in_seconds: 1.0) do
136
+ raise Timeout::Error
137
+ end
138
+ ).to eq(status: :error, error: {message: 'Timed out.'}, timed_out: true)
139
+ end
140
+ end
141
+
142
+ context 'given the block which fails' do
143
+ it 'returns the result containing its status, message while not logging the error' do
144
+
145
+ logger.expects(:error).never
146
+ expect(
147
+ subject.time(timeout_in_seconds: 1.0) do
148
+ raise StandardError, 'The error message'
149
+ end
150
+ ).to eq(status: :error, error: {message: 'The error message'})
151
+
152
+ end
153
+ end
154
+ end
155
+ end
156
+
157
+ describe 'its `time_and_report` method' do
158
+ context 'when :tag parameter is not given' do
159
+ it 'fails' do
160
+
161
+ expect {
162
+ subject.time_and_report(timeout_in_seconds: 1.0) do
163
+ 'the result'
164
+ end
165
+ }.to raise_error
166
+
167
+ end
168
+ end
169
+
170
+ context 'when :tag parameter is given' do
171
+ it 'reports the result of `time`' do
172
+
173
+ data = ['test.success', {status: :success, result: 'the result', elapsed_time: after - before }]
174
+
175
+ sys.expects(:report).with(*data).once
176
+
177
+ expect(
178
+ subject.time_and_report(tag: 'test', timeout_in_seconds: 1.0) do
179
+ 'the result'
180
+ end
181
+ ).to eq(data)
182
+
183
+ end
184
+ end
185
+ end
186
+ end
187
+ end
data/spec/oneshot_spec.rb CHANGED
@@ -52,7 +52,12 @@ describe Observed::Application::Oneshot do
52
52
  end
53
53
  end
54
54
  end
55
- context 'with configuration directories' do
56
-
55
+ describe '#parse_argv!' do
56
+ it 'parses ARGV like arrays and extracts Hash objects containing initialization parameters' do
57
+ argv = %w| -l logfile -d observed.rb foo1 |
58
+ params = Observed::Application::Oneshot.parse_argv! argv
59
+ expect(params).to eq({log_file: Pathname.new('logfile'), debug: true, config_file: 'observed.rb'})
60
+ expect(argv).to eq(%w| foo1 |)
61
+ end
57
62
  end
58
63
  end
data/spec/system_spec.rb CHANGED
@@ -9,37 +9,6 @@ describe Observed::System do
9
9
  Observed::System.new(the_config)
10
10
  }
11
11
 
12
- context 'with reporters configured' do
13
-
14
- let(:the_config) {
15
- s = stub('foo')
16
- s.stubs(reporters: [reporter])
17
- { config: s, logger: Logger.new(STDOUT, Logger::DEBUG) }
18
- }
19
-
20
- let(:reporter) {
21
- s = stub('reporter')
22
- s.stubs(match: true)
23
- s
24
- }
25
-
26
- let(:the_time) {
27
- Time.now
28
- }
29
-
30
- before {
31
- Time.stubs(now: the_time)
32
- }
33
-
34
- context 'when the time of a report is omitted' do
35
- it 'complements the current time' do
36
- reporter.expects(:report).with('the_tag', the_time, {data:1})
37
- subject.report('the_tag', {data:1})
38
- end
39
- end
40
-
41
- end
42
-
43
12
  context 'with observers configured' do
44
13
 
45
14
  let(:observers) {
@@ -52,11 +21,15 @@ describe Observed::System do
52
21
  c
53
22
  }
54
23
 
24
+ let(:context) {
25
+ Observed::Context.new
26
+ }
27
+
55
28
  let(:the_config) {
56
29
  c = stub('config')
57
30
  c.stubs(observers: observers)
58
31
  c
59
- { config: c, logger: Logger.new(STDOUT, Logger::DEBUG) }
32
+ { config: c, logger: Logger.new(STDOUT, Logger::DEBUG), context: context }
60
33
  }
61
34
 
62
35
  context 'when there is no matching observer for a tag' do
@@ -64,12 +37,5 @@ describe Observed::System do
64
37
  expect { subject.run('foo') }.to raise_error(/No configuration found for observation name 'foo'/)
65
38
  end
66
39
  end
67
-
68
- context 'when there is one or more observers matches the tag' do
69
- it 'runs the observer' do
70
- observer.expects(:observe).once
71
- expect { subject.run('bar') }.to_not raise_error
72
- end
73
- end
74
40
  end
75
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: observed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - KUOKA Yusuke
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2013-11-11 00:00:00.000000000 Z
11
+ date: 2013-12-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -141,6 +141,7 @@ files:
141
141
  - examples/00readme/observed.rb
142
142
  - examples/observed.rb
143
143
  - exe/observed-oneshot
144
+ - features/explicit_routing.feature
144
145
  - features/oneshot.feature
145
146
  - features/support/env.rb
146
147
  - features/test_in_single_ruby_source.feature
@@ -161,6 +162,17 @@ files:
161
162
  - integrations/observed-clockwork/lib/observed/clockwork.rb
162
163
  - integrations/observed-clockwork/lib/observed/clockwork/version.rb
163
164
  - integrations/observed-clockwork/observed-clockwork.gemspec
165
+ - integrations/observed-eventmachine/.gitignore
166
+ - integrations/observed-eventmachine/Gemfile
167
+ - integrations/observed-eventmachine/LICENSE.txt
168
+ - integrations/observed-eventmachine/README.md
169
+ - integrations/observed-eventmachine/Rakefile
170
+ - integrations/observed-eventmachine/examples/observed.rb
171
+ - integrations/observed-eventmachine/features/integration_via_single_ruby_source.feature
172
+ - integrations/observed-eventmachine/features/support/env.rb
173
+ - integrations/observed-eventmachine/lib/observed/eventmachine.rb
174
+ - integrations/observed-eventmachine/lib/observed/eventmachine/version.rb
175
+ - integrations/observed-eventmachine/observed-eventmachine.gemspec
164
176
  - lib/observed.rb
165
177
  - lib/observed/application.rb
166
178
  - lib/observed/application/oneshot.rb
@@ -171,23 +183,39 @@ files:
171
183
  - lib/observed/config_builder.rb
172
184
  - lib/observed/config_dsl.rb
173
185
  - lib/observed/configurable.rb
186
+ - lib/observed/context.rb
174
187
  - lib/observed/default.rb
175
188
  - lib/observed/default/observer.rb
176
- - lib/observed/default/reporter.rb
189
+ - lib/observed/event_bus.rb
190
+ - lib/observed/execution_job_factory.rb
177
191
  - lib/observed/hash.rb
178
192
  - lib/observed/hash/builder.rb
179
193
  - lib/observed/hash/fetcher.rb
180
194
  - lib/observed/hash/key_path_encoding.rb
195
+ - lib/observed/job.rb
196
+ - lib/observed/jobbed_event_bus.rb
197
+ - lib/observed/logging.rb
181
198
  - lib/observed/observer.rb
182
199
  - lib/observed/observer_helpers/timer.rb
183
200
  - lib/observed/pluggable.rb
184
- - lib/observed/reader.rb
185
201
  - lib/observed/reporter.rb
186
202
  - lib/observed/reporter/regexp_matching.rb
203
+ - lib/observed/reporter/report_formatting.rb
187
204
  - lib/observed/system.rb
205
+ - lib/observed/translator.rb
188
206
  - lib/observed/version.rb
189
- - lib/observed/writer.rb
190
207
  - observed.gemspec
208
+ - omnibus-observed/.gitignore
209
+ - omnibus-observed/Berksfile
210
+ - omnibus-observed/Berksfile.lock
211
+ - omnibus-observed/Gemfile
212
+ - omnibus-observed/README.md
213
+ - omnibus-observed/Vagrantfile
214
+ - omnibus-observed/config/projects/observed.rb
215
+ - omnibus-observed/config/software/observed.rb
216
+ - omnibus-observed/package-scripts/observed/makeselfinst
217
+ - omnibus-observed/package-scripts/observed/postinst
218
+ - omnibus-observed/package-scripts/observed/postrm
191
219
  - plugins/observed-fluentd/.gitignore
192
220
  - plugins/observed-fluentd/Gemfile
193
221
  - plugins/observed-fluentd/LICENSE.txt
@@ -212,6 +240,8 @@ files:
212
240
  - plugins/observed-gauge/observed-gauge.gemspec
213
241
  - plugins/observed-gauge/spec/gauge_spec.rb
214
242
  - plugins/observed-gauge/spec/spec_helper.rb
243
+ - plugins/observed-growl/Gemfile
244
+ - plugins/observed-growl/lib/observed/growl.rb
215
245
  - plugins/observed-http/.gitignore
216
246
  - plugins/observed-http/Gemfile
217
247
  - plugins/observed-http/LICENSE.txt
@@ -224,12 +254,18 @@ files:
224
254
  - plugins/observed-http/observed-http.gemspec
225
255
  - plugins/observed-http/spec/fixtures/observed.conf
226
256
  - plugins/observed-http/spec/http_spec.rb
257
+ - plugins/observed-http/spec/integration_spec.rb
227
258
  - plugins/observed-http/spec/spec_helper.rb
259
+ - plugins/observed-shell/Gemfile
260
+ - plugins/observed-shell/lib/observed/shell.rb
261
+ - run-integration-tests
228
262
  - spec/builtin_plugins/file_spec.rb
229
263
  - spec/builtin_plugins/stdout_spec.rb
230
264
  - spec/config_builder_spec.rb
231
265
  - spec/config_dsl_spec.rb
232
266
  - spec/configurable_spec.rb
267
+ - spec/event_bus_spec.rb
268
+ - spec/execution_job_factory_spec.rb
233
269
  - spec/fixtures/configure_by_conf/foo_plugin.rb
234
270
  - spec/fixtures/configure_by_conf/observed.conf
235
271
  - spec/fixtures/configure_by_conf_dot_d/foo_plugin.rb
@@ -239,14 +275,16 @@ files:
239
275
  - spec/hash/builder_spec.rb
240
276
  - spec/hash/fetcher_spec.rb
241
277
  - spec/input_helpers/timer_spec.rb
278
+ - spec/job_factory_spec.rb
279
+ - spec/job_spec.rb
280
+ - spec/jobbed_event_bus_spec.rb
242
281
  - spec/observed_spec.rb
282
+ - spec/observer_helpers/timer_spec.rb
243
283
  - spec/observer_spec.rb
244
284
  - spec/oneshot_spec.rb
245
- - spec/reader_spec.rb
246
285
  - spec/reporter_spec.rb
247
286
  - spec/spec_helper.rb
248
287
  - spec/system_spec.rb
249
- - spec/writer_spec.rb
250
288
  homepage: ''
251
289
  licenses:
252
290
  - MIT
@@ -262,16 +300,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
262
300
  version: '0'
263
301
  required_rubygems_version: !ruby/object:Gem::Requirement
264
302
  requirements:
265
- - - ! '>='
303
+ - - ! '>'
266
304
  - !ruby/object:Gem::Version
267
- version: '0'
305
+ version: 1.3.1
268
306
  requirements: []
269
307
  rubyforge_project:
270
- rubygems_version: 2.0.5
308
+ rubygems_version: 2.1.10
271
309
  signing_key:
272
310
  specification_version: 4
273
311
  summary: Observed is a health-check framework for various services
274
312
  test_files:
313
+ - features/explicit_routing.feature
275
314
  - features/oneshot.feature
276
315
  - features/support/env.rb
277
316
  - features/test_in_single_ruby_source.feature
@@ -280,6 +319,8 @@ test_files:
280
319
  - spec/config_builder_spec.rb
281
320
  - spec/config_dsl_spec.rb
282
321
  - spec/configurable_spec.rb
322
+ - spec/event_bus_spec.rb
323
+ - spec/execution_job_factory_spec.rb
283
324
  - spec/fixtures/configure_by_conf/foo_plugin.rb
284
325
  - spec/fixtures/configure_by_conf/observed.conf
285
326
  - spec/fixtures/configure_by_conf_dot_d/foo_plugin.rb
@@ -289,11 +330,13 @@ test_files:
289
330
  - spec/hash/builder_spec.rb
290
331
  - spec/hash/fetcher_spec.rb
291
332
  - spec/input_helpers/timer_spec.rb
333
+ - spec/job_factory_spec.rb
334
+ - spec/job_spec.rb
335
+ - spec/jobbed_event_bus_spec.rb
292
336
  - spec/observed_spec.rb
337
+ - spec/observer_helpers/timer_spec.rb
293
338
  - spec/observer_spec.rb
294
339
  - spec/oneshot_spec.rb
295
- - spec/reader_spec.rb
296
340
  - spec/reporter_spec.rb
297
341
  - spec/spec_helper.rb
298
342
  - spec/system_spec.rb
299
- - spec/writer_spec.rb
@@ -1,17 +0,0 @@
1
- require 'observed/reporter'
2
- require 'observed/reporter/regexp_matching'
3
-
4
- module Observed
5
- module Default
6
- class Reporter < Observed::Reporter
7
- include Observed::Reporter::RegexpMatching
8
-
9
- attribute :writer
10
-
11
- def report(tag, time, data)
12
- writer.write tag, time, data
13
- end
14
-
15
- end
16
- end
17
- end
@@ -1,14 +0,0 @@
1
- require 'observed/configurable'
2
- require 'observed/pluggable'
3
-
4
- module Observed
5
- class Reader
6
- include Observed::Configurable
7
- include Observed::Pluggable
8
-
9
- def read
10
- fail 'Not Implemented'
11
- end
12
-
13
- end
14
- end
@@ -1,14 +0,0 @@
1
- require 'observed/configurable'
2
- require 'observed/pluggable'
3
-
4
- module Observed
5
- class Writer
6
- include Observed::Configurable
7
- include Observed::Pluggable
8
-
9
- def write(tag, time, data)
10
- fail 'Not Implemented'
11
- end
12
-
13
- end
14
- end