serverspec-opentsdb 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 944d5bc050a30dd427be34c6295a74afc7fc9b30
4
+ data.tar.gz: 3cc42bccfc0f5d8771901855c488d84572b50dc5
5
+ SHA512:
6
+ metadata.gz: a9a7f6934b02b5d526cd99b0f28c4fd7e9daf6de20db4d0b8898bb916f35b8527def38789ee2850ffae41aa6e1afa4aab97ad6dfac16d9dafa1bfd66ec06148f
7
+ data.tar.gz: 698a0803f0ffd01b6978d8fe0f4fe70e351ab9c941b7cb3bf908f16405129699e6769f863d7b3ed6a14463b73ecf0c7ccbe7eb8ab97a4fd48599c5d4f04cbe08
@@ -0,0 +1 @@
1
+ require_relative "resources/opentsdb_query.rb"
@@ -0,0 +1,42 @@
1
+ # This file should get pulled to a common area if we want to use it for other things
2
+ # Or probably made into a gem
3
+ require "net/http"
4
+ require "uri"
5
+
6
+ module Serverspec
7
+ module Type
8
+ class OpenTSDBQuery < Base
9
+ def initialize(metric, aggregate, tags)
10
+ @host = "opentsdb"
11
+ @port = 4242
12
+ @start = "2m-ago"
13
+ @metric = metric
14
+ @aggregate = aggregate
15
+ @tags = tags
16
+ end
17
+
18
+ def response
19
+ Net::HTTP.get_response(generate_uri)
20
+ end
21
+
22
+ private
23
+
24
+ def generate_uri
25
+ joined_tags = @tags.map { |key, value| "#{key}=#{value}" }.join(",")
26
+ uri = URI.parse("http://#{@host}:#{@port}/api/query")
27
+ uri.query = URI.encode_www_form(
28
+ "start" => @start,
29
+ "m" => "#{@aggregate}:#{@metric}{#{joined_tags}}"
30
+ )
31
+ puts uri
32
+ uri
33
+ end
34
+ end
35
+
36
+ def opentsdb_query(metric, aggregate, tags)
37
+ OpenTSDBQuery.new(metric, aggregate, tags)
38
+ end
39
+ end
40
+ end
41
+
42
+ include Serverspec::Type
metadata ADDED
@@ -0,0 +1,59 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: serverspec-opentsdb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Mike
8
+ - Wood
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-10-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: serverspec
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '2.0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '2.0'
28
+ description: serverspec resource for opentsdb queries
29
+ email: michael.wood@optimizely.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - lib/serverspec/opentsdb.rb
35
+ - lib/serverspec/resources/opentsdb_query.rb
36
+ homepage: https://rubygems.org/gems/serverspec-opentsdb
37
+ licenses: []
38
+ metadata: {}
39
+ post_install_message:
40
+ rdoc_options: []
41
+ require_paths:
42
+ - lib
43
+ required_ruby_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ requirements: []
54
+ rubyforge_project:
55
+ rubygems_version: 2.2.2
56
+ signing_key:
57
+ specification_version: 4
58
+ summary: serverspec resource for opentsdb queries
59
+ test_files: []