20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/ddtrace/contrib/rails/active_record.rb', line 20
def self.sql(_name, start, finish, _id, payload)
tracer = ::Rails.configuration.datadog_trace.fetch(:tracer)
database_service = ::Rails.configuration.datadog_trace.fetch(:default_database_service)
adapter_name = ::ActiveRecord::Base.connection_config[:adapter]
adapter_name = Datadog::Contrib::Rails::Utils.normalize_vendor(adapter_name)
span_type = Datadog::Ext::SQL::TYPE
span = tracer.trace(
"#{adapter_name}.query",
resource: payload.fetch(:sql),
service: database_service,
span_type: span_type
)
span.span_type = Datadog::Ext::SQL::TYPE
span.set_tag('rails.db.vendor', adapter_name)
span.start_time = start
span.finish_at(finish)
rescue StandardError => e
Datadog::Tracer.log.error(e.message)
end
|