librato-metrics 0.6.0 → 0.6.1
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.
- data/CHANGELOG.md +6 -0
- data/Gemfile +4 -0
- data/LICENSE +4 -4
- data/README.md +4 -2
- data/lib/librato/metrics/client.rb +5 -3
- data/lib/librato/metrics/queue.rb +4 -1
- data/lib/librato/metrics/version.rb +1 -1
- data/librato-metrics.gemspec +4 -4
- data/spec/integration/metrics/queue_spec.rb +14 -2
- data/spec/unit/metrics/queue_spec.rb +5 -0
- metadata +71 -23
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
## Changelog
|
2
2
|
|
3
|
+
### Version 0.6.1
|
4
|
+
* Loosen restrictions to older versions of faraday and multi_json
|
5
|
+
* Fix symbol casting issue in jruby with metric delete
|
6
|
+
* client#new_queue now respects passed options
|
7
|
+
* Queue objects support default source properly
|
8
|
+
|
3
9
|
### Version 0.6.0
|
4
10
|
* Add Aggregator class for aggregating measurements client-side
|
5
11
|
* Queue and Aggregator can auto-submit on a time interval
|
data/Gemfile
CHANGED
data/LICENSE
CHANGED
@@ -8,14 +8,14 @@ modification, are permitted provided that the following conditions are met:
|
|
8
8
|
* Redistributions in binary form must reproduce the above copyright
|
9
9
|
notice, this list of conditions and the following disclaimer in the
|
10
10
|
documentation and/or other materials provided with the distribution.
|
11
|
-
* Neither the name of
|
12
|
-
|
13
|
-
|
11
|
+
* Neither the name of Librato, Inc. nor the names of project contributors
|
12
|
+
may be used to endorse or promote products derived from this software
|
13
|
+
without specific prior written permission.
|
14
14
|
|
15
15
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
16
16
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
17
17
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
18
|
-
DISCLAIMED. IN NO EVENT SHALL
|
18
|
+
DISCLAIMED. IN NO EVENT SHALL LIBRATO, INC. BE LIABLE FOR ANY
|
19
19
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
20
20
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
21
21
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
data/README.md
CHANGED
@@ -20,6 +20,10 @@ Then, in your application or script:
|
|
20
20
|
For best performance we recommend installing [yajl-ruby](https://github.com/brianmario/yajl-ruby):
|
21
21
|
|
22
22
|
gem install yajl-ruby
|
23
|
+
|
24
|
+
If you are using jruby, you need to ensure [jruby-openssl](https://github.com/jruby/jruby-ossl) is available:
|
25
|
+
|
26
|
+
gem install jruby-openssl
|
23
27
|
|
24
28
|
## Quick Start
|
25
29
|
|
@@ -218,8 +222,6 @@ The `librato-metrics` gem currently does not do internal locking for thread safe
|
|
218
222
|
These are features we expect to add in future versions, roughly in the order of current priority. If you feel strongly about a feature, feel free to [create an issue](https://github.com/librato/librato-metrics/issues) or [join us in live chat](https://librato.campfirenow.com/269d3) and talk to us about it.
|
219
223
|
|
220
224
|
* Queue objects support a single default measure_time to use for any measurements which don't have it set
|
221
|
-
* Queues auto-submit when they hit a set number of records
|
222
|
-
* Queues auto-submit when they hit a max time interval
|
223
225
|
* Query actions return a collection object which auto-paginates large result sets
|
224
226
|
|
225
227
|
## Contribution
|
@@ -70,7 +70,8 @@ module Librato
|
|
70
70
|
# Librato::Metrics.delete :foo, :bar
|
71
71
|
def delete(*metric_names)
|
72
72
|
raise(NoMetricsProvided, 'Metric name missing.') if metric_names.empty?
|
73
|
-
|
73
|
+
metric_names.map!{|i| i.to_s}
|
74
|
+
params = {:names => metric_names }
|
74
75
|
connection.delete do |request|
|
75
76
|
request.url connection.build_url("metrics")
|
76
77
|
request.body = MultiJson.dump(params)
|
@@ -156,8 +157,9 @@ module Librato
|
|
156
157
|
# Create a new queue which uses this client.
|
157
158
|
#
|
158
159
|
# @return [Queue]
|
159
|
-
def new_queue
|
160
|
-
|
160
|
+
def new_queue(options={})
|
161
|
+
options[:client] = self
|
162
|
+
Queue.new(options)
|
161
163
|
end
|
162
164
|
|
163
165
|
# Persistence type to use when saving metrics.
|
data/librato-metrics.gemspec
CHANGED
@@ -24,13 +24,13 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.extra_rdoc_files = %w[LICENSE]
|
25
25
|
|
26
26
|
## runtime dependencies
|
27
|
-
s.add_dependency 'faraday', '~>0.7
|
28
|
-
s.add_dependency 'multi_json', '~>1.3
|
29
|
-
s.add_dependency 'aggregate', '~>0.2.2'
|
27
|
+
s.add_dependency 'faraday', '~> 0.7'
|
28
|
+
s.add_dependency 'multi_json', '~> 1.3'
|
29
|
+
s.add_dependency 'aggregate', '~> 0.2.2'
|
30
30
|
|
31
31
|
## development dependencies
|
32
32
|
s.add_development_dependency 'rake'
|
33
|
-
s.add_development_dependency 'rspec', '~>2.6.0'
|
33
|
+
s.add_development_dependency 'rspec', '~> 2.6.0'
|
34
34
|
s.add_development_dependency 'pry'
|
35
35
|
s.add_development_dependency 'yard'
|
36
36
|
s.add_development_dependency 'sinatra'
|
@@ -5,6 +5,7 @@ module Librato
|
|
5
5
|
|
6
6
|
describe Queue do
|
7
7
|
before(:all) { prep_integration_tests }
|
8
|
+
before(:each) { delete_all_metrics }
|
8
9
|
|
9
10
|
context "with a large number of metrics" do
|
10
11
|
it "should submit them in multiple requests" do
|
@@ -25,8 +26,6 @@ module Librato
|
|
25
26
|
(1..3).each do |i|
|
26
27
|
queue.add "counter_#{i}" => {:type => :counter, :value => i}
|
27
28
|
end
|
28
|
-
|
29
|
-
delete_all_metrics
|
30
29
|
queue.submit
|
31
30
|
|
32
31
|
metrics = Metrics.list
|
@@ -37,6 +36,19 @@ module Librato
|
|
37
36
|
gauge['unassigned'][0]['value'].should == 5
|
38
37
|
end
|
39
38
|
end
|
39
|
+
|
40
|
+
it "should respect default and individual sources" do
|
41
|
+
queue = Queue.new(:source => 'default')
|
42
|
+
queue.add :foo => 123
|
43
|
+
queue.add :bar => {:value => 456, :source => 'barsource'}
|
44
|
+
queue.submit
|
45
|
+
|
46
|
+
foo = Metrics.fetch :foo, :count => 2
|
47
|
+
foo['default'][0]['value'].should == 123
|
48
|
+
|
49
|
+
bar = Metrics.fetch :bar, :count => 2
|
50
|
+
bar['barsource'][0]['value'].should == 456
|
51
|
+
end
|
40
52
|
|
41
53
|
end
|
42
54
|
|
@@ -146,6 +146,11 @@ module Librato
|
|
146
146
|
end
|
147
147
|
|
148
148
|
describe "#last_submit_time" do
|
149
|
+
before(:all) do
|
150
|
+
Librato::Metrics.authenticate 'me@librato.com', 'foo'
|
151
|
+
Librato::Metrics.persistence = :test
|
152
|
+
end
|
153
|
+
|
149
154
|
it "should default to nil" do
|
150
155
|
subject.last_submit_time.should be_nil
|
151
156
|
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.6.
|
4
|
+
version: 0.6.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,33 +9,43 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-07-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.7
|
21
|
+
version: '0.7'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.7'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: multi_json
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ~>
|
31
36
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1.3
|
37
|
+
version: '1.3'
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '1.3'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: aggregate
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ~>
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: 0.2.2
|
44
54
|
type: :runtime
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.2.2
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: rake
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '0'
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: rspec
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ~>
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: 2.6.0
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 2.6.0
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: pry
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ! '>='
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: '0'
|
77
102
|
type: :development
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: yard
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ! '>='
|
@@ -87,10 +117,15 @@ dependencies:
|
|
87
117
|
version: '0'
|
88
118
|
type: :development
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
91
126
|
- !ruby/object:Gem::Dependency
|
92
127
|
name: sinatra
|
93
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
94
129
|
none: false
|
95
130
|
requirements:
|
96
131
|
- - ! '>='
|
@@ -98,10 +133,15 @@ dependencies:
|
|
98
133
|
version: '0'
|
99
134
|
type: :development
|
100
135
|
prerelease: false
|
101
|
-
version_requirements:
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
102
142
|
- !ruby/object:Gem::Dependency
|
103
143
|
name: popen4
|
104
|
-
requirement:
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
105
145
|
none: false
|
106
146
|
requirements:
|
107
147
|
- - ! '>='
|
@@ -109,7 +149,12 @@ dependencies:
|
|
109
149
|
version: '0'
|
110
150
|
type: :development
|
111
151
|
prerelease: false
|
112
|
-
version_requirements:
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
113
158
|
description: An easy to use ruby wrapper for Librato's Metrics API
|
114
159
|
email: matt@librato.com
|
115
160
|
executables: []
|
@@ -167,6 +212,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
167
212
|
- - ! '>='
|
168
213
|
- !ruby/object:Gem::Version
|
169
214
|
version: '0'
|
215
|
+
segments:
|
216
|
+
- 0
|
217
|
+
hash: -2003019020857888110
|
170
218
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
219
|
none: false
|
172
220
|
requirements:
|
@@ -175,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
223
|
version: '0'
|
176
224
|
requirements: []
|
177
225
|
rubyforge_project:
|
178
|
-
rubygems_version: 1.8.
|
226
|
+
rubygems_version: 1.8.24
|
179
227
|
signing_key:
|
180
228
|
specification_version: 2
|
181
229
|
summary: Ruby wrapper for Librato's Metrics API
|