module Datadog::Contrib::Sequel::Database::InstanceMethods
Instance methods for instrumenting Sequel::Database
Public Instance Methods
datadog_pin()
click to toggle source
# File lib/ddtrace/contrib/sequel/database.rb, line 34 def datadog_pin @pin ||= Datadog::Pin.new( Datadog.configuration[:sequel][:service_name] || adapter_name, app: Ext::APP, app_type: Datadog::Ext::AppTypes::DB, tracer: -> { Datadog.configuration[:sequel][:tracer] } ) end
run(sql, options = ::Sequel::OPTS)
click to toggle source
Calls superclass method
# File lib/ddtrace/contrib/sequel/database.rb, line 18 def run(sql, options = ::Sequel::OPTS) opts = parse_opts(sql, options) 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_analytics_sample_rate(span) span.set_tag(Ext::TAG_DB_VENDOR, adapter_name) response = super(sql, options) end response end
Private Instance Methods
adapter_name()
click to toggle source
# File lib/ddtrace/contrib/sequel/database.rb, line 45 def adapter_name Utils.adapter_name(self) end
parse_opts(sql, opts)
click to toggle source
# File lib/ddtrace/contrib/sequel/database.rb, line 49 def parse_opts(sql, opts) db_opts = if ::Sequel::VERSION < '3.41.0' && self.class.to_s !~ /Dataset$/ @opts elsif instance_variable_defined?(:@pool) && @pool @pool.db.opts end Utils.parse_opts(sql, opts, db_opts) end