mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 10:08:40 -05:00
(POOLER-160) Revise some smelly logger code
Need the logger code in promstats.rb so move logger initialisation to the top of the vmpooler script, remove the class method from vmpooler.rb and make appropriate downstream changes to metrics and pooler manger handling. This also means we can start decent logging in the API if we wish do. Fixed up to rebase on top of Matts POOLER-158 changes
This commit is contained in:
parent
bbd76bde4c
commit
5c38ba240a
6 changed files with 17 additions and 26 deletions
|
|
@ -11,7 +11,8 @@ redis_connection_pool_size = config[:redis]['connection_pool_size']
|
|||
redis_connection_pool_timeout = config[:redis]['connection_pool_timeout']
|
||||
logger_file = config[:config]['logfile']
|
||||
|
||||
metrics = Vmpooler::Metrics.init(config)
|
||||
logger = Vmpooler::Logger.new logger_file
|
||||
metrics = Vmpooler::Metrics.init(logger, config)
|
||||
|
||||
torun_threads = []
|
||||
if ARGV.count == 0
|
||||
|
|
@ -41,7 +42,7 @@ if torun.include? 'manager'
|
|||
manager = Thread.new do
|
||||
Vmpooler::PoolManager.new(
|
||||
config,
|
||||
Vmpooler.new_logger(logger_file),
|
||||
logger,
|
||||
Vmpooler.redis_connection_pool(redis_host, redis_port, redis_password, redis_connection_pool_size, redis_connection_pool_timeout, metrics),
|
||||
metrics
|
||||
).execute!
|
||||
|
|
|
|||
|
|
@ -106,12 +106,6 @@ module Vmpooler
|
|||
parsed_config[:graphite]['prefix'] = ENV['GRAPHITE_PREFIX'] if ENV['GRAPHITE_PREFIX']
|
||||
parsed_config[:graphite]['port'] = string_to_int(ENV['GRAPHITE_PORT']) if ENV['GRAPHITE_PORT']
|
||||
|
||||
if parsed_config.key? :prometheus
|
||||
# parsed_config[:prometheus]['endpoint'] = ENV['PROMETHEUS_ENDPOINT'] if ENV['PROMETHEUS_ENDPOINT']
|
||||
# parsed_config[:prometheus]['prefix'] = ENV['PROMETHEUS_PREFIX'] if ENV['PROMETHEUS_PREFIX']
|
||||
# parsed_config[:prometheus]['metrics_prefix'] = ENV['PROMETHEUS_METRICS_PREFIX'] if ENV['PROMETHEUS_METRICS_PREFIX']
|
||||
end
|
||||
|
||||
parsed_config[:auth] = parsed_config[:auth] || {} if ENV['AUTH_PROVIDER']
|
||||
if parsed_config.key? :auth
|
||||
parsed_config[:auth]['provider'] = ENV['AUTH_PROVIDER'] if ENV['AUTH_PROVIDER']
|
||||
|
|
@ -189,10 +183,6 @@ module Vmpooler
|
|||
Redis.new(host: host, port: port, password: password)
|
||||
end
|
||||
|
||||
def self.new_logger(logfile)
|
||||
Vmpooler::Logger.new logfile
|
||||
end
|
||||
|
||||
def self.pools(conf)
|
||||
conf[:pools]
|
||||
end
|
||||
|
|
|
|||
|
|
@ -3,13 +3,13 @@
|
|||
module Vmpooler
|
||||
class Metrics
|
||||
# static class instantiate appropriate metrics object.
|
||||
def self.init(params)
|
||||
def self.init(logger, params)
|
||||
if params[:statsd]
|
||||
metrics = Vmpooler::Statsd.new(params[:statsd])
|
||||
metrics = Vmpooler::Statsd.new(logger, params[:statsd])
|
||||
elsif params[:graphite]
|
||||
metrics = Vmpooler::Graphite.new(params[:graphite])
|
||||
metrics = Vmpooler::Graphite.new(logger, params[:graphite])
|
||||
elsif params[:prometheus]
|
||||
metrics = Vmpooler::Promstats.new(params[:prometheus])
|
||||
metrics = Vmpooler::Promstats.new(logger, params[:prometheus])
|
||||
else
|
||||
metrics = Vmpooler::DummyStatsd.new
|
||||
end
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ module Vmpooler
|
|||
class Graphite < Metrics
|
||||
attr_reader :server, :port, :prefix
|
||||
|
||||
def initialize(params = {})
|
||||
def initialize(logger, params = {})
|
||||
raise ArgumentError, "Graphite server is required. Config: #{params.inspect}" if params['server'].nil? || params['server'].empty?
|
||||
|
||||
@server = params['server']
|
||||
@port = params['port'] || 2003
|
||||
@prefix = params['prefix'] || 'vmpooler'
|
||||
@logger = logger
|
||||
end
|
||||
|
||||
def increment(label)
|
||||
|
|
@ -38,7 +39,7 @@ module Vmpooler
|
|||
rescue Errno::EADDRNOTAVAIL => e
|
||||
warn "Could not assign address to graphite server #{server}: #{e}"
|
||||
rescue StandardError => e
|
||||
warn "Failure logging #{path} to graphite server [#{server}:#{port}]: #{e}"
|
||||
@logger.log('s', "[!] Failure logging #{path} to graphite server [#{server}:#{port}]: #{e}")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -20,13 +20,11 @@ module Vmpooler
|
|||
|
||||
@p_metrics = {}
|
||||
|
||||
def initialize(params = {})
|
||||
def initialize(logger, params = {})
|
||||
@prefix = params['prefix'] || 'vmpooler'
|
||||
@metrics_prefix = params['metrics_prefix'] || 'vmpooler'
|
||||
@endpoint = params['endpoint'] || '/prometheus'
|
||||
|
||||
# Hmm - think this is breaking the logger .....
|
||||
@logger = params.delete('logger') || Logger.new(STDOUT)
|
||||
@logger = logger
|
||||
|
||||
# Setup up prometheus registry and data structures
|
||||
@prometheus = Prometheus::Client.registry
|
||||
|
|
|
|||
|
|
@ -7,31 +7,32 @@ module Vmpooler
|
|||
class Statsd < Metrics
|
||||
attr_reader :server, :port, :prefix
|
||||
|
||||
def initialize(params = {})
|
||||
def initialize(logger, params = {})
|
||||
raise ArgumentError, "Statsd server is required. Config: #{params.inspect}" if params['server'].nil? || params['server'].empty?
|
||||
|
||||
host = params['server']
|
||||
@port = params['port'] || 8125
|
||||
@prefix = params['prefix'] || 'vmpooler'
|
||||
@server = ::Statsd.new(host, @port)
|
||||
@logger = logger
|
||||
end
|
||||
|
||||
def increment(label)
|
||||
server.increment(prefix + '.' + label)
|
||||
rescue StandardError => e
|
||||
warn "Failure incrementing #{prefix}.#{label} on statsd server [#{server}:#{port}]: #{e}"
|
||||
@logger.log('s', "[!] Failure incrementing #{prefix}.#{label} on statsd server [#{server}:#{port}]: #{e}")
|
||||
end
|
||||
|
||||
def gauge(label, value)
|
||||
server.gauge(prefix + '.' + label, value)
|
||||
rescue StandardError => e
|
||||
warn "Failure updating gauge #{prefix}.#{label} on statsd server [#{server}:#{port}]: #{e}"
|
||||
@logger.log('s', "[!] Failure updating gauge #{prefix}.#{label} on statsd server [#{server}:#{port}]: #{e}")
|
||||
end
|
||||
|
||||
def timing(label, duration)
|
||||
server.timing(prefix + '.' + label, duration)
|
||||
rescue StandardError => e
|
||||
warn "Failure updating timing #{prefix}.#{label} on statsd server [#{server}:#{port}]: #{e}"
|
||||
@logger.log('s', "[!] Failure updating timing #{prefix}.#{label} on statsd server [#{server}:#{port}]: #{e}")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue