7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/prom_multi_proc/rails.rb', line 7
def self.init(**options)
program_name = File.basename($PROGRAM_NAME)
app_name = ::Rails.application.class.name.underscore.split("/").first
defaults = {
prefix: "#{app_name}_",
socket: ENV.fetch("PROM_MULTI_PROC_SOCKET", ::Rails.root.join("tmp/sockets/metrics.sock").to_s),
metrics: ENV.fetch("PROM_MULTI_PROC_DEFINITION_FILE", ::Rails.root.join("config/metrics.json").to_s),
batch_size: default_batch_size(program_name),
batch_timeout: 3,
validate: ::Rails.env.development? || ::Rails.env.test?,
logger: ::Rails.logger || ::Logger.new(STDOUT)
}
config = defaults.merge(options)
config[:logger].info("Setting up prom_multi_proc for #{app_name}-#{program_name}, batch_size: #{config[:batch_size]}, batch_timeout: #{config[:batch_timeout]}, validate: #{config[:validate]}")
Base.new(**config)
end
|