Module: Txnap

Defined in:
lib/txnap.rb,
lib/txnap/trace.rb,
lib/txnap/errors.rb,
lib/txnap/report.rb,
lib/txnap/railtie.rb,
lib/txnap/version.rb,
lib/txnap/notifier.rb,
lib/txnap/registry.rb,
lib/txnap/call_site.rb,
lib/txnap/formatter.rb,
lib/txnap/configuration.rb,
lib/txnap/execution_state.rb,
lib/txnap/lock_heuristics.rb,
lib/txnap/sql_event_classifier.rb,
lib/txnap/subscribers/sql_subscriber.rb,
lib/txnap/subscribers/transaction_subscriber.rb

Defined Under Namespace

Modules: CallSite, ExecutionState, LockHeuristics, SqlEventClassifier, Subscribers Classes: Configuration, ConfigurationError, Error, EventMetadata, Formatter, Gap, IdleGapDetected, LockCandidate, Notifier, Railtie, Registry, Report, Trace

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.configurationObject



31
32
33
# File 'lib/txnap.rb', line 31

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



26
27
28
29
# File 'lib/txnap.rb', line 26

def configure
  yield(configuration)
  configuration.validate!
end

.install!Object



39
40
41
42
43
44
45
# File 'lib/txnap.rb', line 39

def install!
  return false if @installed

  Subscribers::SqlSubscriber.install
  Subscribers::TransactionSubscriber.install
  @installed = true
end

.loggerObject



51
52
53
# File 'lib/txnap.rb', line 51

def logger
  configuration.logger || rails_logger || default_logger
end

.notify(report) ⇒ Object



61
62
63
# File 'lib/txnap.rb', line 61

def notify(report)
  Notifier.new(configuration: configuration, logger: logger).call(report)
end

.registryObject



35
36
37
# File 'lib/txnap.rb', line 35

def registry
  @registry ||= Registry.new { |message| warn(message) }
end

.reset!Object



65
66
67
68
# File 'lib/txnap.rb', line 65

def reset!
  @configuration = Configuration.new
  registry.reset!
end

.suppress(&block) ⇒ Object



47
48
49
# File 'lib/txnap.rb', line 47

def suppress(&block)
  ExecutionState.suppress(&block)
end

.warn(message) ⇒ Object



55
56
57
58
59
# File 'lib/txnap.rb', line 55

def warn(message)
  logger.warn("[txnap] #{message}")
rescue
  nil
end