metrics-rails 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,8 +1,8 @@
1
1
  require 'test_helper'
2
2
 
3
- class MetricsRailsAggregatorTest < ActiveSupport::TestCase
3
+ class MetricsRailsAggregatorTest < MiniTest::Unit::TestCase
4
4
 
5
- test 'adding timings' do
5
+ def test_adding_timings
6
6
  agg = Metrics::Rails::Aggregator.new
7
7
 
8
8
  agg.timing 'request.time.total', 23.7
@@ -1,8 +1,14 @@
1
1
  require 'test_helper'
2
2
 
3
- class MetricsRailsAggregatorTest < ActiveSupport::TestCase
3
+ class MetricsRailsAggregatorTest < MiniTest::Unit::TestCase
4
4
 
5
- test 'environmental variable config' do
5
+ def teardown
6
+ ENV.delete('METRICS_EMAIL')
7
+ ENV.delete('METRICS_API_KEY')
8
+ Metrics::Rails.check_config
9
+ end
10
+
11
+ def test_environmental_variable_config
6
12
  ENV['METRICS_EMAIL'] = 'foo@bar.com'
7
13
  ENV['METRICS_API_KEY'] = 'api_key'
8
14
  Metrics::Rails.check_config
@@ -10,7 +16,7 @@ class MetricsRailsAggregatorTest < ActiveSupport::TestCase
10
16
  assert_equal 'api_key', Metrics::Rails.api_key
11
17
  end
12
18
 
13
- test 'config file config' do
19
+ def test_config_file_config
14
20
  with_fixture_config do
15
21
  assert_equal 'test@bar.com', Metrics::Rails.email
16
22
  assert_equal 'test api key', Metrics::Rails.api_key
@@ -20,7 +26,7 @@ class MetricsRailsAggregatorTest < ActiveSupport::TestCase
20
26
  end
21
27
  end
22
28
 
23
- test 'environmental and config file config' do
29
+ def test_environmental_and_config_file_config
24
30
  ENV['METRICS_EMAIL'] = 'foo@bar.com'
25
31
  ENV['METRICS_API_KEY'] = 'api_key'
26
32
  with_fixture_config do
@@ -31,12 +37,6 @@ class MetricsRailsAggregatorTest < ActiveSupport::TestCase
31
37
  end
32
38
  end
33
39
 
34
- def teardown
35
- ENV.delete('METRICS_EMAIL')
36
- ENV.delete('METRICS_API_KEY')
37
- Metrics::Rails.check_config
38
- end
39
-
40
40
  def with_fixture_config
41
41
  fixture_config = File.join(File.dirname(__FILE__), '../fixtures/config/metrics.yml')
42
42
  previous, Metrics::Rails.config_file = Metrics::Rails.config_file, fixture_config
@@ -1,8 +1,8 @@
1
1
  require 'test_helper'
2
2
 
3
- class MetricsRailsCounterCacheTest < ActiveSupport::TestCase
3
+ class MetricsRailsCounterCacheTest < MiniTest::Unit::TestCase
4
4
 
5
- test 'basic operations' do
5
+ def test_basic_operations
6
6
  cc = Metrics::Rails::CounterCache.new
7
7
  cc.increment :foo
8
8
  assert_equal 1, cc[:foo]
@@ -1,8 +1,8 @@
1
1
  require 'test_helper'
2
2
 
3
- class MetricsRailsGroupTest < ActiveSupport::TestCase
3
+ class MetricsRailsGroupTest < MiniTest::Unit::TestCase
4
4
 
5
- test 'basic grouping' do
5
+ def test_basic_grouping
6
6
  Metrics::Rails.group 'fruit' do |g|
7
7
  g.increment 'bites'
8
8
  g.increment 'nibbles', 5
@@ -24,7 +24,7 @@ class MetricsRailsGroupTest < ActiveSupport::TestCase
24
24
  assert_equal 146.5, aggregate['fruit.grow_time'][:sum]
25
25
  end
26
26
 
27
- test 'nesting' do
27
+ def test_nesting
28
28
  Metrics::Rails.group 'street' do |s|
29
29
  s.increment 'count'
30
30
  s.group 'market' do |m|
@@ -0,0 +1,82 @@
1
+ require 'test_helper'
2
+
3
+ class MetricRackMiddlewareTest < MiniTest::Unit::TestCase
4
+
5
+ def setup
6
+ Metrics::Rails.stubs(:forking_server?).returns(false)
7
+ Metrics::Rails.stubs(:measure).returns(true)
8
+ Metrics::Rails.stubs(:increment).returns(true)
9
+
10
+ Time.stubs(:now).returns(Time.at(0.1305), Time.at(0.20075))
11
+
12
+ @middleware = Metrics::Rack::Middleware.new(
13
+ stub(:call => [200, {}, []])
14
+ )
15
+ end
16
+
17
+ def teardown
18
+ Metrics::Rails.unstub :forking_server?, :measure, :increment
19
+ Time.unstub :now
20
+ end
21
+
22
+ def test_logs_header_metrics
23
+ Metrics::Rails.expects(:measure).with('rack.heroku.queue.depth', 1.0)
24
+ Metrics::Rails.expects(:measure).with('rack.heroku.queue.wait_time', 20.5)
25
+ Metrics::Rails.expects(:measure).with('rack.heroku.queue.dynos', 2.0)
26
+
27
+ @middleware.call(
28
+ 'HTTP_X_HEROKU_QUEUE_DEPTH' => '1',
29
+ 'HTTP_X_HEROKU_QUEUE_WAIT_TIME' => '20.5',
30
+ 'HTTP_X_HEROKU_DYNOS_IN_USE' => '2'
31
+ )
32
+ end
33
+
34
+ def test_logs_request_time
35
+ Metrics::Rails.expects(:measure).with('rack.request.time', 70.25)
36
+
37
+ @middleware.call({})
38
+ end
39
+
40
+ def test_increments_request_count
41
+ Metrics::Rails.expects(:increment).with('rack.request.total', 1)
42
+
43
+ @middleware.call({})
44
+ end
45
+
46
+ def test_log_200_status
47
+ Metrics::Rails.expects(:increment).with('rack.request.status.200', 1)
48
+ Metrics::Rails.expects(:increment).with('rack.request.status.2xx', 1)
49
+
50
+ Metrics::Rails.expects(:measure).with('rack.request.status.200.time', 70.25)
51
+ Metrics::Rails.expects(:measure).with('rack.request.status.2xx.time', 70.25)
52
+
53
+ @middleware.call({})
54
+ end
55
+
56
+ def test_log_403_status
57
+ Metrics::Rails.expects(:increment).with('rack.request.status.403', 1)
58
+ Metrics::Rails.expects(:increment).with('rack.request.status.4xx', 1)
59
+
60
+ Metrics::Rails.expects(:measure).with('rack.request.status.403.time', 70.25)
61
+ Metrics::Rails.expects(:measure).with('rack.request.status.4xx.time', 70.25)
62
+
63
+ @middleware = Metrics::Rack::Middleware.new stub(:call => [403, {}, []])
64
+ @middleware.call({})
65
+ end
66
+
67
+ def test_fast_queries_are_not_slow
68
+ Time.stubs(:now).returns(0.1305, 0.3305)
69
+
70
+ Metrics::Rails.expects(:increment).with('rack.request.slow', 1).never
71
+
72
+ @middleware.call({})
73
+ end
74
+
75
+ def test_log_slow_queries
76
+ Time.stubs(:now).returns(0.1305, 0.40075)
77
+
78
+ Metrics::Rails.expects(:increment).with('rack.request.slow', 1)
79
+
80
+ @middleware.call({})
81
+ end
82
+ end
@@ -1,8 +1,8 @@
1
1
  require 'test_helper'
2
2
 
3
- class MetricsRailsWorkerTest < ActiveSupport::TestCase
3
+ class MetricsRailsWorkerTest < MiniTest::Unit::TestCase
4
4
 
5
- test 'basic use' do
5
+ def test_basic_use
6
6
  worker = Metrics::Rails::Worker.new
7
7
  counter = 0
8
8
  Thread.new do
@@ -14,7 +14,7 @@ class MetricsRailsWorkerTest < ActiveSupport::TestCase
14
14
  assert_equal counter, 4
15
15
  end
16
16
 
17
- test 'start time' do
17
+ def test_start_time
18
18
  worker = Metrics::Rails::Worker.new
19
19
 
20
20
  time = Time.now
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metrics-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-27 00:00:00.000000000 Z
12
+ date: 2012-09-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -59,6 +59,22 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: minitest
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
62
78
  description: Report key app statistics to the Librato Metrics service and easily track
63
79
  your own custom metrics.
64
80
  email:
@@ -67,6 +83,8 @@ executables: []
67
83
  extensions: []
68
84
  extra_rdoc_files: []
69
85
  files:
86
+ - lib/metrics/rack/middleware.rb
87
+ - lib/metrics/rack.rb
70
88
  - lib/metrics/rails/aggregator.rb
71
89
  - lib/metrics/rails/counter_cache.rb
72
90
  - lib/metrics/rails/group.rb
@@ -163,6 +181,7 @@ files:
163
181
  - test/unit/configuration_test.rb
164
182
  - test/unit/counter_cache_test.rb
165
183
  - test/unit/group_test.rb
184
+ - test/unit/middleware_test.rb
166
185
  - test/unit/worker_test.rb
167
186
  homepage: https://github.com/librato/metrics-rails
168
187
  licenses: []
@@ -178,7 +197,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
178
197
  version: '0'
179
198
  segments:
180
199
  - 0
181
- hash: -3211601922657433338
200
+ hash: 3976744292861344544
182
201
  required_rubygems_version: !ruby/object:Gem::Requirement
183
202
  none: false
184
203
  requirements:
@@ -187,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
187
206
  version: '0'
188
207
  segments:
189
208
  - 0
190
- hash: -3211601922657433338
209
+ hash: 3976744292861344544
191
210
  requirements: []
192
211
  rubyforge_project:
193
212
  rubygems_version: 1.8.24
@@ -277,4 +296,5 @@ test_files:
277
296
  - test/unit/configuration_test.rb
278
297
  - test/unit/counter_cache_test.rb
279
298
  - test/unit/group_test.rb
299
+ - test/unit/middleware_test.rb
280
300
  - test/unit/worker_test.rb