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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: eb7d750ca51fdc6882af8898d1c61dce352d9dd1
4
- data.tar.gz: 4a71312b90f2ea0da2240eb1745652352fb021bc
3
+ metadata.gz: 4e14aecc85327b60ff742690af0d5c6741ed8b57
4
+ data.tar.gz: bf15e8763fd0d42daf345ccbe5762d6839a6b661
5
5
  SHA512:
6
- metadata.gz: a5de7f226e225a8fadf8b5a48f4c0fe77227b8d3a083c62d44e0e0db66f1cb30341520beb09e5666ee38db15ef45d5b4291d472f01be10adb95e6957b3613bd2
7
- data.tar.gz: eb2df067423f0e909aa1f4d7dea37d2fd0d912a23c8dd249cedf8582a0f70c7fc1035d9e127306c71d3ddc8b6710a5251ab88623dc47455e4307fab0acfc6cdf
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
@@ -1 +1,2 @@
1
+ require_relative "matcher/have_data_points.rb"
1
2
  require_relative "type/opentsdb_query.rb"
@@ -6,22 +6,29 @@ require "uri"
6
6
 
7
7
  module Serverspec
8
8
  module Type
9
- class OpentsdbQuery < Base
10
- def initialize(metric, aggregate, tags)
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
- @metric = metric
15
- @aggregate = aggregate
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 data_points
24
- response.first['dps']
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" => "#{@aggregate}:#{@metric}{#{joined_tags}}"
41
+ "m" => "#{@aggregator}:#{@metric}{#{joined_tags}}"
35
42
  )
36
43
  uri
37
44
  end
38
45
  end
39
46
 
40
- def opentsdb_query(metric, aggregate, tags)
41
- OpentsdbQuery.new(metric, aggregate, tags)
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.2
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