module Datadog::Contrib::Sequel::Dataset::InstanceMethods

Instance methods for instrumenting Sequel::Dataset

Public Instance Methods

datadog_pin() click to toggle source
# File lib/ddtrace/contrib/sequel/dataset.rb, line 35
def datadog_pin
  Datadog::Pin.get_from(db)
end
execute(sql, options = ::Sequel::OPTS, &block) click to toggle source
Calls superclass method
# File lib/ddtrace/contrib/sequel/dataset.rb, line 19
def execute(sql, options = ::Sequel::OPTS, &block)
  trace_execute(proc { super(sql, options, &block) }, sql, options, &block)
end
execute_ddl(sql, options = ::Sequel::OPTS, &block) click to toggle source
Calls superclass method
# File lib/ddtrace/contrib/sequel/dataset.rb, line 23
def execute_ddl(sql, options = ::Sequel::OPTS, &block)
  trace_execute(proc { super(sql, options, &block) }, sql, options, &block)
end
execute_dui(sql, options = ::Sequel::OPTS, &block) click to toggle source
Calls superclass method
# File lib/ddtrace/contrib/sequel/dataset.rb, line 27
def execute_dui(sql, options = ::Sequel::OPTS, &block)
  trace_execute(proc { super(sql, options, &block) }, sql, options, &block)
end
execute_insert(sql, options = ::Sequel::OPTS, &block) click to toggle source
Calls superclass method
# File lib/ddtrace/contrib/sequel/dataset.rb, line 31
def execute_insert(sql, options = ::Sequel::OPTS, &block)
  trace_execute(proc { super(sql, options, &block) }, sql, options, &block)
end

Private Instance Methods

adapter_name() click to toggle source
# File lib/ddtrace/contrib/sequel/dataset.rb, line 57
def adapter_name
  Utils.adapter_name(db)
end
trace_execute(super_method, sql, options, &block) click to toggle source
# File lib/ddtrace/contrib/sequel/dataset.rb, line 41
def trace_execute(super_method, sql, options, &block)
  opts = Utils.parse_opts(sql, options, db.opts, self)
  response = nil

  datadog_pin.tracer.trace(Ext::SPAN_QUERY) do |span|
    span.service = datadog_pin.service
    span.resource = opts[:query]
    span.span_type = Datadog::Ext::SQL::TYPE
    Utils.set_common_tags(span)
    span.set_tag(Ext::TAG_DB_VENDOR, adapter_name)
    span.set_tag(Ext::TAG_PREPARED_NAME, opts[:prepared_name]) if opts[:prepared_name]
    response = super_method.call(sql, options, &block)
  end
  response
end