class CanvasStatsd::SqlTracker
Attributes
blocked_names[R]
cache_counts[R]
read_counts[R]
write_counts[R]
Public Class Methods
new(opts=nil)
click to toggle source
# File lib/canvas_statsd/sql_tracker.rb, line 6 def initialize(opts=nil) opts ||= {} @blocked_names = opts.fetch(:blocked_names, []) @read_counts = opts.fetch(:read_counter, CanvasStatsd::Counter.new('sql.read')) @write_counts = opts.fetch(:write_counter, CanvasStatsd::Counter.new('sql.write')) @cache_counts = opts.fetch(:cache_counter, CanvasStatsd::Counter.new('sql.cache')) end
Public Instance Methods
finalize_counts(cookies)
click to toggle source
# File lib/canvas_statsd/sql_tracker.rb, line 30 def finalize_counts(cookies) [ read_counts.finalize_count(cookies[0]), write_counts.finalize_count(cookies[1]), cache_counts.finalize_count(cookies[2]) ] end
start()
click to toggle source
# File lib/canvas_statsd/sql_tracker.rb, line 14 def start [read_counts, write_counts, cache_counts].map(&:start) end
track(name, sql)
click to toggle source
# File lib/canvas_statsd/sql_tracker.rb, line 18 def track name, sql return unless sql && accepted_name?(name) if name.match(/CACHE/) cache_counts.track name elsif truncate(sql).match(/SELECT/) || name.match(/LOAD/) read_counts.track(sql) else write_counts.track(sql) end end
Private Instance Methods
accepted_name?(name)
click to toggle source
# File lib/canvas_statsd/sql_tracker.rb, line 40 def accepted_name?(name) !!(name && !blocked_names.include?(name)) end
truncate(sql, length=15)
click to toggle source
# File lib/canvas_statsd/sql_tracker.rb, line 44 def truncate(sql, length=15) sql ||= '' sql.strip[0..length] end