rearview 1.0.2.rc.4-jruby → 1.0.3.rc.1-jruby

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.
@@ -59,6 +59,14 @@ describe Rearview::Configuration do
59
59
  config.valid?
60
60
  expect(config.errors[:graphite_url]).to be_empty
61
61
  end
62
+ it "should require statsd_connection to be present if stats are enabled" do
63
+ config.enable_stats = false
64
+ config.valid?
65
+ expect(config.errors[:statsd_connection]).to be_empty
66
+ config.enable_stats = true
67
+ config.valid?
68
+ expect(config.errors[:statsd_connection]).to include("can't be blank")
69
+ end
62
70
  pending "should require sanbox_exec to be executable"
63
71
  end
64
72
 
@@ -70,8 +78,10 @@ describe Rearview::Configuration do
70
78
  expect(config.enable_alerts).to be_true
71
79
  expect(config.preload_jobs).to be_true
72
80
  expect(config.enable_monitor).to be_true
81
+ expect(config.enable_stats).to be_false
73
82
  expect(config.verify).to be_false
74
83
  expect(config.authentication).to eq({strategy: :database})
84
+ expect(config.default_url_options).to eq({:host=>"localhost", :port=>"3000"})
75
85
  end
76
86
  end
77
87
 
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rearview::StatsService do
4
+ before do
5
+ Celluloid.shutdown
6
+ Celluloid.boot
7
+ @service = Rearview::StatsService.new
8
+ end
9
+ context '#startup' do
10
+ it "can only be started if stopped" do
11
+ Rearview::StatsTask.stubs(:supervise).returns(mock)
12
+ @service.startup
13
+ expect { @service.startup }.to raise_error(Rearview::StatsService::StatsServiceError,"service already started")
14
+ end
15
+ it "should create the supervised task" do
16
+ Rearview::StatsTask.expects(:supervise)
17
+ @service.startup
18
+ end
19
+ end
20
+ context '#shutdown' do
21
+ it "can only be shutdown if started" do
22
+ expect { @service.shutdown }.to raise_error(Rearview::StatsService::StatsServiceError,"service not started")
23
+ end
24
+ it "should terminate the supervised task" do
25
+ mock_task = mock
26
+ mock_task.expects(:terminate).once
27
+ Rearview::StatsTask.stubs(:supervise).returns(stub(:actors => stub(:first => mock_task)))
28
+ @service.startup
29
+ @service.shutdown
30
+ end
31
+ end
32
+ context '#started?' do
33
+ it "should be true if the service is started" do
34
+ Rearview::StatsTask.stubs(:supervise).returns(mock)
35
+ @service.startup
36
+ expect(@service.started?).to be_true
37
+ end
38
+ it "should be false if the service is not started" do
39
+ expect(@service.started?).to be_false
40
+ end
41
+ end
42
+ end
43
+
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rearview::StatsTask do
4
+
5
+ context '.initialize' do
6
+ it "sets the default delay to 120s" do
7
+ Rearview::StatsTask.any_instance.stubs(:schedule)
8
+ stats_task = Rearview::StatsTask.new
9
+ Rearview::Statsd.stubs(:new).returns(mock)
10
+ expect(stats_task.delay).to eq(120)
11
+ end
12
+ it "sets the batch size correctly" do
13
+ Rearview::StatsTask.any_instance.stubs(:schedule)
14
+ statsd = mock
15
+ statsd.expects(:batch_size=).with(11)
16
+ Rearview::Statsd.stubs(:new).returns(statsd)
17
+ stats_task = Rearview::StatsTask.new
18
+ end
19
+ it "schedules itself by default" do
20
+ statsd = mock
21
+ statsd.expects(:batch_size=).with(anything)
22
+ Rearview::Statsd.stubs(:new).returns(statsd)
23
+ Rearview::StatsTask.any_instance.expects(:schedule)
24
+ stats_task = Rearview::StatsTask.new
25
+ end
26
+ end
27
+
28
+ context '#schedule' do
29
+ it "sets the timer delay" do
30
+ stats_task = Rearview::StatsTask.new(120,false)
31
+ stats_task.expects(:after).with(120)
32
+ stats_task.schedule
33
+ end
34
+ end
35
+
36
+ context '#run' do
37
+ it "sends a batch request to statsd" do
38
+ stats_task = Rearview::StatsTask.new(120,false)
39
+ stats_task.statsd.expects(:batch)
40
+ stats_task.run
41
+ end
42
+ end
43
+
44
+ end
45
+
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rearview::Statsd do
4
+ context '.initialize' do
5
+ before(:all) do
6
+ Rearview.config.statsd_connection = { host: 'myhost', port: 123, namespace: 'mynamespace' }
7
+ end
8
+ let(:statsd) { Rearview::Statsd.new }
9
+ it "sets the port from Rearview::Configuration" do
10
+ expect(statsd.port).to eq(123)
11
+ end
12
+ it "sets the host from Rearview::Configuration" do
13
+ expect(statsd.host).to eq('myhost')
14
+ end
15
+ it "sets the namespace from Rearview::Configuration" do
16
+ expect(statsd.namespace).to eq('mynamespace')
17
+ end
18
+ end
19
+
20
+ end
@@ -66,14 +66,13 @@ describe "utility method" do
66
66
  monitor_expr = <<-'eos'
67
67
  puts @a
68
68
  eos
69
- result = collect_aberrations(all_created, 1)
70
- expect(result[0]).to eq("All Purchases Created in the last hour experienced a standard deviation shift of 1.03, which is greater than the threshold of 1.")
69
+ result = collect_aberrations(all_created, 0)
70
+ expect(result).to eq({"All Purchases Created in the last hour"=>0.3505384991636653})
71
71
  end
72
72
 
73
73
  it "returns correct errors for multiple metrics" do
74
- result = collect_aberrations(all_created, local_created, 1)
75
- expect(result[0]).to eq("All Purchases Created in the last hour experienced a standard deviation shift of 1.03, which is greater than the threshold of 1.")
76
- expect(result[1]).to be_empty
74
+ result = collect_aberrations(all_created, local_created, 0.36)
75
+ expect(result).to eq({"Local Purchases Created in the last hour"=>0.40808960944909956})
77
76
  end
78
77
  end
79
78
  end
@@ -0,0 +1,79 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rearview::Vm do
4
+
5
+ let(:vm) { Rearview::Vm.new }
6
+
7
+ context '#heap' do
8
+ it "should be present" do
9
+ expect(vm.heap.present?).to be_true
10
+ end
11
+ end
12
+
13
+ context '#non_heap' do
14
+ it "should be present" do
15
+ expect(vm.non_heap.present?).to be_true
16
+ end
17
+ end
18
+
19
+ context '#total_memory' do
20
+ it "should be non-zero" do
21
+ expect(vm.total_memory>0).to be_true
22
+ end
23
+ end
24
+
25
+ context '#free_memory' do
26
+ it "should be non-zero" do
27
+ expect(vm.free_memory>0).to be_true
28
+ end
29
+ end
30
+
31
+ context '#max_memory' do
32
+ it "should be non-zero" do
33
+ expect(vm.max_memory>0).to be_true
34
+ end
35
+ end
36
+
37
+ describe Rearview::Vm::Memory do
38
+ let(:heap) { Rearview::Vm::Heap.new }
39
+ let(:non_heap) { Rearview::Vm::Heap.new }
40
+
41
+ context '#committed' do
42
+ it "heap should be non-zero" do
43
+ expect(heap.committed>0).to be_true
44
+ end
45
+ it "non_heap should be non-zero" do
46
+ expect(non_heap.committed>0).to be_true
47
+ end
48
+ end
49
+
50
+ context '#init' do
51
+ it "heap should be non-zero" do
52
+ expect(heap.init>0).to be_true
53
+ end
54
+ it "non_heap should be non-zero" do
55
+ expect(non_heap.init>0).to be_true
56
+ end
57
+ end
58
+
59
+ context '#max' do
60
+ it "heap should be non-zero" do
61
+ expect(heap.max>0).to be_true
62
+ end
63
+ it "non_heap should be non-zero" do
64
+ expect(non_heap.max>0).to be_true
65
+ end
66
+ end
67
+
68
+ context '#used' do
69
+ it "heap should be non-zero" do
70
+ expect(heap.used>0).to be_true
71
+ end
72
+ it "non_heap should be non-zero" do
73
+ expect(non_heap.used>0).to be_true
74
+ end
75
+ end
76
+
77
+ end
78
+
79
+ end
data/spec/spec_helper.rb CHANGED
@@ -18,7 +18,8 @@ Rearview.configure do |config|
18
18
  config.sandbox_timeout = 10
19
19
  config.preload_jobs = false
20
20
  config.enable_monitor = false
21
- config.default_url_options = {:host=>'localhost', :port=>'3000'}
21
+ config.default_url_options = { host: 'localhost', port: '3000' }
22
+ config.statsd_connection = { host: '127.0.0.1', port: 8125, namespace: 'rearview' }
22
23
  end
23
24
 
24
25
  Rearview.boot!
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rearview
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2.rc.4
4
+ version: 1.0.3.rc.1
5
5
  platform: jruby
6
6
  authors:
7
7
  - Trent Albright
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-06 00:00:00.000000000 Z
11
+ date: 2014-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -136,6 +136,20 @@ dependencies:
136
136
  version: 1.5.2
137
137
  prerelease: false
138
138
  type: :runtime
139
+ - !ruby/object:Gem::Dependency
140
+ name: statsd-ruby
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ~>
144
+ - !ruby/object:Gem::Version
145
+ version: 1.2.1
146
+ requirement: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ~>
149
+ - !ruby/object:Gem::Version
150
+ version: 1.2.1
151
+ prerelease: false
152
+ type: :runtime
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: activerecord-jdbcmysql-adapter
141
155
  version_requirements: !ruby/object:Gem::Requirement
@@ -321,14 +335,19 @@ files:
321
335
  - lib/rearview/monitor_supervisor.rb
322
336
  - lib/rearview/monitor_task.rb
323
337
  - lib/rearview/results_handler.rb
338
+ - lib/rearview/stats_service.rb
339
+ - lib/rearview/stats_task.rb
340
+ - lib/rearview/statsd.rb
324
341
  - lib/rearview/url_helper.rb
325
342
  - lib/rearview/version.rb
343
+ - lib/rearview/vm.rb
326
344
  - lib/rearview/alerts/base.rb
327
345
  - lib/rearview/alerts/campfire_alert.rb
328
346
  - lib/rearview/alerts/email_alert.rb
329
347
  - lib/rearview/alerts/pagerduty_alert.rb
330
348
  - lib/rearview/concerns/models.rb
331
349
  - lib/rearview/concerns/models/user.rb
350
+ - lib/rearview/ext/numeric.rb
332
351
  - lib/rearview/ext/state_machine.rb
333
352
  - lib/rearview/templates/monitor.rb
334
353
  - lib/rearview/templates/utilities.rb
@@ -2212,7 +2231,11 @@ files:
2212
2231
  - spec/lib/rearview/monitor_task_spec.rb
2213
2232
  - spec/lib/rearview/rearview_spec.rb
2214
2233
  - spec/lib/rearview/results_handler_spec.rb
2234
+ - spec/lib/rearview/stats_service_spec.rb
2235
+ - spec/lib/rearview/stats_task_spec.rb
2236
+ - spec/lib/rearview/statsd_spec.rb
2215
2237
  - spec/lib/rearview/url_helper_spec.rb
2238
+ - spec/lib/rearview/vm_spec.rb
2216
2239
  - spec/lib/rearview/alerts/campfire_alert_spec.rb
2217
2240
  - spec/lib/rearview/alerts/email_alert_spec.rb
2218
2241
  - spec/lib/rearview/alerts/pagerduty_alert_spec.rb
@@ -2330,7 +2353,11 @@ test_files:
2330
2353
  - spec/lib/rearview/monitor_task_spec.rb
2331
2354
  - spec/lib/rearview/rearview_spec.rb
2332
2355
  - spec/lib/rearview/results_handler_spec.rb
2356
+ - spec/lib/rearview/stats_service_spec.rb
2357
+ - spec/lib/rearview/stats_task_spec.rb
2358
+ - spec/lib/rearview/statsd_spec.rb
2333
2359
  - spec/lib/rearview/url_helper_spec.rb
2360
+ - spec/lib/rearview/vm_spec.rb
2334
2361
  - spec/lib/rearview/alerts/campfire_alert_spec.rb
2335
2362
  - spec/lib/rearview/alerts/email_alert_spec.rb
2336
2363
  - spec/lib/rearview/alerts/pagerduty_alert_spec.rb