mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 10:08:40 -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_file = File.expand_path('vmpooler.yaml')
|
||||||
$config = YAML.load_file(config_file)
|
$config = YAML.load_file(config_file)
|
||||||
|
|
||||||
pools = $config[:pools]
|
|
||||||
redis = $config[:redis]
|
|
||||||
|
|
||||||
# Set some defaults
|
# Set some defaults
|
||||||
$config[:redis] ||= Hash.new
|
$config[:redis] ||= Hash.new
|
||||||
$config[:redis]['server'] ||= 'localhost'
|
$config[:redis]['server'] ||= 'localhost'
|
||||||
|
|
||||||
|
if ($config[:graphite]['server'])
|
||||||
|
$config[:graphite]['prefix'] ||= 'vmpooler'
|
||||||
|
end
|
||||||
|
|
||||||
# Connect to Redis
|
# Connect to Redis
|
||||||
$redis = Redis.new(:host => $config[:redis]['server'])
|
$redis = Redis.new(:host => $config[:redis]['server'])
|
||||||
end
|
end
|
||||||
|
|
@ -62,11 +63,13 @@ module Vmpooler
|
||||||
end
|
end
|
||||||
|
|
||||||
if ( params[:history] )
|
if ( params[:history] )
|
||||||
if ( $config[:config]['graphite'] )
|
if ( $config[:graphite]['server'] )
|
||||||
history ||= Hash.new
|
history ||= Hash.new
|
||||||
|
|
||||||
begin
|
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 = JSON.parse( buffer )
|
||||||
|
|
||||||
history.each do |pool|
|
history.each do |pool|
|
||||||
|
|
@ -117,9 +120,11 @@ module Vmpooler
|
||||||
end
|
end
|
||||||
|
|
||||||
if ( params[:history] )
|
if ( params[:history] )
|
||||||
if ( $config[:config]['graphite'] )
|
if ( $config[:graphite]['server'] )
|
||||||
begin
|
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|
|
JSON.parse( buffer ).each do |pool|
|
||||||
if pool['target'] =~ /.*\.(.*)$/
|
if pool['target'] =~ /.*\.(.*)$/
|
||||||
pool['name'] = $1
|
pool['name'] = $1
|
||||||
|
|
|
||||||
|
|
@ -6,16 +6,6 @@ module Vmpooler
|
||||||
$config = YAML.load_file(config_file)
|
$config = YAML.load_file(config_file)
|
||||||
|
|
||||||
$pools = $config[:pools]
|
$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
|
# Set some defaults
|
||||||
$config[:config]['task_limit'] ||= 10
|
$config[:config]['task_limit'] ||= 10
|
||||||
|
|
@ -24,6 +14,15 @@ module Vmpooler
|
||||||
$config[:redis] ||= Hash.new
|
$config[:redis] ||= Hash.new
|
||||||
$config[:redis]['server'] ||= 'localhost'
|
$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
|
# Connect to Redis
|
||||||
$redis = Redis.new(:host => $config[:redis]['server'])
|
$redis = Redis.new(:host => $config[:redis]['server'])
|
||||||
|
|
||||||
|
|
@ -232,7 +231,7 @@ module Vmpooler
|
||||||
$redis.decr('vmpooler__tasks__clone')
|
$redis.decr('vmpooler__tasks__clone')
|
||||||
|
|
||||||
begin
|
begin
|
||||||
$graphite.log("vmpooler.clone.#{vm['template']}", finish) if defined? $graphite
|
$graphite.log($config[:graphite]['prefix']+".clone.#{vm['template']}", finish) if defined? $graphite
|
||||||
rescue
|
rescue
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
@ -265,7 +264,7 @@ module Vmpooler
|
||||||
|
|
||||||
$logger.log('s', "[-] [#{pool}] '#{vm}' destroyed in #{finish} seconds")
|
$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
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
@ -393,8 +392,8 @@ module Vmpooler
|
||||||
|
|
||||||
begin
|
begin
|
||||||
if (defined? $graphite)
|
if (defined? $graphite)
|
||||||
$graphite.log('vmpooler.ready.'+pool['name'], $redis.scard('vmpooler__ready__'+pool['name']))
|
$graphite.log($config[:graphite]['prefix']+'.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']+'.running.'+pool['name'], $redis.scard('vmpooler__running__'+pool['name']))
|
||||||
end
|
end
|
||||||
rescue
|
rescue
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,26 @@
|
||||||
:redis:
|
:redis:
|
||||||
server: 'redis.company.com'
|
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:
|
# :config:
|
||||||
#
|
#
|
||||||
# This section contains global configuration information.
|
# This section contains global configuration information.
|
||||||
|
|
@ -63,10 +83,6 @@
|
||||||
# The path to vmpooler's log file.
|
# The path to vmpooler's log file.
|
||||||
# (optional; default: '/var/log/vmpooler.log')
|
# (optional; default: '/var/log/vmpooler.log')
|
||||||
#
|
#
|
||||||
# - graphite
|
|
||||||
# The FQDN hostname of the Graphite server.
|
|
||||||
# (optional)
|
|
||||||
#
|
|
||||||
# - task_limit
|
# - task_limit
|
||||||
# The number of concurrent VMware vSphere tasks to perform.
|
# The number of concurrent VMware vSphere tasks to perform.
|
||||||
# (optional; default: '10')
|
# (optional; default: '10')
|
||||||
|
|
@ -84,7 +100,6 @@
|
||||||
:config:
|
:config:
|
||||||
site_name: 'vmpooler'
|
site_name: 'vmpooler'
|
||||||
logfile: '/var/log/vmpooler.log'
|
logfile: '/var/log/vmpooler.log'
|
||||||
graphite: 'graphite.company.com'
|
|
||||||
task_limit: 10
|
task_limit: 10
|
||||||
vm_checktime: 15
|
vm_checktime: 15
|
||||||
vm_lifetime: 12
|
vm_lifetime: 12
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue