27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/ddtrace/contrib/active_record/events/sql.rb', line 27
def process(span, event, _id, payload)
config = Utils.connection_config(payload[:connection], payload[:connection_id])
settings = Datadog.configuration[:active_record, config]
adapter_name = Datadog::Utils::Database.normalize_vendor(config[:adapter])
service_name = if settings.service_name != Datadog::Utils::Database::VENDOR_DEFAULT
settings.service_name
else
adapter_name
end
span.name = "#{adapter_name}.query"
span.service = service_name
span.resource = payload.fetch(:sql)
span.span_type = Datadog::Ext::SQL::TYPE
if Contrib::Analytics.enabled?(configuration[:analytics_enabled])
Contrib::Analytics.set_sample_rate(span, configuration[:analytics_sample_rate])
end
cached = payload[:cached] || (payload[:name] == PAYLOAD_CACHE)
span.set_tag(Ext::TAG_DB_VENDOR, adapter_name)
span.set_tag(Ext::TAG_DB_NAME, config[:database])
span.set_tag(Ext::TAG_DB_CACHED, cached) if cached
span.set_tag(Datadog::Ext::NET::TARGET_HOST, config[:host]) if config[:host]
span.set_tag(Datadog::Ext::NET::TARGET_PORT, config[:port]) if config[:port]
rescue StandardError => e
Datadog::Tracer.log.debug(e.message)
end
|