diff --git a/lib/graphite.rb b/lib/graphite.rb new file mode 100755 index 0000000..73f4205 --- /dev/null +++ b/lib/graphite.rb @@ -0,0 +1,17 @@ +require 'rubygems' unless defined?(Gem) +require 'graphite-api' + +class Graphite + def initialize( + s = 'graphite' + ) + @server = s + end + + def log path, value + socket = TCPSocket.new(@server, 2003) + socket.puts "#{path} #{value} #{Time.now.to_i}" + socket.close + end +end + diff --git a/vmware-host-pooler b/vmware-host-pooler index a200810..735bc37 100755 --- a/vmware-host-pooler +++ b/vmware-host-pooler @@ -22,6 +22,12 @@ vsphere = config[:vsphere] $logger = Logger.new config[:config]['logfile'] $vsphere_helper = VsphereHelper.new +# Load Graphite helper library (if configured) +if (defined? config[:config]['graphite']) + require 'lib/graphite' + $graphite = Graphite.new config[:config]['graphite'] +end + # Connect to Redis $redis = Redis.new @@ -118,6 +124,8 @@ def clone_vm template, pool, folder, datastore finish = '%.2f' % (Time.now-start) $logger.log('s', "[+] [#{vm['template']}] '#{vm['hostname']}' cloned from '#{vm['template']}' in #{finish} seconds") + + $graphite.log("vcloud.clone.#{vm['template']}", finish) if defined? $graphite } end