mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 01:58:41 -05:00
(POOLER-160) Revise connection metrics
The redis pooler connection metric used "metric_prefix" which is misleading, so split this into connpool_type and connpool_provider. Also remove some earlier jruby compatibility code to reduce rebase conflicts when this is rebased on top of Matt's changes.
This commit is contained in:
parent
5c38ba240a
commit
72564de4b4
7 changed files with 33 additions and 24 deletions
|
|
@ -169,7 +169,8 @@ module Vmpooler
|
|||
def self.redis_connection_pool(host, port, password, size, timeout, metrics)
|
||||
Vmpooler::PoolManager::GenericConnectionPool.new(
|
||||
metrics: metrics,
|
||||
metric_prefix: 'redis_connection_pool',
|
||||
connpool_type: 'redis_connection_pool',
|
||||
connpool_provider: 'manager',
|
||||
size: size,
|
||||
timeout: timeout
|
||||
) do
|
||||
|
|
|
|||
|
|
@ -11,8 +11,10 @@ module Vmpooler
|
|||
def initialize(options = {}, &block)
|
||||
super(options, &block)
|
||||
@metrics = options[:metrics]
|
||||
@metric_prefix = options[:metric_prefix]
|
||||
@metric_prefix = 'connectionpool' if @metric_prefix.nil? || @metric_prefix == ''
|
||||
@connpool_type = options[:connpool_type]
|
||||
@connpool_type = 'connectionpool' if @connpool_type.nil? || @connpool_type == ''
|
||||
@connpool_provider = options[:connpool_provider]
|
||||
@connpool_provider = 'unknown' if @connpool_provider.nil? || @connpool_provider == ''
|
||||
end
|
||||
|
||||
def with_metrics(options = {})
|
||||
|
|
@ -20,15 +22,15 @@ module Vmpooler
|
|||
start = Time.now
|
||||
conn = checkout(options)
|
||||
timespan_ms = ((Time.now - start) * 1000).to_i
|
||||
@metrics&.gauge(@metric_prefix + '.available', @available.length)
|
||||
@metrics&.timing(@metric_prefix + '.waited', timespan_ms)
|
||||
@metrics&.gauge("connection_available.#{@connpool_type}.#{@connpool_provider}", @available.length)
|
||||
@metrics&.timing("connection_waited.#{@connpool_type}.#{@connpool_provider}", timespan_ms)
|
||||
begin
|
||||
Thread.handle_interrupt(Exception => :immediate) do
|
||||
yield conn
|
||||
end
|
||||
ensure
|
||||
checkin
|
||||
@metrics&.gauge(@metric_prefix + '.available', @available.length)
|
||||
@metrics&.gauge("connection_available.#{@connpool_type}.#{@connpool_provider}", @available.length)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -29,7 +29,8 @@ module Vmpooler
|
|||
logger.log('d', "[#{name}] ConnPool - Creating a connection pool of size #{connpool_size} with timeout #{connpool_timeout}")
|
||||
@connection_pool = Vmpooler::PoolManager::GenericConnectionPool.new(
|
||||
metrics: metrics,
|
||||
metric_prefix: "#{name}_provider_connection_pool",
|
||||
connpool_type: 'provider_connection_pool',
|
||||
connpool_provider: name,
|
||||
size: connpool_size,
|
||||
timeout: connpool_timeout
|
||||
) do
|
||||
|
|
|
|||
|
|
@ -25,7 +25,8 @@ module Vmpooler
|
|||
logger.log('d', "[#{name}] ConnPool - Creating a connection pool of size #{connpool_size} with timeout #{connpool_timeout}")
|
||||
@connection_pool = Vmpooler::PoolManager::GenericConnectionPool.new(
|
||||
metrics: metrics,
|
||||
metric_prefix: "#{name}_provider_connection_pool",
|
||||
connpool_type: 'provider_connection_pool',
|
||||
connpool_provider: name,
|
||||
size: connpool_size,
|
||||
timeout: connpool_timeout
|
||||
) do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue