serverspec-opentsdb 0.1.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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