opentsdb-consumer 0.5.0 → 0.6.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.
- checksums.yaml +4 -4
- data/.gitignore +4 -1
- data/Gemfile +1 -12
- data/README.md +18 -5
- data/VERSION +1 -1
- data/lib/opentsdb-consumer.rb +1 -9
- data/lib/opentsdb-consumer/client.rb +26 -0
- data/lib/opentsdb-consumer/errors.rb +1 -0
- data/lib/opentsdb-consumer/metric.rb +9 -11
- data/lib/opentsdb-consumer/tags.rb +23 -0
- data/lib/opentsdb_consumer.rb +10 -0
- data/opentsdb-consumer.gemspec +6 -4
- data/spec/opentsdb-consumer/client_spec.rb +65 -3
- data/spec/opentsdb-consumer/metric_spec.rb +0 -2
- data/spec/opentsdb-consumer/rate_spec.rb +0 -1
- data/spec/opentsdb-consumer/result_spec.rb +0 -1
- data/spec/opentsdb-consumer/tags_spec.rb +33 -0
- metadata +48 -17
- data/Gemfile.lock +0 -118
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 626245d54c787e59a863cd3e9f72be2f8dbbe26e
|
4
|
+
data.tar.gz: 2cd2406b17e766a69eafb285af78628f35e607f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 38b597f0545d30fee23dbbab0041876183a6633a5ad8d114db47e41dcaff356a1d44beb99f4bc804638971f4d6435098aea0c79f67c4a4b3f66074f6beef2885
|
7
|
+
data.tar.gz: 9633060a0de91f0228293ffe88d5534ca0169b981247d1fe8c723b413b9f80f950da8186d00e2dcce8d8d3597df8e8c4b3b927150ab33d1feb38a78d804dc988
|
data/.gitignore
CHANGED
@@ -15,7 +15,7 @@ doc
|
|
15
15
|
# jeweler generated
|
16
16
|
pkg
|
17
17
|
|
18
|
-
# Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
|
18
|
+
# Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
|
19
19
|
#
|
20
20
|
# * Create a file at ~/.gitignore
|
21
21
|
# * Include files you want ignored
|
@@ -47,3 +47,6 @@ pkg
|
|
47
47
|
|
48
48
|
# For rubinius:
|
49
49
|
#*.rbc
|
50
|
+
|
51
|
+
# Gemfile
|
52
|
+
Gemfile.lock
|
data/Gemfile
CHANGED
@@ -1,14 +1,3 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
group :development do
|
6
|
-
gem 'rspec', '~> 3.3.0'
|
7
|
-
gem 'rdoc', '~> 3.12'
|
8
|
-
gem 'bundler', '~> 1.0'
|
9
|
-
gem 'jeweler', '~> 2.0.1'
|
10
|
-
|
11
|
-
gem 'byebug'
|
12
|
-
gem 'pry'
|
13
|
-
gem 'coveralls', require: false
|
14
|
-
end
|
3
|
+
gemspec
|
data/README.md
CHANGED
@@ -18,9 +18,24 @@ gem 'opentsdb-consumer'
|
|
18
18
|
## Usage
|
19
19
|
|
20
20
|
```ruby
|
21
|
+
# First, you need a client.
|
21
22
|
client = OpenTSDBConsumer::Client.new host: 'metrics.yourdomain.com', port: 4242
|
22
|
-
|
23
|
-
|
23
|
+
|
24
|
+
# Default options
|
25
|
+
data = client.fetch(%w(metric1 metric2))
|
26
|
+
|
27
|
+
# Custom options for all the metrics
|
28
|
+
data = client.fetch(
|
29
|
+
%w(metric1 metric2),
|
30
|
+
rate: true,
|
31
|
+
aggregator: 'avg',
|
32
|
+
tags: { environment: 'production' },
|
33
|
+
start: '24h-ago'
|
34
|
+
)
|
35
|
+
|
36
|
+
# Custom options for each metric
|
37
|
+
metric = OpenTSDBConsumer::Metric.new name: 'my.metric', rate: true, aggregator: 'avg', tags: { environment: 'production' }
|
38
|
+
data = OpenTSDBConsumer::Query.new([metric], client).run start: '24h-ago'
|
24
39
|
```
|
25
40
|
|
26
41
|
The rate can be configured by providing an hash with the rate options.
|
@@ -30,7 +45,6 @@ metric = OpenTSDBConsumer::Metric.new name: 'my.metric',
|
|
30
45
|
aggregator: 'sum'
|
31
46
|
```
|
32
47
|
|
33
|
-
|
34
48
|
## Contributing to opentsdb-consumer
|
35
49
|
|
36
50
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
@@ -49,6 +63,5 @@ bin/opentsdb-consumer server.domain.com my.metric
|
|
49
63
|
|
50
64
|
## Copyright
|
51
65
|
|
52
|
-
Copyright (c)
|
66
|
+
Copyright (c) 2016 Nine Internet Solutions AG. See LICENSE.txt for
|
53
67
|
further details.
|
54
|
-
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.6.0
|
data/lib/opentsdb-consumer.rb
CHANGED
@@ -1,9 +1 @@
|
|
1
|
-
|
2
|
-
end
|
3
|
-
|
4
|
-
require 'opentsdb-consumer/errors'
|
5
|
-
require 'opentsdb-consumer/client'
|
6
|
-
require 'opentsdb-consumer/metric'
|
7
|
-
require 'opentsdb-consumer/rate'
|
8
|
-
require 'opentsdb-consumer/query'
|
9
|
-
require 'opentsdb-consumer/result'
|
1
|
+
require 'opentsdb_consumer'
|
@@ -15,8 +15,34 @@ module OpenTSDBConsumer
|
|
15
15
|
@connection = Excon.new url, options
|
16
16
|
end
|
17
17
|
|
18
|
+
def fetch(metric_names, options = {})
|
19
|
+
options = {
|
20
|
+
start: '8h-ago',
|
21
|
+
aggregator: 'sum',
|
22
|
+
downsample: '5m-avg',
|
23
|
+
rate: false,
|
24
|
+
tags: {},
|
25
|
+
}.merge(options)
|
26
|
+
|
27
|
+
metrics = build_metrics(metric_names, options)
|
28
|
+
|
29
|
+
Query.new(metrics, self).run(start: options[:start])
|
30
|
+
end
|
31
|
+
|
18
32
|
def url
|
19
33
|
"http://#{host}:#{port}/api/query"
|
20
34
|
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def build_metrics(metric_names, options)
|
39
|
+
metric_names.map do |metric|
|
40
|
+
Metric.new(whitelisted_metric_options(options).merge(name: metric))
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def whitelisted_metric_options(options)
|
45
|
+
options.select { |key, _| Metric::ATTRIBUTES_WHITELIST.include?(key) }
|
46
|
+
end
|
21
47
|
end
|
22
48
|
end
|
@@ -2,18 +2,20 @@ require 'opentsdb-consumer/rate'
|
|
2
2
|
|
3
3
|
module OpenTSDBConsumer
|
4
4
|
class Metric
|
5
|
+
ATTRIBUTES_WHITELIST = %i(aggregator rate downsample tags).freeze
|
6
|
+
|
5
7
|
attr_reader :name, :aggregator, :rate, :downsample, :tags
|
6
8
|
|
7
9
|
def initialize(name: nil, aggregator: 'sum', rate: false, downsample: '10m-avg', tags: {})
|
8
|
-
@name
|
10
|
+
@name = name
|
9
11
|
@aggregator = aggregator
|
10
|
-
@rate
|
12
|
+
@rate = Rate.new(rate) if rate
|
11
13
|
@downsample = downsample
|
12
|
-
@tags
|
14
|
+
@tags = Tags.new(tags)
|
13
15
|
end
|
14
16
|
|
15
17
|
def to_s
|
16
|
-
query = tags.any? ? "{#{
|
18
|
+
query = tags.any? ? "{#{tags}}" : ''
|
17
19
|
query += ":#{rate}" if rate
|
18
20
|
[aggregator, downsample, name].compact.join(':') + query
|
19
21
|
end
|
@@ -23,16 +25,12 @@ module OpenTSDBConsumer
|
|
23
25
|
aggregator: aggregator,
|
24
26
|
downsample: downsample,
|
25
27
|
metric: name,
|
26
|
-
tags: tags,
|
28
|
+
tags: tags.to_h,
|
27
29
|
}
|
28
|
-
hash.merge! rate.to_h if rate
|
29
|
-
hash
|
30
|
-
end
|
31
30
|
|
32
|
-
|
31
|
+
hash.merge! rate.to_h if rate
|
33
32
|
|
34
|
-
|
35
|
-
tags.map { |key, value| [key, value].join '=' }.join(',')
|
33
|
+
hash
|
36
34
|
end
|
37
35
|
end
|
38
36
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module OpenTSDBConsumer
|
2
|
+
class Tags < Hash
|
3
|
+
def initialize(tags = {})
|
4
|
+
merge!(tags)
|
5
|
+
|
6
|
+
check_tags!
|
7
|
+
end
|
8
|
+
|
9
|
+
def to_s
|
10
|
+
map do |key, value|
|
11
|
+
[key, value].join '='
|
12
|
+
end.join(',')
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def check_tags!
|
18
|
+
each do |key, value|
|
19
|
+
raise EmptyTag if key && (value.nil? || value.to_s.empty?)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module OpenTSDBConsumer
|
2
|
+
end
|
3
|
+
|
4
|
+
require 'opentsdb-consumer/errors'
|
5
|
+
require 'opentsdb-consumer/client'
|
6
|
+
require 'opentsdb-consumer/metric'
|
7
|
+
require 'opentsdb-consumer/rate'
|
8
|
+
require 'opentsdb-consumer/tags'
|
9
|
+
require 'opentsdb-consumer/query'
|
10
|
+
require 'opentsdb-consumer/result'
|
data/opentsdb-consumer.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.email = ['phil@nine.ch']
|
10
10
|
s.homepage = 'http://github.com/ninech/'
|
11
11
|
s.license = 'MIT'
|
12
|
-
s.summary =
|
13
|
-
s.description =
|
12
|
+
s.summary = 'Client library to consume metrics from OpenTSDB'
|
13
|
+
s.description = 'Client library to consume metrics from OpenTSDB'
|
14
14
|
|
15
15
|
s.files = `git ls-files`.split("\n")
|
16
16
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -19,10 +19,12 @@ Gem::Specification.new do |s|
|
|
19
19
|
|
20
20
|
s.add_runtime_dependency 'excon', '~> 0.45.0'
|
21
21
|
|
22
|
-
s.add_development_dependency 'rspec', '~> 3.
|
22
|
+
s.add_development_dependency 'rspec', '~> 3.5', '>= 3.5.0'
|
23
|
+
s.add_development_dependency 'rake', '~> 10.0'
|
24
|
+
s.add_development_dependency 'rack', '~> 1' # Remove this dependency when using ruby 2.2.2+
|
25
|
+
s.add_development_dependency 'jeweler', '~> 2.0.1'
|
23
26
|
s.add_development_dependency 'rdoc', '~> 3.12'
|
24
27
|
s.add_development_dependency 'bundler', '~> 1.0'
|
25
|
-
s.add_development_dependency 'byebug', '~> 0'
|
26
28
|
s.add_development_dependency 'pry', '~> 0'
|
27
29
|
s.add_development_dependency 'coveralls', '~> 0'
|
28
30
|
end
|
@@ -1,12 +1,74 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'opentsdb-consumer/client'
|
3
2
|
|
4
3
|
RSpec.describe OpenTSDBConsumer::Client do
|
5
|
-
let(:
|
4
|
+
let(:host) { 'myhost.com' }
|
5
|
+
let(:port) { 4243 }
|
6
|
+
let(:metric_names) { %w(metric1 metric2) }
|
7
|
+
|
8
|
+
subject { described_class.new(host: host, port: port) }
|
6
9
|
|
7
10
|
describe '#url' do
|
11
|
+
subject { super().url }
|
12
|
+
|
8
13
|
it 'assembles a correct url for opentsdb requests' do
|
9
|
-
expect(
|
14
|
+
expect(subject).to eq 'http://myhost.com:4243/api/query'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '#fetch' do
|
19
|
+
subject do
|
20
|
+
super().fetch(metric_names, aggregator: 'cubic', start: 'now', unknown_key: 'not here')
|
21
|
+
end
|
22
|
+
|
23
|
+
before(:each) do
|
24
|
+
query_double = instance_double(OpenTSDBConsumer::Query)
|
25
|
+
allow(query_double).to receive(:run)
|
26
|
+
allow(OpenTSDBConsumer::Query).to receive(:new).and_return(query_double)
|
27
|
+
end
|
28
|
+
|
29
|
+
describe 'components' do
|
30
|
+
it 'uses OpenTSDB metric' do
|
31
|
+
expect(OpenTSDBConsumer::Metric).to receive(:new).with(
|
32
|
+
aggregator: 'cubic', downsample: '5m-avg', rate: false, tags: {}, name: 'metric1'
|
33
|
+
)
|
34
|
+
|
35
|
+
expect(OpenTSDBConsumer::Metric).to receive(:new).with(
|
36
|
+
aggregator: 'cubic', downsample: '5m-avg', rate: false, tags: {}, name: 'metric2'
|
37
|
+
)
|
38
|
+
|
39
|
+
subject
|
40
|
+
end
|
41
|
+
|
42
|
+
describe 'OpenTSDB query' do
|
43
|
+
it 'uses OpenTSDB query' do
|
44
|
+
fake_metric = double('fake_metric')
|
45
|
+
|
46
|
+
allow(OpenTSDBConsumer::Metric).to receive(:new).and_return(fake_metric)
|
47
|
+
|
48
|
+
expect(OpenTSDBConsumer::Query).to receive(:new).with([fake_metric, fake_metric], any_args)
|
49
|
+
|
50
|
+
subject
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'makes a query to OpenTSDB backend' do
|
54
|
+
fake_query = double('fake_query')
|
55
|
+
|
56
|
+
allow(OpenTSDBConsumer::Query).to receive(:new).and_return(fake_query)
|
57
|
+
|
58
|
+
expect(fake_query).to receive(:run).with(start: 'now')
|
59
|
+
|
60
|
+
subject
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'let exceptions bubble up' do
|
64
|
+
fake_query = double('fake_query')
|
65
|
+
|
66
|
+
allow(fake_query).to receive(:run).and_raise(OpenTSDBConsumer::InvalidMetric)
|
67
|
+
allow(OpenTSDBConsumer::Query).to receive(:new).and_return(fake_query)
|
68
|
+
|
69
|
+
expect { subject.datapoints }.to raise_error(OpenTSDBConsumer::InvalidMetric)
|
70
|
+
end
|
71
|
+
end
|
10
72
|
end
|
11
73
|
end
|
12
74
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe OpenTSDBConsumer::Tags do
|
4
|
+
let(:tags) { { key: 'value' } }
|
5
|
+
|
6
|
+
describe '#new' do
|
7
|
+
context 'with empty tag' do
|
8
|
+
it 'throws EmptyTag exception' do
|
9
|
+
expect do
|
10
|
+
described_class.new(key: '')
|
11
|
+
end.to raise_error OpenTSDBConsumer::EmptyTag
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '#to_h' do
|
17
|
+
subject { described_class.new(tags).to_h }
|
18
|
+
|
19
|
+
it { is_expected.to eq ({ key: 'value' }) }
|
20
|
+
end
|
21
|
+
|
22
|
+
describe '#to_s' do
|
23
|
+
subject { described_class.new(tags).to_s }
|
24
|
+
|
25
|
+
it { is_expected.to eq 'key=value' }
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '#any?' do
|
29
|
+
subject { described_class.new(tags).any? }
|
30
|
+
|
31
|
+
it { is_expected.to be true }
|
32
|
+
end
|
33
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opentsdb-consumer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Philippe Hassig
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: excon
|
@@ -30,62 +30,90 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '3.
|
33
|
+
version: '3.5'
|
34
34
|
- - ">="
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: 3.
|
36
|
+
version: 3.5.0
|
37
37
|
type: :development
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
41
|
- - "~>"
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: '3.
|
43
|
+
version: '3.5'
|
44
44
|
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 3.
|
46
|
+
version: 3.5.0
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
48
|
+
name: rake
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
53
|
+
version: '10.0'
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
60
|
+
version: '10.0'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
62
|
+
name: rack
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '1
|
67
|
+
version: '1'
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '1
|
74
|
+
version: '1'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
76
|
+
name: jeweler
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version:
|
81
|
+
version: 2.0.1
|
82
82
|
type: :development
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
86
|
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version:
|
88
|
+
version: 2.0.1
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: rdoc
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '3.12'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '3.12'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: bundler
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '1.0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - "~>"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '1.0'
|
89
117
|
- !ruby/object:Gem::Dependency
|
90
118
|
name: pry
|
91
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -127,7 +155,6 @@ files:
|
|
127
155
|
- ".rspec"
|
128
156
|
- ".travis.yml"
|
129
157
|
- Gemfile
|
130
|
-
- Gemfile.lock
|
131
158
|
- LICENSE.txt
|
132
159
|
- README.md
|
133
160
|
- Rakefile
|
@@ -140,12 +167,15 @@ files:
|
|
140
167
|
- lib/opentsdb-consumer/query.rb
|
141
168
|
- lib/opentsdb-consumer/rate.rb
|
142
169
|
- lib/opentsdb-consumer/result.rb
|
170
|
+
- lib/opentsdb-consumer/tags.rb
|
171
|
+
- lib/opentsdb_consumer.rb
|
143
172
|
- opentsdb-consumer.gemspec
|
144
173
|
- spec/opentsdb-consumer/client_spec.rb
|
145
174
|
- spec/opentsdb-consumer/metric_spec.rb
|
146
175
|
- spec/opentsdb-consumer/query_spec.rb
|
147
176
|
- spec/opentsdb-consumer/rate_spec.rb
|
148
177
|
- spec/opentsdb-consumer/result_spec.rb
|
178
|
+
- spec/opentsdb-consumer/tags_spec.rb
|
149
179
|
- spec/spec_helper.rb
|
150
180
|
homepage: http://github.com/ninech/
|
151
181
|
licenses:
|
@@ -167,7 +197,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
167
197
|
version: '0'
|
168
198
|
requirements: []
|
169
199
|
rubyforge_project:
|
170
|
-
rubygems_version: 2.
|
200
|
+
rubygems_version: 2.5.1
|
171
201
|
signing_key:
|
172
202
|
specification_version: 4
|
173
203
|
summary: Client library to consume metrics from OpenTSDB
|
@@ -177,4 +207,5 @@ test_files:
|
|
177
207
|
- spec/opentsdb-consumer/query_spec.rb
|
178
208
|
- spec/opentsdb-consumer/rate_spec.rb
|
179
209
|
- spec/opentsdb-consumer/result_spec.rb
|
210
|
+
- spec/opentsdb-consumer/tags_spec.rb
|
180
211
|
- spec/spec_helper.rb
|
data/Gemfile.lock
DELETED
@@ -1,118 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: https://rubygems.org/
|
3
|
-
specs:
|
4
|
-
addressable (2.3.8)
|
5
|
-
builder (3.2.2)
|
6
|
-
byebug (5.0.0)
|
7
|
-
columnize (= 0.9.0)
|
8
|
-
coderay (1.1.0)
|
9
|
-
columnize (0.9.0)
|
10
|
-
coveralls (0.8.2)
|
11
|
-
json (~> 1.8)
|
12
|
-
rest-client (>= 1.6.8, < 2)
|
13
|
-
simplecov (~> 0.10.0)
|
14
|
-
term-ansicolor (~> 1.3)
|
15
|
-
thor (~> 0.19.1)
|
16
|
-
descendants_tracker (0.0.4)
|
17
|
-
thread_safe (~> 0.3, >= 0.3.1)
|
18
|
-
diff-lcs (1.2.5)
|
19
|
-
docile (1.1.5)
|
20
|
-
domain_name (0.5.24)
|
21
|
-
unf (>= 0.0.5, < 1.0.0)
|
22
|
-
excon (0.45.4)
|
23
|
-
faraday (0.9.1)
|
24
|
-
multipart-post (>= 1.2, < 3)
|
25
|
-
git (1.2.9.1)
|
26
|
-
github_api (0.12.4)
|
27
|
-
addressable (~> 2.3)
|
28
|
-
descendants_tracker (~> 0.0.4)
|
29
|
-
faraday (~> 0.8, < 0.10)
|
30
|
-
hashie (>= 3.4)
|
31
|
-
multi_json (>= 1.7.5, < 2.0)
|
32
|
-
nokogiri (~> 1.6.6)
|
33
|
-
oauth2
|
34
|
-
hashie (3.4.2)
|
35
|
-
highline (1.7.3)
|
36
|
-
http-cookie (1.0.2)
|
37
|
-
domain_name (~> 0.5)
|
38
|
-
jeweler (2.0.1)
|
39
|
-
builder
|
40
|
-
bundler (>= 1.0)
|
41
|
-
git (>= 1.2.5)
|
42
|
-
github_api
|
43
|
-
highline (>= 1.6.15)
|
44
|
-
nokogiri (>= 1.5.10)
|
45
|
-
rake
|
46
|
-
rdoc
|
47
|
-
json (1.8.3)
|
48
|
-
jwt (1.5.1)
|
49
|
-
method_source (0.8.2)
|
50
|
-
mime-types (2.6.1)
|
51
|
-
mini_portile (0.6.2)
|
52
|
-
multi_json (1.11.2)
|
53
|
-
multi_xml (0.5.5)
|
54
|
-
multipart-post (2.0.0)
|
55
|
-
netrc (0.10.3)
|
56
|
-
nokogiri (1.6.6.2)
|
57
|
-
mini_portile (~> 0.6.0)
|
58
|
-
oauth2 (1.0.0)
|
59
|
-
faraday (>= 0.8, < 0.10)
|
60
|
-
jwt (~> 1.0)
|
61
|
-
multi_json (~> 1.3)
|
62
|
-
multi_xml (~> 0.5)
|
63
|
-
rack (~> 1.2)
|
64
|
-
pry (0.10.1)
|
65
|
-
coderay (~> 1.1.0)
|
66
|
-
method_source (~> 0.8.1)
|
67
|
-
slop (~> 3.4)
|
68
|
-
rack (1.6.4)
|
69
|
-
rake (10.4.2)
|
70
|
-
rdoc (3.12.2)
|
71
|
-
json (~> 1.4)
|
72
|
-
rest-client (1.8.0)
|
73
|
-
http-cookie (>= 1.0.2, < 2.0)
|
74
|
-
mime-types (>= 1.16, < 3.0)
|
75
|
-
netrc (~> 0.7)
|
76
|
-
rspec (3.3.0)
|
77
|
-
rspec-core (~> 3.3.0)
|
78
|
-
rspec-expectations (~> 3.3.0)
|
79
|
-
rspec-mocks (~> 3.3.0)
|
80
|
-
rspec-core (3.3.1)
|
81
|
-
rspec-support (~> 3.3.0)
|
82
|
-
rspec-expectations (3.3.0)
|
83
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
84
|
-
rspec-support (~> 3.3.0)
|
85
|
-
rspec-mocks (3.3.1)
|
86
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
87
|
-
rspec-support (~> 3.3.0)
|
88
|
-
rspec-support (3.3.0)
|
89
|
-
simplecov (0.10.0)
|
90
|
-
docile (~> 1.1.0)
|
91
|
-
json (~> 1.8)
|
92
|
-
simplecov-html (~> 0.10.0)
|
93
|
-
simplecov-html (0.10.0)
|
94
|
-
slop (3.6.0)
|
95
|
-
term-ansicolor (1.3.2)
|
96
|
-
tins (~> 1.0)
|
97
|
-
thor (0.19.1)
|
98
|
-
thread_safe (0.3.5)
|
99
|
-
tins (1.6.0)
|
100
|
-
unf (0.1.4)
|
101
|
-
unf_ext
|
102
|
-
unf_ext (0.0.7.1)
|
103
|
-
|
104
|
-
PLATFORMS
|
105
|
-
ruby
|
106
|
-
|
107
|
-
DEPENDENCIES
|
108
|
-
bundler (~> 1.0)
|
109
|
-
byebug
|
110
|
-
coveralls
|
111
|
-
excon (~> 0.45.0)
|
112
|
-
jeweler (~> 2.0.1)
|
113
|
-
pry
|
114
|
-
rdoc (~> 3.12)
|
115
|
-
rspec (~> 3.3.0)
|
116
|
-
|
117
|
-
BUNDLED WITH
|
118
|
-
1.10.6
|