module Bigcommerce::Prometheus::Configuration

General configuration for prometheus integration

Constants

VALID_CONFIG_KEYS

Public Class Methods

extended(base) click to toggle source

Whenever this is extended into a class, setup the defaults

# File lib/bigcommerce/prometheus/configuration.rb, line 65
def self.extended(base)
  if defined?(Rails)
    Bigcommerce::Prometheus::Integrations::Railtie.config.before_initialize { base.reset }
  else
    base.reset
  end
end

Public Instance Methods

configure() { |self| ... } click to toggle source

Yield self for ruby-style initialization

@yields [Bigcommerce::Prometheus::Configuration] @return [Bigcommerce::Prometheus::Configuration]

# File lib/bigcommerce/prometheus/configuration.rb, line 79
def configure
  reset unless @configured
  yield self
  @configured = true
  self
end
options() click to toggle source

Return the current configuration options as a Hash

@return [Hash]

# File lib/bigcommerce/prometheus/configuration.rb, line 91
def options
  opts = {}
  VALID_CONFIG_KEYS.each_key do |k|
    opts.merge!(k => send(k))
  end
  opts
end
process_name() click to toggle source

@return [String]

# File lib/bigcommerce/prometheus/configuration.rb, line 113
def process_name
  @process_name ||= ENV.fetch('PROCESS', 'unknown')
end
reset() click to toggle source

Set the default configuration onto the extended class

# File lib/bigcommerce/prometheus/configuration.rb, line 102
def reset
  VALID_CONFIG_KEYS.each do |k, v|
    send("#{k}=".to_sym, v)
  end
  determine_logger

  self.web_type_collectors = []
end

Private Instance Methods

determine_logger() click to toggle source
# File lib/bigcommerce/prometheus/configuration.rb, line 119
def determine_logger
  if defined?(Rails) && Rails.logger
    self.logger = Rails.logger
  elsif defined?(Application) && Application.respond_to?(:logger)
    self.logger = Application.logger
  else
    require 'logger'
    self.logger = ::Logger.new($stdout)
    logger.level = ::Logger::Severity::INFO
  end
end
environment() click to toggle source

Automatically determine environment

@return [String] The current Ruby environment

# File lib/bigcommerce/prometheus/configuration.rb, line 136
def environment
  if defined?(Rails)
    Rails.env.to_s
  else
    (ENV['RACK_ENV'] || ENV['RAILS_ENV'] || 'development').to_s
  end
end