Module: PoolLint
- Defined in:
- lib/poollint.rb,
lib/poollint/hooks.rb,
lib/poollint/errors.rb,
lib/poollint/report.rb,
lib/poollint/railtie.rb,
lib/poollint/version.rb,
lib/poollint/notifier.rb,
lib/poollint/inspectors.rb,
lib/poollint/sql_watcher.rb,
lib/poollint/configuration.rb,
lib/poollint/suspicion_log.rb,
lib/poollint/execution_state.rb,
lib/poollint/hooks/lifecycle.rb,
lib/poollint/allowed_settings.rb,
lib/poollint/connection_state.rb,
lib/poollint/inspectors/mysql.rb,
lib/poollint/inspection_runner.rb,
lib/poollint/hooks/checkin_hook.rb,
lib/poollint/hooks/checkout_hook.rb,
lib/poollint/inspectors/postgresql.rb,
lib/poollint/kannuki_lock_resolver.rb,
lib/poollint/inspectors/postgresql_capture.rb
Defined Under Namespace
Modules: ExecutionState, Hooks, Inspectors, KannukiLockResolver
Classes: AdvisoryLock, AllowedSettings, Configuration, ConnectionState, Error, InspectionRunner, InspectionTimeout, LeakedSessionState, Notifier, Railtie, Report, SettingChange, SqlWatcher, Suspicion, SuspicionLog, UserLevelLock
Constant Summary
collapse
- LeakDetected =
LeakedSessionState
- VERSION =
"0.1.0"
- DEFAULT_PG_SETTINGS =
%w[
role
session_authorization
search_path
statement_timeout
lock_timeout
idle_in_transaction_session_timeout
default_transaction_read_only
].freeze
- DEFAULT_MYSQL_SETTINGS =
%w[
sql_mode
time_zone
transaction_isolation
transaction_read_only
lock_wait_timeout
max_execution_time
].freeze
Class Method Summary
collapse
Class Method Details
.configuration ⇒ Object
26
27
28
|
# File 'lib/poollint.rb', line 26
def configuration
@configuration ||= Configuration.new
end
|
30
31
32
33
|
# File 'lib/poollint.rb', line 30
def configure
yield configuration
configuration.validate!
end
|
.connection_state(connection) ⇒ Object
35
36
37
38
39
40
|
# File 'lib/poollint.rb', line 35
def connection_state(connection)
ConnectionState.fetch(
connection,
suspicion_limit: configuration.suspicion_limit
)
end
|
.install! ⇒ Object
42
43
44
45
46
47
48
|
# File 'lib/poollint.rb', line 42
def install!
require "active_record"
SqlWatcher.install!
Hooks.install!
warn_about_checkin_in_production
end
|
.log_warning(message) ⇒ Object
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/poollint.rb', line 50
def log_warning(message)
logger = configuration.logger
logger ||= ActiveRecord::Base.logger if defined?(ActiveRecord::Base)
formatted = "[PoolLint] #{message}"
return warn_with_logger(logger, formatted) if logger
Kernel.warn(formatted)
rescue StandardError
nil
end
|
.reset_configuration!(environment: nil) ⇒ Object
61
62
63
|
# File 'lib/poollint.rb', line 61
def reset_configuration!(environment: nil)
@configuration = Configuration.new(environment: environment)
end
|