metriks-middleware 2.1.0 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NDQ0YWZjMmFlYjM0ZjU4ZTBmMTVhMmNkNGMzYTk3MmY2MDMxZWJiMg==
5
- data.tar.gz: !binary |-
6
- YmEwMWZkNjhjYjIxOWUyYzE3ZTdhZGMwZDQzNjFjOTY5NjZlZTUzYw==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- ZjE1NTEyZGEyNjMxMDk4MGJmZmZhZWFmZTU2YzcwMzNlZTc2ZDUyYzdiODhh
10
- NTJlZmFmMWFmNTEyYzlhNmQyMjZiNzEyZTM4ODBkYjlmMmJiYjMwZjRkM2Mx
11
- NGU2NTE1MmNhOGEzMWJmMGU2YzVjMDU5NGY3N2E0ZDRjNDMwMDM=
12
- data.tar.gz: !binary |-
13
- NDMwMWFmZWY4NmNiZmY5OTYyN2FkZGRjMmE4MzZmNjU2YTVmZjIyM2Q4ZDA5
14
- NjgwMWZhNDZmMTBlODkzOGFlMmViNGI5MjFmMGUxODhkZGYyZWZmMWQ1YWY0
15
- NjViZGZiYzFkMDkxNDg4NTU1ZDRjMzg5NzQ1MjM0YmU4YzExN2Q=
2
+ SHA1:
3
+ metadata.gz: 39f457cd2e5a084679e0dfeb4495bd4adaf92710
4
+ data.tar.gz: 2280424b3d0f4d8e5170c6b34752a786ca22d707
5
+ SHA512:
6
+ metadata.gz: 8be5b9c8faf07e56dfc4789771822fe074b6ab64138fcbfde867b5c144ddcb5b574c5f56373dad896e0271d3a38f30160773af69f7022954db926e068b9cbbdb
7
+ data.tar.gz: 1d743a27716f543585fc199d3c6a0057c5bdbe4d120f877b4fd9b46edbdf9acb14795128bac4b749bd34da06bde1a3e1829e3eace50993b285bd11f8374f9da0
@@ -2,8 +2,6 @@ require 'metriks'
2
2
 
3
3
  module Metriks
4
4
  class Middleware
5
- VERSION = '2.1.0'
6
-
7
5
  REQUEST_DELAY = 'request_delay'
8
6
  ERROR_RESPONSE = 'responses.error'
9
7
  NOT_FOUND_RESPONSE = 'responses.not_found'
@@ -58,6 +56,7 @@ module Metriks
58
56
  end
59
57
 
60
58
  def record_staus_code(status)
59
+ status = status.to_i
61
60
  if status >= 500
62
61
  Metriks.meter(ERROR_RESPONSE).mark
63
62
  elsif status == 404
@@ -0,0 +1,5 @@
1
+ module Metriks
2
+ class Middleware
3
+ VERSION = '2.1.1'
4
+ end
5
+ end
@@ -1,36 +1,27 @@
1
- lib = "metriks-middleware"
2
- lib_file = File.expand_path("../lib/metriks/middleware.rb", __FILE__)
3
- File.read(lib_file) =~ /\bVERSION\s*=\s*["'](.+?)["']/
4
- version = $1
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'metriks/middleware/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.specification_version = 2 if spec.respond_to? :specification_version=
8
- spec.required_rubygems_version = '>= 1.3.6'
9
-
10
- spec.name = lib
11
- spec.version = version
12
-
6
+ spec.name = 'metriks-middleware'
7
+ spec.version = Metriks::Middleware::VERSION
13
8
  spec.summary = "Rack middleware for metriks"
14
9
  spec.description = "Rack middleware to track throughput and response time with metriks."
15
-
16
- spec.authors = ["Larry Marburger"]
17
- spec.email = 'larry@marburger.cc'
18
- spec.homepage = 'https://github.com/lmarburger/metriks-middleware'
19
- spec.licenses = ['MIT']
10
+ spec.authors = ["Larry Marburger"]
11
+ spec.email = 'larry@marburger.cc'
12
+ spec.homepage = 'https://github.com/lmarburger/metriks-middleware'
13
+ spec.licenses = ['MIT']
20
14
 
21
15
  spec.add_dependency 'metriks', '~> 0.9.9'
22
16
  spec.add_development_dependency 'mocha', '~> 0.11.4'
23
17
  spec.add_development_dependency 'rake', '>= 0.9'
24
18
 
25
19
  spec.files = %w(Gemfile LICENSE README.md Rakefile)
26
- spec.files << "#{lib}.gemspec"
20
+ spec.files << "metriks-middleware.gemspec"
27
21
  spec.files += Dir.glob("lib/**/*.rb")
28
22
  spec.files += Dir.glob("test/**/*.rb")
29
23
  spec.files += Dir.glob("script/*")
30
-
31
- dev_null = File.exist?('/dev/null') ? '/dev/null' : 'NUL'
32
- git_files = `git ls-files -z 2>#{dev_null}`
33
- spec.files &= git_files.split("\0") if $?.success?
34
-
35
24
  spec.test_files = Dir.glob("test/**/*.rb")
25
+
26
+ spec.required_rubygems_version = '>= 1.3.6'
36
27
  end
@@ -167,4 +167,36 @@ class AsyncAppTest < Test::Unit::TestCase
167
167
  delay = Metriks.histogram('request_delay').mean
168
168
  assert_equal 0, delay
169
169
  end
170
+
171
+ def test_records_string_statuses
172
+ error_sync_app = lambda do |env| ['500', {}, ['']] end
173
+ error_async_app = lambda do |env|
174
+ env['async.callback'].call ['500', {}, ['']]
175
+ [-1, {}, ['']]
176
+ end
177
+
178
+ Metriks::Middleware.new(error_sync_app).call(@env.dup)
179
+ Metriks::Middleware.new(error_async_app).call(@env.dup)
180
+
181
+ errors = Metriks.meter('responses.error').count
182
+ assert_equal 2, errors
183
+ end
184
+
185
+ def test_ignores_non_integer_statuses
186
+ error_sync_app = lambda do |env| ['fail', {}, ['']] end
187
+ error_async_app = lambda do |env|
188
+ env['async.callback'].call ['fail', {}, ['']]
189
+ [-1, {}, ['']]
190
+ end
191
+
192
+ Metriks::Middleware.new(error_sync_app).call(@env.dup)
193
+ Metriks::Middleware.new(error_async_app).call(@env.dup)
194
+
195
+ errors = Metriks.meter('responses.error').count
196
+ not_founds = Metriks.meter('responses.not_found').count
197
+ not_modifieds = Metriks.meter('responses.not_modified').count
198
+ assert_equal 0, errors
199
+ assert_equal 0, not_founds
200
+ assert_equal 0, not_modifieds
201
+ end
170
202
  end
@@ -106,4 +106,26 @@ class SyncAppTest < Test::Unit::TestCase
106
106
  delay = Metriks.histogram('request_delay').mean
107
107
  assert_equal 0, delay
108
108
  end
109
+
110
+ def test_records_string_statuses
111
+ error_app = lambda do |env| ['500', {}, ['']] end
112
+ 2.times { Metriks::Middleware.new(error_app).call(@env) }
113
+ Metriks::Middleware.new(@downstream).call(@env)
114
+
115
+ errors = Metriks.meter('responses.error').count
116
+ assert_equal 2, errors
117
+ end
118
+
119
+ def test_ignores_non_integer_statuses
120
+ error_app = lambda do |env| ['fail', {}, ['']] end
121
+ 2.times { Metriks::Middleware.new(error_app).call(@env) }
122
+ Metriks::Middleware.new(@downstream).call(@env)
123
+
124
+ errors = Metriks.meter('responses.error').count
125
+ not_founds = Metriks.meter('responses.not_found').count
126
+ not_modifieds = Metriks.meter('responses.not_modified').count
127
+ assert_equal 0, errors
128
+ assert_equal 0, not_founds
129
+ assert_equal 0, not_modifieds
130
+ end
109
131
  end
data/test/test_helper.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'bundler/setup'
1
2
  require 'test/unit'
2
3
  require 'mocha'
3
4
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metriks-middleware
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Larry Marburger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-22 00:00:00.000000000 Z
11
+ date: 2013-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metriks
@@ -42,14 +42,14 @@ dependencies:
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0.9'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.9'
55
55
  description: Rack middleware to track throughput and response time with metriks.
@@ -63,6 +63,7 @@ files:
63
63
  - README.md
64
64
  - Rakefile
65
65
  - metriks-middleware.gemspec
66
+ - lib/metriks/middleware/version.rb
66
67
  - lib/metriks/middleware.rb
67
68
  - test/async_app_test.rb
68
69
  - test/sync_app_test.rb
@@ -79,19 +80,19 @@ require_paths:
79
80
  - lib
80
81
  required_ruby_version: !ruby/object:Gem::Requirement
81
82
  requirements:
82
- - - ! '>='
83
+ - - '>='
83
84
  - !ruby/object:Gem::Version
84
85
  version: '0'
85
86
  required_rubygems_version: !ruby/object:Gem::Requirement
86
87
  requirements:
87
- - - ! '>='
88
+ - - '>='
88
89
  - !ruby/object:Gem::Version
89
90
  version: 1.3.6
90
91
  requirements: []
91
92
  rubyforge_project:
92
- rubygems_version: 2.0.3
93
+ rubygems_version: 2.0.2
93
94
  signing_key:
94
- specification_version: 2
95
+ specification_version: 4
95
96
  summary: Rack middleware for metriks
96
97
  test_files:
97
98
  - test/async_app_test.rb