Class: PgLocksMonitor::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/pg_locks_monitor/configuration.rb

Constant Summary collapse

DEFAULT =
{
  locks_limit: 5,
  monitor_locks: true,
  monitor_blocking: true,
  locks_min_duration_ms: 200,
  blocking_min_duration_ms: 100,
  notify_logs: true,
  notify_slack: false,
  slack_webhook_url: nil,
  slack_channel: nil,
  notifier_class: PgLocksMonitor::DefaultNotifier,
  locks_filter_proc: ->(lock) { true },
  blocking_filter_proc: ->(lock) { true },
}
DEFAULT_CONFIG_FILE =
"# Configuration for pg-locks-monitor\n\nPgLocksMonitor.configure do |config|\n  config.locks_limit = \#{DEFAULT[:locks_limit]}\n\n  config.monitor_locks = \#{DEFAULT[:monitor_locks]}\n  config.monitor_blocking = \#{DEFAULT[:monitor_blocking]}\n\n  config.locks_min_duration_ms = \#{DEFAULT[:locks_min_duration_ms]}\n  config.blocking_min_duration_ms = \#{DEFAULT[:blocking_min_duration_ms]}\n\n  config.notify_logs = \#{DEFAULT[:notify_logs]}\n\n  config.notify_slack = \#{DEFAULT[:notify_slack]}\n  config.slack_webhook_url = \"\#{DEFAULT[:slack_webhook_url]}\"\n  config.slack_channel = \"\#{DEFAULT[:slack_channel]}\"\n\n  config.notifier_class = \#{DEFAULT[:notifier_class]}\n\n  config.locks_filter_proc = ->(lock) { true }\n  config.blocking_filter_proc = ->(lock) { true }\nend\n"

Instance Method Summary collapse

Constructor Details

#initialize(attrs) ⇒ Configuration

Returns a new instance of Configuration.



22
23
24
25
26
27
# File 'lib/pg_locks_monitor/configuration.rb', line 22

def initialize(attrs)
  DEFAULT.keys.each do |key|
    value = attrs.fetch(key) { DEFAULT.fetch(key) }
    public_send("#{key}=", value)
  end
end