module BaselineRedRpm::Instruments::Sequel
Public Instance Methods
parse_opts(sql, opts)
click to toggle source
# File lib/baseline_red_rpm/instruments/sequel.rb, line 11 def parse_opts(sql, opts) if ::Sequel::VERSION < '3.41.0' && !(self.class.to_s =~ /Dataset$/) db_opts = @opts elsif @pool db_opts = @pool.db.opts else db_opts = @db.opts end if ::Sequel::VERSION > '4.36.0' && !sql.is_a?(String) # In 4.37.0, sql was converted to a prepared statement object sql = sql.prepared_sql unless sql.is_a?(Symbol) end { "db.type" => opts[:type], "db.statement" => sanitize_sql(sql), "db.instance" => db_opts[:database], "db.user" => db_opts[:user], "db.vendor" => db_opts[:adapter], "peer.address" => db_opts[:host], "peer.port" => db_opts[:port] } end
sanitize_sql(sql)
click to toggle source
# File lib/baseline_red_rpm/instruments/sequel.rb, line 6 def sanitize_sql(sql) regexp = Regexp.new('(\'[\s\S][^\']*\'|\d*\.\d+|\d+|NULL)', Regexp::IGNORECASE) sql.to_s.gsub(regexp, '?') end