serverspec-opentsdb 0.1.0

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