kurchatov 0.0.6 → 0.0.7.pre.1

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: 5f75c8dca0ef451afb605c85dc75cb15e7669a3c
4
- data.tar.gz: a2573401456215589913a562bf8a0b889f710fd9
3
+ metadata.gz: f7e6c68a87238baaef79f95a9f6d6da2c1df1eb7
4
+ data.tar.gz: a196e3e7973c49d16657ab6cb88306091d87933b
5
5
  SHA512:
6
- metadata.gz: 64c933fb2783d2cddea9d370c82ac7e5044749c64a1e3441ab1c14bb91c0fc98fa174745d76562dc0c2e46a02e575329d5a084c75fbc8a4f0b4c0b068f9eb7a6
7
- data.tar.gz: 554337927ac11c606708306d47e2ac5a78458dab25d10970b577e71799042abbccfe002fe0f3f43fa83ac03d8b374b002e497aef8c6924acf8fe84289d2983b1
6
+ metadata.gz: 7ac544720faa2e0588b20aba059e7e8a55557e58c5c56c2056b8710ff09d1705abc95be805ac73cfdfdbe1d02d05c5bae47955cb4a34df1c351faf5093fd545c
7
+ data.tar.gz: 0159379599e421a6949a4aff2db8f0ab0cfa29ed027e2cf70748a3c45c35d54a4eb8afd0b69f45cbf4762eec1f553de9288d8b7b973fc95d6393f7c1dee331c8
data/CHANGELOG CHANGED
@@ -4,3 +4,4 @@
4
4
  * Version 0.0.6.pre.4: Required block for plugin
5
5
  * Version 0.0.6.pre.5: Improve http responder, add monitor
6
6
  * Version 0.0.6: ruby 1.8.7 support
7
+ * Version 0.0.7.pre.1: add FreeBSD support, responders as plugins
@@ -7,7 +7,6 @@ require 'kurchatov/config'
7
7
  require 'kurchatov/log'
8
8
  require 'kurchatov/mixin/init'
9
9
  require 'kurchatov/plugin/config'
10
- require 'kurchatov/responders/init'
11
10
  require 'kurchatov/monitor'
12
11
 
13
12
  module Kurchatov
@@ -116,23 +115,11 @@ module Kurchatov
116
115
  Config[:host] ||= ohai[:fqdn] || ohai[:hostname]
117
116
  end
118
117
 
119
- def configure_responders
118
+ def load_plugins(path)
120
119
  return if Config[:test_plugin]
121
- Log.error('Please set riemann host') and exit Config[:ERROR_CONFIG] unless Config[:riemann_responder]
122
- if Config[:udp_responder]
123
- monitor << Responders::Udp.new(Config[:udp_responder])
124
- end
125
- if Config[:http_responder]
126
- monitor << Responders::Http.new(Config[:http_responder])
127
- end
128
- monitor << Responders::Riemann.new(Config[:riemann_responder])
129
- end
130
-
131
- def configure_plugins
132
- return if Config[:test_plugin]
133
- plugins = Kurchatov::Plugins::Config.load_plugins(Config[:plugin_paths],
120
+ plugins = Kurchatov::Plugins::Config.load_plugins(path,
134
121
  Config[:config_file])
135
- plugins.each { |p| monitor << p }
122
+ plugins.each {|p| monitor << p}
136
123
  end
137
124
 
138
125
  def configure_test_plugin
@@ -144,11 +131,10 @@ module Kurchatov
144
131
  configure_opts
145
132
  configure_logging
146
133
  configure_defaults
147
- @monitor = Monitor.new(Config[:stop_on_error] || !!Config[:test_plugin])
148
- configure_responders
149
- configure_plugins
134
+ load_plugins(Config[:plugin_paths])
135
+ load_plugins(File.join(File.dirname(__FILE__),'responders'))
150
136
  configure_test_plugin
151
- monitor.run
137
+ monitor.start
152
138
  end
153
139
 
154
140
  end
@@ -8,7 +8,7 @@ module Kurchatov
8
8
 
9
9
  def initialize(plugin)
10
10
  @plugin = plugin
11
- @thread = Thread.new { @plugin.run }
11
+ @thread = Thread.new { @plugin.start }
12
12
  @count_errors = 0
13
13
  @last_error = nil
14
14
  @last_error_at = nil
@@ -42,7 +42,7 @@ module Kurchatov
42
42
  event(:service => 'riemann client errors', :desc => desc, :state => 'critical')
43
43
  end
44
44
  end
45
- @thread = Thread.new { @plugin.run }
45
+ @thread = Thread.new { @plugin.start }
46
46
  true
47
47
  end
48
48
 
@@ -61,7 +61,7 @@ module Kurchatov
61
61
  @tasks << Task.new(plugin)
62
62
  end
63
63
 
64
- def run
64
+ def start
65
65
  loop do
66
66
  @tasks.each { |t| exit Config[:ERROR_PLUGIN_REQ] if t.died? && @stop_on_error }
67
67
  Log.debug("Check alive plugins [#{@tasks.count}]")
@@ -45,6 +45,11 @@ module Kurchatov
45
45
  last.collect = block
46
46
  end
47
47
 
48
+ def run(opts = {}, *args, &block)
49
+ return unless last.respond_to_ohai?(opts)
50
+ last.run = block
51
+ end
52
+
48
53
  def run_if(opts = {}, &block)
49
54
  return unless last.respond_to_ohai?(opts)
50
55
  last.run_if = block
@@ -54,6 +59,7 @@ module Kurchatov
54
59
  return unless last.respond_to_ohai?(opts)
55
60
  last.required = block
56
61
  end
62
+ alias :helpers :required
57
63
 
58
64
  def last_plugin
59
65
  last.plugin
@@ -66,6 +72,7 @@ module Kurchatov
66
72
 
67
73
  def self.load_riemann_plugins(paths)
68
74
  dsl = Kurchatov::Plugins::DSL.new
75
+ paths = [paths] unless paths.kind_of? Array
69
76
  paths.map do |path|
70
77
  Log.error("Directory #{path} not exists") and exit Kurchatov::Config[:ERROR_CONFIG] unless
71
78
  File.directory?(path)
@@ -11,13 +11,16 @@ module Kurchatov
11
11
  include Kurchatov::Mixin::Event
12
12
  include Kurchatov::Mixin::Command
13
13
  include Kurchatov::Mixin::Http
14
+ include Kurchatov::Mixin::Queue
15
+ include Kurchatov::Mixin::Monitor
14
16
 
15
- attr_accessor :run_if, :collect, :always_start, :required, :ignore_errors, :interval, :plugin
17
+ attr_accessor :run_if, :collect, :run, :always_start, :required, :ignore_errors, :interval, :plugin
16
18
 
17
19
  def initialize(name = '')
18
20
  super(name)
19
21
  @run_if = Proc.new { true }
20
22
  @required = Proc.new { true }
23
+ @run = nil
21
24
  @plugin = Mashie.new
22
25
  @always_start = false
23
26
  @ignore_errors = false
@@ -29,8 +32,12 @@ module Kurchatov
29
32
  plugin
30
33
  end
31
34
 
32
- def run
35
+ def start
33
36
  super
37
+ run.nil? ? start_collect : start_run
38
+ end
39
+
40
+ def start_collect
34
41
  loop do
35
42
  t_start = Time.now
36
43
  Timeout::timeout(interval * 2.to_f/3) do
@@ -40,6 +47,10 @@ module Kurchatov
40
47
  end
41
48
  end
42
49
 
50
+ def start_run
51
+ self.instance_eval(&run)
52
+ end
53
+
43
54
  def respond_to_ohai?(opts = {})
44
55
  opts.each { |k, v| return false unless ohai[k] == v }
45
56
  true
@@ -55,7 +66,7 @@ module Kurchatov
55
66
  end
56
67
 
57
68
  def runnable_by_config?
58
- Log.info("Plugin '#{self.name}' disabled by nil collect") and return if collect.nil?
69
+ Log.info("Plugin '#{self.name}' disabled by run and collect nil") and return if (collect.nil? && run.nil?)
59
70
  Log.info("Plugin '#{self.name}' disabled in config") and return if (plugin[:disable] == true)
60
71
  Log.info("Plugin '#{self.name}' not started by run_if condition ") and
61
72
  return unless self.instance_eval(&run_if)
@@ -9,7 +9,7 @@ module Kurchatov
9
9
  @always_start = false
10
10
  end
11
11
 
12
- def run
12
+ def start
13
13
  #
14
14
  end
15
15
 
@@ -1,44 +1,35 @@
1
- module Kurchatov
2
- module Responders
3
- class Http < Kurchatov::Plugin
1
+ name 'http'
2
+ always_start true
4
3
 
5
- include Kurchatov::Mixin::Monitor
4
+ default[:host], default[:port] = Kurchatov::Config[:http_responder].split(":")
6
5
 
7
- def initialize(conn)
8
- @host, @port = conn.split(':')
9
- @name = "http server #{@host}:#{@port}"
10
- @s_time = Time.now
11
- end
12
-
13
- def plugin_config
14
- {:host => @host, :port => @port}
15
- end
16
-
17
- def run
18
- super
19
- @server ||= TCPServer.new(@host, @port)
20
- loop do
21
- client = @server.accept
22
- response = info
23
- client.gets
24
- headers = "HTTP/1.1 200 OK\r\n" +
25
- "Server: Kurchatov Ruby\r\n" +
26
- "Content-Length: #{response.bytesize}\r\n" +
27
- "Content-Type: application/json\r\n\r\n"
28
- client.print headers
29
- client.print response
30
- client.close
31
- end
32
- end
6
+ run_if do
7
+ !!Kurchatov::Config[:http_responder]
8
+ end
33
9
 
34
- def info
35
- {
36
- :version => Kurchatov::VERSION,
37
- :uptime => (Time.now - @s_time).to_i,
38
- :monitor => monitor.inspect,
39
- }.to_json + "\n"
40
- end
10
+ helpers do
11
+ @s_time = Time.now
12
+ def json_info
13
+ {
14
+ :version => Kurchatov::VERSION,
15
+ :uptime => (Time.now - @s_time).to_i,
16
+ :monitor => monitor.inspect,
17
+ }.to_json + "\n"
18
+ end
19
+ end
41
20
 
42
- end
21
+ run do
22
+ @server ||= TCPServer.new(plugin.host, plugin.port)
23
+ loop do
24
+ client = @server.accept
25
+ response = json_info
26
+ client.gets
27
+ headers = "HTTP/1.1 200 OK\r\n" +
28
+ "Server: Kurchatov Ruby\r\n" +
29
+ "Content-Length: #{response.bytesize}\r\n" +
30
+ "Content-Type: application/json\r\n\r\n"
31
+ client.print headers
32
+ client.print response
33
+ client.close
43
34
  end
44
35
  end
@@ -1,49 +1,26 @@
1
1
  require 'kurchatov/riemann/client'
2
2
 
3
- module Kurchatov
4
- module Responders
5
- class Riemann < Kurchatov::Plugin
3
+ name 'riemann'
4
+ always_start true
6
5
 
7
- include Kurchatov::Mixin::Queue
8
-
9
- FLUSH_INTERVAL = 0.5
10
-
11
- def initialize(conn)
12
- @ignore_errors = true
13
- @hosts = conn
14
- @riemanns = Array.new
15
- end
16
-
17
- def plugin_config
18
- {:hosts => @hosts}
19
- end
20
-
21
- def run
22
- super
23
- make_clients
24
- loop { flush; sleep FLUSH_INTERVAL }
25
- end
26
-
27
- private
28
-
29
- def make_clients
30
- @riemanns.clear
31
- @hosts.each do |host|
32
- riemann, port = host.split(':')
33
- @riemanns << Kurchatov::Riemann::Client.new(:host => riemann, :port => port)
34
- @name = @riemanns.map { |c| "riemann client [#{c.host}:#{c.port}]" }.join(' , ')
35
- end
36
- end
37
-
38
- def flush
39
- @events_to_send ||= events.to_flush
40
- unless @events_to_send.empty?
41
- @riemanns.each { |riemann| riemann << @events_to_send }
42
- Log.debug("Sended events via #{@name.inspect}: #{@events_to_send}")
43
- end
44
- @events_to_send = nil
45
- end
6
+ default[:hosts] = Kurchatov::Config[:riemann_responder]
46
7
 
8
+ helpers do
9
+ def flush
10
+ @events_to_send ||= events.to_flush
11
+ unless @events_to_send.empty?
12
+ @riemanns.each { |riemann| riemann << @events_to_send }
13
+ Log.debug("Sended events: #{@events_to_send}")
47
14
  end
15
+ @events_to_send = nil
16
+ end
17
+ end
18
+
19
+ run do
20
+ @riemanns = []
21
+ plugin.hosts.each do |host|
22
+ riemann, port = host.split(':')
23
+ @riemanns << Kurchatov::Riemann::Client.new(:host => riemann, :port => port)
48
24
  end
25
+ loop { flush; sleep 0.5 }
49
26
  end
@@ -1,35 +1,26 @@
1
- module Kurchatov
2
- module Responders
3
- class Udp < Kurchatov::Plugin
1
+ name 'udp'
2
+ always_start true
4
3
 
5
- include Kurchatov::Mixin::Event
4
+ default[:host], default[:port] = Kurchatov::Config[:udp_responder].to_s.split(":")
6
5
 
7
- def initialize(conn)
8
- @host, @port = conn.split(':')
9
- @name = "udp responder #{@host}:#{@port}"
10
- end
11
-
12
- def plugin_config
13
- {:host => @host, :port => @port}
14
- end
15
-
16
- def run
17
- super
18
- Socket.udp_server_loop(@host, @port) do |data, src|
19
- process(data, src)
20
- end
21
- end
22
-
23
- def process(data, src)
24
- begin
25
- event(JSON.parse(data))
26
- src.reply "sended\n\n"
27
- rescue => e
28
- src.reply "failed to send: #{data.inspect}\n"
29
- Log.error("Failed parse #{data.inspect}, #{e.class}: #{e}\n #{e.backtrace.join("\n")}")
30
- end
31
- end
6
+ run_if do
7
+ !!Kurchatov::Config[:udp_responder]
8
+ end
32
9
 
10
+ helpers do
11
+ def process(data, src)
12
+ begin
13
+ event(JSON.parse(data))
14
+ src.reply "sended\n\n"
15
+ rescue => e
16
+ src.reply "failed to send: #{data.inspect}\n"
17
+ Log.error("Failed parse #{data.inspect}, #{e.class}: #{e}\n #{e.backtrace.join("\n")}")
33
18
  end
34
19
  end
35
20
  end
21
+
22
+ run do
23
+ Socket.udp_server_loop(plugin.host, plugin.port) do |data, src|
24
+ process(data, src)
25
+ end
26
+ end
@@ -1,3 +1,3 @@
1
1
  module Kurchatov
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7.pre.1"
3
3
  end
@@ -0,0 +1,52 @@
1
+ #
2
+ # Author:: Bryan McLellan (btm@loftninjas.org)
3
+ # Copyright:: Copyright (c) 2008 Bryan McLellan
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ provides "cpu"
20
+
21
+ # all dmesg output for smp I can find only provides info about a single processor
22
+ # identical processors is probably a hardware requirement so we'll duplicate data for each cpu
23
+ # old examples: http://www.bnv-bamberg.de/home/ba3294/smp/rbuild/index.htm
24
+ cpuinfo = Mash.new
25
+
26
+ # /var/run/dmesg.boot
27
+ #CPU: QEMU Virtual CPU version 0.9.1 (1862.02-MHz 686-class CPU)
28
+ # Origin = "GenuineIntel" Id = 0x623 Stepping = 3
29
+ # Features=0x78bfbfd<FPU,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
30
+ # Features2=0x80000001<SSE3,<b31>>
31
+
32
+ File.open("/var/run/dmesg.boot").each do |line|
33
+ case line
34
+ when /CPU:\s+(.+) \(([\d.]+).+\)/
35
+ cpuinfo["model_name"] = $1
36
+ cpuinfo["mhz"] = $2
37
+ when /Origin = "(.+)"\s+Id = (.+)\s+Stepping = (.+)/
38
+ cpuinfo["vendor_id"] = $1
39
+ cpuinfo["stepping"] = $3
40
+ # These _should_ match /AMD Features2?/ lines as well
41
+ when /Features=.+<(.+)>/
42
+ cpuinfo["flags"] = $1.downcase.split(',')
43
+ # Features2=0x80000001<SSE3,<b31>>
44
+ when /Features2=[a-f\dx]+<(.+)>/
45
+ cpuinfo["flags"].concat($1.downcase.split(','))
46
+ when /Logical CPUs per core: (\d+)/
47
+ cpuinfo["cores"] = $1
48
+ end
49
+ end
50
+
51
+ cpu cpuinfo
52
+ cpu[:total] = from("sysctl -n hw.ncpu")
@@ -0,0 +1,22 @@
1
+ #
2
+ # Author:: Bryan McLellan (btm@loftninjas.org)
3
+ # Copyright:: Copyright (c) 2009 Bryan McLellan
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ provides "hostname", "fqdn"
20
+
21
+ hostname from("hostname -s")
22
+ fqdn from("hostname -f")
@@ -0,0 +1,23 @@
1
+ #
2
+ # Author:: Bryan McLellan (btm@loftninjas.org)
3
+ # Copyright:: Copyright (c) 2009 Bryan McLellan
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ provides "platform", "platform_version"
20
+
21
+ platform from("uname -s").downcase
22
+ platform_version from("uname -r")
23
+
@@ -0,0 +1,93 @@
1
+ #
2
+ # Author:: Bryan McLellan (btm@loftninjas.org)
3
+ # Copyright:: Copyright (c) 2009 Bryan McLellan
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ provides "virtualization"
20
+
21
+ virtualization Mash.new
22
+
23
+ if from("sysctl -n security.jail.jailed").to_i == 1
24
+ virtualization[:system] = "jail"
25
+ virtualization[:role] = "guest"
26
+ end
27
+
28
+ # detect from modules
29
+ popen4("/sbin/kldstat") do |pid, stdin, stdout, stderr|
30
+ stdin.close
31
+ stdout.each do |line|
32
+ case line
33
+ when /vboxdrv/
34
+ virtualization[:system] = "vbox"
35
+ virtualization[:role] = "host"
36
+ when /vboxguest/
37
+ virtualization[:system] = "vbox"
38
+ virtualization[:role] = "guest"
39
+ end
40
+ end
41
+ end
42
+
43
+
44
+ # XXX doesn't work when jail is there but not running (ezjail-admin stop)
45
+ if from("jls -n \| wc -l").to_i >= 1
46
+ virtualization[:system] = "jail"
47
+ virtualization[:role] = "host"
48
+ end
49
+
50
+ # KVM Host support for FreeBSD is in development
51
+ # http://feanor.sssup.it/~fabio/freebsd/lkvm/
52
+
53
+ # Detect KVM/QEMU from cpu, report as KVM
54
+ # hw.model: QEMU Virtual CPU version 0.9.1
55
+ if from("sysctl -n hw.model") =~ /QEMU Virtual CPU/
56
+ virtualization[:system] = "kvm"
57
+ virtualization[:role] = "guest"
58
+ end
59
+
60
+ # http://www.dmo.ca/blog/detecting-virtualization-on-linux
61
+ if File.exists?("/usr/local/sbin/dmidecode")
62
+ popen4("dmidecode") do |pid, stdin, stdout, stderr|
63
+ stdin.close
64
+ found_virt_manufacturer = nil
65
+ found_virt_product = nil
66
+ stdout.each do |line|
67
+ case line
68
+ when /Manufacturer: Microsoft/
69
+ found_virt_manufacturer = "microsoft"
70
+ when /Product Name: Virtual Machine/
71
+ found_virt_product = "microsoft"
72
+ when /Version: 5.0/
73
+ if found_virt_manufacturer == "microsoft" && found_virt_product == "microsoft"
74
+ virtualization[:system] = "virtualpc"
75
+ virtualization[:role] = "guest"
76
+ end
77
+ when /Version: VS2005R2/
78
+ if found_virt_manufacturer == "microsoft" && found_virt_product == "microsoft"
79
+ virtualization[:system] = "virtualserver"
80
+ virtualization[:role] = "guest"
81
+ end
82
+ when /Manufacturer: VMware/
83
+ found_virt_manufacturer = "vmware"
84
+ when /Product Name: VMware Virtual Platform/
85
+ if found_virt_manufacturer == "vmware"
86
+ virtualization[:system] = "vmware"
87
+ virtualization[:role] = "guest"
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
93
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kurchatov
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7.pre.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vasiliev Dmitry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-06 00:00:00.000000000 Z
11
+ date: 2014-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: beefcake
@@ -166,7 +166,6 @@ files:
166
166
  - lib/kurchatov/plugin/riemann.rb
167
167
  - lib/kurchatov/queue.rb
168
168
  - lib/kurchatov/responders/http.rb
169
- - lib/kurchatov/responders/init.rb
170
169
  - lib/kurchatov/responders/riemann.rb
171
170
  - lib/kurchatov/responders/udp.rb
172
171
  - lib/kurchatov/riemann/client.rb
@@ -176,6 +175,10 @@ files:
176
175
  - lib/ohai/plugins/darwin/cpu.rb
177
176
  - lib/ohai/plugins/darwin/hostname.rb
178
177
  - lib/ohai/plugins/darwin/platform.rb
178
+ - lib/ohai/plugins/freebsd/cpu.rb
179
+ - lib/ohai/plugins/freebsd/hostname.rb
180
+ - lib/ohai/plugins/freebsd/platform.rb
181
+ - lib/ohai/plugins/freebsd/virtualization.rb
179
182
  - lib/ohai/plugins/hostname.rb
180
183
  - lib/ohai/plugins/linux/cpu.rb
181
184
  - lib/ohai/plugins/linux/hostname.rb
@@ -208,9 +211,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
208
211
  version: '0'
209
212
  required_rubygems_version: !ruby/object:Gem::Requirement
210
213
  requirements:
211
- - - '>='
214
+ - - '>'
212
215
  - !ruby/object:Gem::Version
213
- version: '0'
216
+ version: 1.3.1
214
217
  requirements: []
215
218
  rubyforge_project:
216
219
  rubygems_version: 2.0.3
@@ -1,3 +0,0 @@
1
- require 'kurchatov/responders/http'
2
- require 'kurchatov/responders/riemann'
3
- require 'kurchatov/responders/udp'