librato-metrics 0.5.0 → 0.6.0.pre2

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.
@@ -0,0 +1,29 @@
1
+ require 'rubygems'
2
+ require 'tach'
3
+ require 'set'
4
+
5
+ # Compare speed of simple addition and iteration operations.
6
+ #
7
+ Tach.meter(1000) do
8
+
9
+ tach('array') do
10
+ a = []
11
+ (1..1000).each do |i|
12
+ a << i
13
+ end
14
+ a.each do |i|
15
+ "this is a string with #{i}"
16
+ end
17
+ end
18
+
19
+ tach('set') do
20
+ s = Set.new
21
+ (1...1000).each do |i|
22
+ s << i
23
+ end
24
+ s.each do |i|
25
+ "this is a string with #{i}"
26
+ end
27
+ end
28
+
29
+ end
@@ -1,6 +1,7 @@
1
1
  require 'faraday'
2
2
  require 'metrics/middleware/count_requests'
3
3
  require 'metrics/middleware/expects_status'
4
+ require 'metrics/middleware/request_body'
4
5
  require 'metrics/middleware/retry'
5
6
 
6
7
  module Librato
@@ -29,10 +30,13 @@ module Librato
29
30
  raise NoClientProvided unless @client
30
31
  @transport ||= Faraday::Connection.new(:url => api_endpoint + "/v1/") do |f|
31
32
  #f.use FaradayMiddleware::EncodeJson
33
+ f.use Librato::Metrics::Middleware::RequestBody
32
34
  f.use Librato::Metrics::Middleware::Retry
33
- f.use Librato::Metrics::Middleware::CountRequests
35
+ f.use Librato::Metrics::Middleware::CountRequests
36
+
34
37
  f.use Librato::Metrics::Middleware::ExpectsStatus
35
38
  #f.use FaradayMiddleware::ParseJson, :content_type => /\bjson$/
39
+
36
40
  f.adapter Faraday.default_adapter
37
41
  end.tap do |transport|
38
42
  transport.headers[:user_agent] = user_agent
@@ -5,8 +5,7 @@ module Librato
5
5
  class ExpectsStatus < Faraday::Response::Middleware
6
6
 
7
7
  def on_complete(env)
8
- # TODO: clean up exception output
9
- # TODO: catch specific status codes by request
8
+ # TODO: make exception output prettier
10
9
  case env[:status]
11
10
  when 401
12
11
  raise Unauthorized, env.to_s
@@ -0,0 +1,18 @@
1
+ module Librato
2
+ module Metrics
3
+ module Middleware
4
+
5
+ class RequestBody < Faraday::Response::Middleware
6
+
7
+ def call(env)
8
+ # duplicate request body so it is preserved through request
9
+ # in case we need it for exception output
10
+ env[:request_body] = env[:body]
11
+ @app.call(env)
12
+ end
13
+
14
+ end
15
+
16
+ end
17
+ end
18
+ end
@@ -1,5 +1,5 @@
1
1
  module Librato
2
2
  module Metrics
3
- VERSION = "0.5.0"
3
+ VERSION = "0.6.0.pre2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: librato-metrics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
5
- prerelease:
4
+ version: 0.6.0.pre2
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Matt Sanders
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-02 00:00:00.000000000Z
12
+ date: 2012-04-09 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
16
- requirement: &70301317338000 !ruby/object:Gem::Requirement
16
+ requirement: &70288570431740 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.7.6
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70301317338000
24
+ version_requirements: *70288570431740
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: multi_json
27
- requirement: &70301317369580 !ruby/object:Gem::Requirement
27
+ requirement: &70288570431320 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70301317369580
35
+ version_requirements: *70288570431320
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70301317369120 !ruby/object:Gem::Requirement
38
+ requirement: &70288570430860 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70301317369120
46
+ version_requirements: *70288570430860
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70301317368620 !ruby/object:Gem::Requirement
49
+ requirement: &70288570430360 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 2.6.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70301317368620
57
+ version_requirements: *70288570430360
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: pry
60
- requirement: &70301317368200 !ruby/object:Gem::Requirement
60
+ requirement: &70288570429940 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70301317368200
68
+ version_requirements: *70288570429940
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: yard
71
- requirement: &70301317367740 !ruby/object:Gem::Requirement
71
+ requirement: &70288570429480 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70301317367740
79
+ version_requirements: *70288570429480
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rdiscount
82
- requirement: &70301317367320 !ruby/object:Gem::Requirement
82
+ requirement: &70288570429060 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70301317367320
90
+ version_requirements: *70288570429060
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: sinatra
93
- requirement: &70301317366900 !ruby/object:Gem::Requirement
93
+ requirement: &70288570428640 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70301317366900
101
+ version_requirements: *70288570428640
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: popen4
104
- requirement: &70301317366480 !ruby/object:Gem::Requirement
104
+ requirement: &70288570428220 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,7 +109,7 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70301317366480
112
+ version_requirements: *70288570428220
113
113
  description: An easy to use ruby wrapper for Librato's Metrics API
114
114
  email: matt@librato.com
115
115
  executables: []
@@ -124,6 +124,7 @@ files:
124
124
  - LICENSE
125
125
  - README.md
126
126
  - Rakefile
127
+ - benchmarks/array_vs_set.rb
127
128
  - lib/librato/metrics.rb
128
129
  - lib/librato/metrics/client.rb
129
130
  - lib/librato/metrics/collection.rb
@@ -131,6 +132,7 @@ files:
131
132
  - lib/librato/metrics/errors.rb
132
133
  - lib/librato/metrics/middleware/count_requests.rb
133
134
  - lib/librato/metrics/middleware/expects_status.rb
135
+ - lib/librato/metrics/middleware/request_body.rb
134
136
  - lib/librato/metrics/middleware/retry.rb
135
137
  - lib/librato/metrics/persistence.rb
136
138
  - lib/librato/metrics/persistence/direct.rb
@@ -164,9 +166,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
164
166
  required_rubygems_version: !ruby/object:Gem::Requirement
165
167
  none: false
166
168
  requirements:
167
- - - ! '>='
169
+ - - ! '>'
168
170
  - !ruby/object:Gem::Version
169
- version: '0'
171
+ version: 1.3.1
170
172
  requirements: []
171
173
  rubyforge_project:
172
174
  rubygems_version: 1.8.16