class Skylight::Core::Normalizers::SQL
Normalizer
for SQL
requests
Constants
- CAT
Public Instance Methods
normalize(trace, name, payload)
click to toggle source
@param trace [Skylight::Messages::Trace::Builder] ignored, only present to match API @param name [String] ignored, only present to match API @param payload [Hash] @option payload [String] [:name] The SQL
operation @option payload [Hash] [:binds] The bound parameters @return [Array]
# File lib/skylight/core/normalizers/sql.rb, line 15 def normalize(trace, name, payload) case payload[:name] when "SCHEMA".freeze, "CACHE".freeze return :skip else name = CAT title = payload[:name] || "SQL".freeze end binds = payload[:binds] if binds && !binds.empty? binds = binds.map { |_col, val| val.inspect } end begin extracted_title, sql = extract_binds(trace.instrumenter, payload, binds) [name, extracted_title || title, sql] rescue => e config.logger.error "Failed to extract binds in SQL; sql=#{payload[:sql].inspect}; exception=#{e.inspect}" [name, title, nil] end end
Private Instance Methods
extract_binds(instrumenter, payload, _precalculated)
click to toggle source
# File lib/skylight/core/normalizers/sql.rb, line 41 def extract_binds(instrumenter, payload, _precalculated) instrumenter.process_sql(payload[:sql]) end