mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 01:58:41 -05:00
Allow a configurable Graphite namespace (prefix)
This commit is contained in:
parent
401f8f8ffd
commit
3af680f860
3 changed files with 45 additions and 26 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue