class Labkit::Tracing::Rails::ActiveRecord::SqlInstrumenter

For more information on the payloads: guides.rubyonrails.org/active_support_instrumentation.html

Constants

DEFAULT_OPERATION_NAME
OPERATION_NAME_PREFIX

Public Instance Methods

span_name(payload) click to toggle source
# File lib/labkit/tracing/rails/active_record/sql_instrumenter.rb, line 12
def span_name(payload)
  OPERATION_NAME_PREFIX + (payload[:name].presence || DEFAULT_OPERATION_NAME)
end
tags(payload) click to toggle source
# File lib/labkit/tracing/rails/active_record/sql_instrumenter.rb, line 16
def tags(payload)
  if Labkit::Tracing.sampled? && payload[:sql]
    sql = Labkit::Logging::Sanitizer.sanitize_sql(payload[:sql])
    fingerprint = Labkit::Logging::Sanitizer.sql_fingerprint(sql)
  end

  {
    "component" => COMPONENT_TAG,
    "span.kind" => "client",
    "db.type" => "sql",
    "db.connection_id" => payload[:connection_id],
    "db.cached" => payload[:cached] || false,
    "db.statement" => sql,
    "db.statement_fingerprint" => fingerprint,
  }
end