librato-metrics 0.7.4 → 0.7.5

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,8 +1,12 @@
1
1
  ## Changelog
2
2
 
3
+ ### Version 0.7.5
4
+ * Catch a broader range of connection failures for retrying
5
+ * Add Metrics.faraday_adapter config option (Mathieu Ravaux)_
6
+
3
7
  ### Version 0.7.4
4
8
  * Support global measure_time option for Queues/Aggregators
5
- * Support all versions of multi_json so we can relax version constraint_
9
+ * Support all versions of multi_json so we can relax version constraint
6
10
 
7
11
  ### Version 0.7.3
8
12
  * Allow prefixes to be changed after instantiation on Queues/Aggregators
@@ -71,8 +71,9 @@ module Librato
71
71
  #
72
72
  def_delegators :client, :agent_identifier, :api_endpoint,
73
73
  :api_endpoint=, :authenticate, :connection, :delete,
74
- :fetch, :list, :persistence, :persistence=, :persister,
75
- :submit, :update
74
+ :faraday_adapter, :faraday_adapter=, :fetch, :list,
75
+ :persistence, :persistence=, :persister, :submit,
76
+ :update
76
77
 
77
78
  # The Librato::Metrics::Client being used by module-level
78
79
  # access.
@@ -57,7 +57,8 @@ module Librato
57
57
  def connection
58
58
  # prevent successful creation if no credentials set
59
59
  raise CredentialsMissing unless (self.email and self.api_key)
60
- @connection ||= Connection.new(:client => self, :api_endpoint => api_endpoint)
60
+ @connection ||= Connection.new(:client => self, :api_endpoint => api_endpoint,
61
+ :adapter => faraday_adapter)
61
62
  end
62
63
 
63
64
  # Overrride user agent for this client's connections. If you
@@ -93,6 +94,18 @@ module Librato
93
94
  # otherwise.
94
95
  true
95
96
  end
97
+
98
+ # Return current adapter this client will use.
99
+ # Defaults to Metrics.faraday_adapter if set, otherwise
100
+ # Faraday.default_adapter
101
+ def faraday_adapter
102
+ @faraday_adapter ||= default_faraday_adapter
103
+ end
104
+
105
+ # Set faraday adapter this client will use
106
+ def faraday_adapter=(adapter)
107
+ @faraday_adapter = adapter
108
+ end
96
109
 
97
110
  # Query metric data
98
111
  #
@@ -221,6 +234,14 @@ module Librato
221
234
  end
222
235
 
223
236
  private
237
+
238
+ def default_faraday_adapter
239
+ if Metrics.client == self
240
+ Faraday.default_adapter
241
+ else
242
+ Metrics.faraday_adapter
243
+ end
244
+ end
224
245
 
225
246
  def flush_persistence
226
247
  @persistence = nil
@@ -18,6 +18,7 @@ module Librato
18
18
  def initialize(options={})
19
19
  @client = options[:client]
20
20
  @api_endpoint = options[:api_endpoint]
21
+ @adapter = options[:adapter]
21
22
  end
22
23
 
23
24
  # API endpoint that will be used for requests.
@@ -37,7 +38,7 @@ module Librato
37
38
  f.use Librato::Metrics::Middleware::ExpectsStatus
38
39
  #f.use FaradayMiddleware::ParseJson, :content_type => /\bjson$/
39
40
 
40
- f.adapter Faraday.default_adapter
41
+ f.adapter @adapter || Metrics.faraday_adapter
41
42
  end.tap do |transport|
42
43
  transport.headers[:user_agent] = user_agent
43
44
  transport.headers[:content_type] = 'application/json'
@@ -1,4 +1,3 @@
1
- # borrowed from faraday 0.8, will use official once final
2
1
  module Librato
3
2
  module Metrics
4
3
  module Middleware
@@ -14,7 +13,8 @@ module Librato
14
13
  retries = @retries
15
14
  begin
16
15
  @app.call(env)
17
- rescue Librato::Metrics::ServerError, Timeout::Error
16
+ rescue Librato::Metrics::ServerError, Timeout::Error,
17
+ Faraday::Error::ConnectionFailed
18
18
  if retries > 0
19
19
  retries -= 1 and retry
20
20
  end
@@ -1,5 +1,5 @@
1
1
  module Librato
2
2
  module Metrics
3
- VERSION = "0.7.4"
3
+ VERSION = "0.7.5"
4
4
  end
5
5
  end
@@ -67,6 +67,23 @@ module Librato
67
67
  lambda{ subject.connection }.should raise_error(Librato::Metrics::CredentialsMissing)
68
68
  end
69
69
  end
70
+
71
+ describe "#faraday_adapter" do
72
+ it "should default to Metrics default adapter" do
73
+ Metrics.faraday_adapter = :typhoeus
74
+ Client.new.faraday_adapter.should == Metrics.faraday_adapter
75
+ Metrics.faraday_adapter = nil
76
+ end
77
+ end
78
+
79
+ describe "#faraday_adapter=" do
80
+ it "should allow setting of faraday adapter" do
81
+ subject.faraday_adapter = :excon
82
+ subject.faraday_adapter.should == :excon
83
+ subject.faraday_adapter = :patron
84
+ subject.faraday_adapter.should == :patron
85
+ end
86
+ end
70
87
 
71
88
  describe "#new_queue" do
72
89
  it "should return a new queue with client set" do
@@ -7,7 +7,7 @@ module Librato
7
7
 
8
8
  before(:each) do
9
9
  @time = Time.now.to_i
10
- Queue.stub(:epoch_time).and_return(@time)
10
+ Processor.stub(:epoch_time).and_return(@time)
11
11
  end
12
12
 
13
13
  describe "initialization" do
@@ -5,7 +5,6 @@ module Librato
5
5
  describe Metrics do
6
6
 
7
7
  describe "#authorize" do
8
-
9
8
  context "when given two arguments" do
10
9
  it "should store them on simple" do
11
10
  Metrics.authenticate 'tester@librato.com', 'api_key'
@@ -13,16 +12,31 @@ module Librato
13
12
  Metrics.client.api_key.should == 'api_key'
14
13
  end
15
14
  end
16
-
15
+ end
16
+
17
+ describe "#faraday_adapter" do
18
+ it "should return current default adapter" do
19
+ Metrics.faraday_adapter.should_not be nil
20
+ end
21
+ end
22
+
23
+ describe "#faraday_adapter=" do
24
+ before(:all) { @current_adapter = Metrics.faraday_adapter }
25
+ after(:all) { Metrics.faraday_adapter = @current_adapter }
26
+
27
+ it "should allow setting of faraday adapter" do
28
+ Metrics.faraday_adapter = :excon
29
+ Metrics.faraday_adapter.should == :excon
30
+ Metrics.faraday_adapter = :patron
31
+ Metrics.faraday_adapter.should == :patron
32
+ end
17
33
  end
18
34
 
19
35
  describe "#persistence" do
20
-
21
36
  it "should allow configuration of persistence method" do
22
37
  Metrics.persistence = :test
23
38
  Metrics.persistence.should == :test
24
39
  end
25
-
26
40
  end
27
41
 
28
42
  describe "#submit" do
@@ -43,7 +57,6 @@ module Librato
43
57
  expected = {:gauges => [{:name => 'foo', :value => 123}, {:name => 'bar', :value => 456}]}
44
58
  Librato::Metrics.persister.persisted.should equal_unordered(expected)
45
59
  end
46
-
47
60
  end
48
61
 
49
62
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: librato-metrics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.7.5
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-11-06 00:00:00.000000000 Z
12
+ date: 2012-11-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -216,7 +216,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
216
  version: '0'
217
217
  segments:
218
218
  - 0
219
- hash: -3428658007385951534
219
+ hash: -366569108077334223
220
220
  required_rubygems_version: !ruby/object:Gem::Requirement
221
221
  none: false
222
222
  requirements: