serverspec-opentsdb 0.1.2 → 0.1.4
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/lib/serverspec/matcher/have_data_points.rb +22 -0
- data/lib/serverspec/opentsdb.rb +1 -0
- data/lib/serverspec/type/opentsdb_query.rb +17 -10
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e14aecc85327b60ff742690af0d5c6741ed8b57
|
4
|
+
data.tar.gz: bf15e8763fd0d42daf345ccbe5762d6839a6b661
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee0f32ff64f71b2aed419b4831e2c227370af3375a0a113833b3c206011593210bfabe95e84f2eee5cf9474586195fa50499e58fe289835b8b0f6b071e99967a
|
7
|
+
data.tar.gz: c6fd058611f5da321652b36625628b0dbc15c97f2b3863410712d85ef2111e182b05de016454508a5bc72e46351c6586f98b7dfc650492e51b62467b72e6066a
|
@@ -0,0 +1,22 @@
|
|
1
|
+
RSpec::Matchers.define :have_data_points do |metric|
|
2
|
+
match do |subject|
|
3
|
+
if subject.class.name == 'Serverspec::Type::OpenTSDBQuery'
|
4
|
+
subject.has_data_points?(metric, @start, @aggregator, @tags)
|
5
|
+
elsif subject.respond_to?(:has_data_points?)
|
6
|
+
subject.has_data_points?(metric)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
# For opentsdb
|
11
|
+
chain :with_start do |start|
|
12
|
+
@start = start
|
13
|
+
end
|
14
|
+
|
15
|
+
chain :with_aggregator do |aggregator|
|
16
|
+
@aggregator = aggregator
|
17
|
+
end
|
18
|
+
|
19
|
+
chain :with_tags do |tags|
|
20
|
+
@tags = tags
|
21
|
+
end
|
22
|
+
end
|
data/lib/serverspec/opentsdb.rb
CHANGED
@@ -6,22 +6,29 @@ require "uri"
|
|
6
6
|
|
7
7
|
module Serverspec
|
8
8
|
module Type
|
9
|
-
class
|
10
|
-
def initialize(metric
|
9
|
+
class OpenTSDBQuery < Base
|
10
|
+
def initialize(metric)
|
11
|
+
@metric = metric
|
11
12
|
@host = "opentsdb"
|
12
13
|
@port = 4242
|
13
14
|
@start = "2m-ago"
|
14
|
-
@
|
15
|
-
@
|
16
|
-
@tags = tags
|
15
|
+
@aggregator = "sum"
|
16
|
+
@tags = {}
|
17
17
|
end
|
18
18
|
|
19
19
|
def response
|
20
20
|
JSON.parse(Net::HTTP.get_response(generate_uri).body)
|
21
21
|
end
|
22
22
|
|
23
|
-
def
|
24
|
-
|
23
|
+
def has_data_points?(metric, start, aggregator, tags)
|
24
|
+
@start = start if start
|
25
|
+
@aggregator = aggregator if aggregator
|
26
|
+
@tags = tags if tags
|
27
|
+
response.first['dps'].any?
|
28
|
+
end
|
29
|
+
|
30
|
+
def to_s
|
31
|
+
"OpenTSDB Query"
|
25
32
|
end
|
26
33
|
|
27
34
|
private
|
@@ -31,14 +38,14 @@ module Serverspec
|
|
31
38
|
uri = URI.parse("http://#{@host}:#{@port}/api/query")
|
32
39
|
uri.query = URI.encode_www_form(
|
33
40
|
"start" => @start,
|
34
|
-
"m" => "#{@
|
41
|
+
"m" => "#{@aggregator}:#{@metric}{#{joined_tags}}"
|
35
42
|
)
|
36
43
|
uri
|
37
44
|
end
|
38
45
|
end
|
39
46
|
|
40
|
-
def opentsdb_query(metric
|
41
|
-
|
47
|
+
def opentsdb_query(metric)
|
48
|
+
OpenTSDBQuery.new(metric)
|
42
49
|
end
|
43
50
|
end
|
44
51
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: serverspec-opentsdb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike
|
@@ -31,6 +31,7 @@ executables: []
|
|
31
31
|
extensions: []
|
32
32
|
extra_rdoc_files: []
|
33
33
|
files:
|
34
|
+
- lib/serverspec/matcher/have_data_points.rb
|
34
35
|
- lib/serverspec/opentsdb.rb
|
35
36
|
- lib/serverspec/type/opentsdb_query.rb
|
36
37
|
homepage: https://rubygems.org/gems/serverspec-opentsdb
|