Send metrics to graphite (if configured)

This commit is contained in:
Scott Schneider 2013-11-12 15:03:34 -08:00
parent 57975a489f
commit 77fe40b59b
2 changed files with 25 additions and 0 deletions

17
lib/graphite.rb Executable file
View file

@ -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

View file

@ -22,6 +22,12 @@ vsphere = config[:vsphere]
$logger = Logger.new config[:config]['logfile'] $logger = Logger.new config[:config]['logfile']
$vsphere_helper = VsphereHelper.new $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 # Connect to Redis
$redis = Redis.new $redis = Redis.new
@ -118,6 +124,8 @@ def clone_vm template, pool, folder, datastore
finish = '%.2f' % (Time.now-start) finish = '%.2f' % (Time.now-start)
$logger.log('s', "[+] [#{vm['template']}] '#{vm['hostname']}' cloned from '#{vm['template']}' in #{finish} seconds") $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 end