We managed to make this work by adding the following to puma.rb
on_worker_boot(:connection_pool_timer) do |index, data|
ActiveSupport.on_load(:active_record) do
data[:connection_pool_timer] = Concurrent::TimerTask.new(execution_interval: 2) do
ActiveRecord::Base.connection_handler.all_connection_pools.each do |connection_pool|
tags = { index: index, name: connection_pool.db_config.name }
connection_pool.stat.each do |name, value|
Yabeda.activerecord.send(:"connection_pool_#{name}").set(tags, value)
end
end
end.tap(&:execute)
end
end
on_worker_shutdown(:connection_pool_timer) do |index, data|
data[:connection_pool_timer]&.shutdown
end
But what do you think about supporting this out the box?
We managed to make this work by adding the following to puma.rb
But what do you think about supporting this out the box?