Merge branch 'configurable_graphite_namespace' into development

This commit is contained in:
Scott Schneider 2014-03-11 12:51:32 -07:00
commit b8ca6430ac
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

View file

@ -49,6 +49,26 @@
:redis:
server: 'redis.company.com'
# :graphite:
#
# This section contains the connection information required to store
# historical data in an external Graphite database.
#
# Available configuration parameters:
#
# - server
# The FQDN hostname of the Graphite server.
# (optional)
#
# - prefix
# The prefix to use while storing Graphite data.
# (optional; default: 'vmpooler')
# Example:
:graphite:
server: 'graphite.company.com'
# :config:
#
# This section contains global configuration information.
@ -63,10 +83,6 @@
# The path to vmpooler's log file.
# (optional; default: '/var/log/vmpooler.log')
#
# - graphite
# The FQDN hostname of the Graphite server.
# (optional)
#
# - task_limit
# The number of concurrent VMware vSphere tasks to perform.
# (optional; default: '10')
@ -84,7 +100,6 @@
:config:
site_name: 'vmpooler'
logfile: '/var/log/vmpooler.log'
graphite: 'graphite.company.com'
task_limit: 10
vm_checktime: 15
vm_lifetime: 12