circonus 3.4.3 → 3.4.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,101 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Add an HTTP site check
4
+ #
5
+
6
+ require 'circonusutil'
7
+
8
+ host = nil
9
+ cu = CirconusUtil.new() { |opts,options|
10
+ options[:brokers] = []
11
+ options[:hostname] = nil
12
+ options[:url] = nil
13
+ options[:tags] = ['application:http']
14
+ opts.banner = "Usage: #{File.basename($0)}\n"
15
+ opts.on( '--tags TAGLIST',"Apply comma separated list of tags (default: empty list)" ) { |t| options[:tags] += options[:tags] + t.split(/,/) }
16
+ opts.on( '--brokers BROKER',"Comma separated list of broker names to use" ) { |t| options[:brokers] = t.split(',') }
17
+ opts.on( '--hostname HOSTNAME',"Hostname to add" ) { |t| options[:hostname] = t }
18
+ opts.on( '--url URL',"URL to test" ) { |t| options[:url] = t }
19
+ }
20
+ if cu.options[:brokers].empty?
21
+ puts "Missing brokers list"
22
+ exit -1
23
+ end
24
+ if cu.options[:hostname].empty?
25
+ puts "Missing hostname"
26
+ exit -1
27
+ end
28
+ if cu.options[:url].empty?
29
+ puts "Missing url"
30
+ exit -1
31
+ end
32
+
33
+ def do_update_check_bundle(cu,data)
34
+ search_check_bundle = cu.circonus.list_check_bundle({'display_name' => data['display_name']})
35
+ existing = false
36
+ if search_check_bundle.any? # already exists...
37
+ existing = true
38
+ r = cu.circonus.update_check_bundle(search_check_bundle.first['_cid'],data)
39
+ else
40
+ r = cu.circonus.add_check_bundle(data)
41
+ end
42
+ if not r.nil? then
43
+ pp r
44
+ print "Success (#{existing ? 'updating' : 'adding'} #{data['display_name']})\n"
45
+ end
46
+ end
47
+
48
+ brokerids = []
49
+ cu.options[:brokers].each do |broker|
50
+ circonus_brokers = cu.circonus.list_broker({'_name'=>broker})
51
+ id = circonus_brokers.map { |m| m['_cid'] }.first
52
+ brokerids << id
53
+ end
54
+
55
+ bundle_stub = {
56
+ "brokers"=>[ ],
57
+ "display_name"=>nil,
58
+ "period"=>60,
59
+ "target"=>nil,
60
+ "timeout"=>10,
61
+ "type"=>"http",
62
+ "tags"=>[],
63
+ "metrics"=> [
64
+ {"name"=>"body_match", "type"=>"text"},
65
+ {"name"=>"bytes", "type"=>"numeric"},
66
+ {"name"=>"code", "type"=>"text"},
67
+ {"name"=>"duration", "type"=>"numeric"},
68
+ {"name"=>"truncated", "type"=>"numeric"},
69
+ {"name"=>"tt_connect", "type"=>"numeric"},
70
+ {"name"=>"tt_firstbyte", "type"=>"numeric"}
71
+ ],
72
+ "config" => {
73
+ "url"=>nil,
74
+ "http_version"=>"1.1",
75
+ "header_Host"=>nil,
76
+ "read_limit"=>"1048576",
77
+ "method"=>"GET",
78
+ "code"=>"^200$",
79
+ "redirects"=>"0"
80
+ }
81
+ }
82
+
83
+ bundle = bundle_stub.clone
84
+ bundle['brokers'] = brokerids
85
+ bundle['target'] = cu.options[:hostname]
86
+ bundle['tags'] = cu.options[:tags]
87
+ bundle['display_name'] = "#{cu.options[:hostname]} http"
88
+ bundle['config']['url'] = cu.options[:url]
89
+ bundle['config']['header_Host'] = cu.options[:hostname]
90
+
91
+ search_bundles = cu.circonus.search_check_bundle(bundle['display_name'],'display_name')
92
+ if search_bundles.any? # already exists...
93
+ r = cu.circonus.update_check_bundle(search_bundles.first['_cid'],bundle)
94
+ else
95
+ r = cu.circonus.add_check_bundle(bundle)
96
+ end
97
+ if not r.nil? then
98
+ print "Success\n"
99
+ #pp r
100
+ end
101
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: circonus
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.3
4
+ version: 3.4.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -72,6 +72,7 @@ extra_rdoc_files: []
72
72
  files:
73
73
  - lib/circonusutil.rb
74
74
  - lib/circonus.rb
75
+ - bin/circonus-add-http-check
75
76
  - bin/circonus-delete-host
76
77
  - bin/circonus-add-composite
77
78
  - bin/circonus-list-tags
@@ -86,7 +87,6 @@ files:
86
87
  - examples/util.rb
87
88
  - examples/cache_copy.rb
88
89
  - examples/graph_data.rb
89
- - examples/add_http_check.rb
90
90
  - examples/add_apache_node.rb
91
91
  homepage: https://github.com/venturaville/circonus-api
92
92
  licenses:
@@ -1,88 +0,0 @@
1
- #!/usr/bin/env ruby
2
- #
3
- # Add an HTTP site check
4
- #
5
-
6
- require 'rubygems'
7
- require 'optparse'
8
- require 'circonus'
9
- require "#{ENV['HOME']}/.circonus.rb"
10
- @c = Circonus.new(@apitoken,@appname,@agent)
11
-
12
- options = {}
13
- options[:multi] = false
14
- OptionParser.new { |opts|
15
- opts.banner = "Usage: #{File.basename($0)} [-h] [-m] sitename URL"
16
- opts.on( '-h', '--help', "This usage menu") do
17
- puts opts
18
- print "sitename = The site's hostname\n"
19
- print "URL = The actual url to check on the site\n"
20
- exit
21
- end
22
- opts.on( '-m','--multi',"Use multiple circonus brokers" ) do
23
- options[:multi] = true
24
- end
25
- }.parse!
26
-
27
-
28
- def usage()
29
- print <<EOF
30
- Usage: add_http_check.rb sitename URL
31
- -h,--help This usage menu
32
- -m,--multi Use multiple circonus brokers
33
- EOF
34
- end
35
-
36
- sitename = ARGV[0]
37
- url = ARGV[1]
38
-
39
- circonus_brokers = @c.search_broker("circonus",'_type')
40
- circonus_brokers = circonus_brokers.select {|a| a['_name'] != 'HTTPTrap'} # filter out http trap broker...
41
- agentids = circonus_brokers.map { |m| m['_cid'] }
42
- agentids = agentids[0,1] unless options[:multi]
43
-
44
- bundle_stub = {
45
- "brokers"=>[ ],
46
- "display_name"=>nil,
47
- "period"=>60,
48
- "target"=>nil,
49
- "timeout"=>10,
50
- "type"=>"http",
51
- "metrics"=> [
52
- {"name"=>"body_match", "type"=>"text"},
53
- {"name"=>"bytes", "type"=>"numeric"},
54
- {"name"=>"code", "type"=>"text"},
55
- {"name"=>"duration", "type"=>"numeric"},
56
- {"name"=>"truncated", "type"=>"numeric"},
57
- {"name"=>"tt_connect", "type"=>"numeric"},
58
- {"name"=>"tt_firstbyte", "type"=>"numeric"}
59
- ],
60
- "config" => {
61
- "url"=>nil,
62
- "http_version"=>"1.1",
63
- "header_Host"=>nil,
64
- "read_limit"=>"1048576",
65
- "method"=>"GET",
66
- "code"=>"^200$",
67
- "redirects"=>"0"
68
- }
69
- }
70
-
71
- bundle = bundle_stub.clone
72
- bundle['brokers'] = agentids
73
- bundle['target'] = sitename
74
- bundle['display_name'] = "#{sitename} http"
75
- bundle['config']['url'] = url
76
- bundle['config']['header_Host'] = sitename
77
-
78
- search_bundles = @c.search_check_bundle(bundle['display_name'],'display_name')
79
- if search_bundles.any? # already exists...
80
- r = @c.update_check_bundle(search_bundles.first['_cid'],bundle)
81
- else
82
- r = @c.add_check_bundle(bundle)
83
- end
84
- if not r.nil? then
85
- print "Success\n"
86
- #pp r
87
- end
88
-