metrics-rails 0.1.0 → 0.2.0

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.
@@ -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