Class: ActiveMonitoring::SqlTracker

Inherits:
Object
  • Object
show all
Defined in:
lib/active_monitoring/sql_tracker.rb

Constant Summary collapse

TRACKED_SQL_COMMANDS =
%w(SELECT INSERT UPDATE DELETE).freeze
UNTRACKED_NAMES =
%w(SCHEMA).freeze
UNTRACKED_TABLES =
%w(
  SCHEMA_MIGRATIONS
  SQLITE_MASTER
  ACTIVE_MONITORING_METRICS
  SQLITE_TEMP_MASTER
  SQLITE_VERSION
  AR_INTERNAL_METADATA
).freeze

Instance Method Summary collapse

Constructor Details

#initialize(query:, name:) ⇒ SqlTracker

Returns a new instance of SqlTracker.



14
15
16
17
# File 'lib/active_monitoring/sql_tracker.rb', line 14

def initialize(query:, name:)
  @query = query.to_s.upcase
  @name = name.to_s.upcase
end

Instance Method Details

#track?Boolean

Returns:

  • (Boolean)


19
20
21
22
23
# File 'lib/active_monitoring/sql_tracker.rb', line 19

def track?
  query.start_with?(*TRACKED_SQL_COMMANDS) &&
    !name.start_with?(*UNTRACKED_NAMES) &&
    !untracked_tables?
end