Allow a configurable Graphite namespace (prefix)

This commit is contained in:
Scott Schneider 2014-03-06 10:53:27 -08:00
parent 401f8f8ffd
commit 3af680f860
3 changed files with 45 additions and 26 deletions

View file

@ -5,13 +5,14 @@ module Vmpooler
config_file = File.expand_path('vmpooler.yaml')
$config = YAML.load_file(config_file)
pools = $config[:pools]
redis = $config[:redis]
# Set some defaults
$config[:redis] ||= Hash.new
$config[:redis]['server'] ||= 'localhost'
if ($config[:graphite]['server'])
$config[:graphite]['prefix'] ||= 'vmpooler'
end
# Connect to Redis
$redis = Redis.new(:host => $config[:redis]['server'])
end
@ -62,11 +63,13 @@ module Vmpooler
end
if ( params[:history] )
if ( $config[:config]['graphite'] )
if ( $config[:graphite]['server'] )
history ||= Hash.new
begin
buffer = open( 'http://'+$config[:config]['graphite']+'/render?target=vmpooler.ready.*&from=-1hour&format=json' ).read
buffer = open(
'http://'+$config[:graphite]['server']+'/render?target='+$config[:graphite]['prefix']+'.ready.*&from=-1hour&format=json'
).read
history = JSON.parse( buffer )
history.each do |pool|
@ -117,9 +120,11 @@ module Vmpooler
end
if ( params[:history] )
if ( $config[:config]['graphite'] )
if ( $config[:graphite]['server'] )
begin
buffer = open( 'http://'+$config[:config]['graphite']+'/render?target=vmpooler.running.*&from=-1hour&format=json' ).read
buffer = open(
'http://'+$config[:graphite]['server']+'/render?target='+$config[:graphite]['prefix']+'.running.*&from=-1hour&format=json'
).read
JSON.parse( buffer ).each do |pool|
if pool['target'] =~ /.*\.(.*)$/
pool['name'] = $1

View file

@ -6,16 +6,6 @@ module Vmpooler
$config = YAML.load_file(config_file)
$pools = $config[:pools]
vsphere = $config[:vsphere]
redis = $config[:redis]
# Load logger library
$logger = Vmpooler::Logger.new $config[:config]['logfile']
# Load Graphite helper library (if configured)
if (defined? $config[:config]['graphite'])
$graphite = Vmpooler::Graphite.new $config[:config]['graphite']
end
# Set some defaults
$config[:config]['task_limit'] ||= 10
@ -24,6 +14,15 @@ module Vmpooler
$config[:redis] ||= Hash.new
$config[:redis]['server'] ||= 'localhost'
# Load logger library
$logger = Vmpooler::Logger.new $config[:config]['logfile']
# Load Graphite helper library (if configured)
if (defined? $config[:graphite]['server'])
$config[:graphite]['prefix'] ||= 'vmpooler'
$graphite = Vmpooler::Graphite.new $config[:graphite]['server']
end
# Connect to Redis
$redis = Redis.new(:host => $config[:redis]['server'])
@ -232,7 +231,7 @@ module Vmpooler
$redis.decr('vmpooler__tasks__clone')
begin
$graphite.log("vmpooler.clone.#{vm['template']}", finish) if defined? $graphite
$graphite.log($config[:graphite]['prefix']+".clone.#{vm['template']}", finish) if defined? $graphite
rescue
end
}
@ -265,7 +264,7 @@ module Vmpooler
$logger.log('s', "[-] [#{pool}] '#{vm}' destroyed in #{finish} seconds")
$graphite.log("vmpooler.destroy.#{pool}", finish) if defined? $graphite
$graphite.log($config[:graphite]['prefix']+".destroy.#{pool}", finish) if defined? $graphite
end
}
end
@ -393,8 +392,8 @@ module Vmpooler
begin
if (defined? $graphite)
$graphite.log('vmpooler.ready.'+pool['name'], $redis.scard('vmpooler__ready__'+pool['name']))
$graphite.log('vmpooler.running.'+pool['name'], $redis.scard('vmpooler__running__'+pool['name']))
$graphite.log($config[:graphite]['prefix']+'.ready.'+pool['name'], $redis.scard('vmpooler__ready__'+pool['name']))
$graphite.log($config[:graphite]['prefix']+'.running.'+pool['name'], $redis.scard('vmpooler__running__'+pool['name']))
end
rescue
end