Module: Datadog::Contrib::Sequel::Utils

Defined in:
lib/ddtrace/contrib/sequel/utils.rb

Overview

General purpose functions for Sequel

Class Method Summary collapse

Class Method Details

.adapter_name(database) ⇒ Object

Ruby database connector library

e.g. adapter:mysql2 (database:mysql), adapter:jdbc (database:postgres)



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/ddtrace/contrib/sequel/utils.rb', line 10

def adapter_name(database)
  scheme = database.adapter_scheme.to_s

  if scheme == 'jdbc'.freeze
    # The subtype is more important in this case,
    # otherwise all database adapters will be 'jdbc'.
    database_type(database)
  else
    Datadog::Utils::Database.normalize_vendor(scheme)
  end
end

.database_type(database) ⇒ Object

Database engine

e.g. database:mysql (adapter:mysql2), database:postgres (adapter:jdbc)



25
26
27
# File 'lib/ddtrace/contrib/sequel/utils.rb', line 25

def database_type(database)
  Datadog::Utils::Database.normalize_vendor(database.database_type.to_s)
end

.parse_opts(sql, opts, db_opts) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/ddtrace/contrib/sequel/utils.rb', line 29

def parse_opts(sql, opts, db_opts)
  if ::Sequel::VERSION >= '4.37.0' && !sql.is_a?(String)
    # In 4.37.0, sql was converted to a prepared statement object
    sql = sql.prepared_sql unless sql.is_a?(Symbol)
  end

  {
    name: opts[:type],
    query: sql,
    database: db_opts[:database],
    host: db_opts[:host]
  }
end

.set_analytics_sample_rate(span) ⇒ Object



43
44
45
# File 'lib/ddtrace/contrib/sequel/utils.rb', line 43

def set_analytics_sample_rate(span)
  Contrib::Analytics.set_sample_rate(span, analytics_sample_rate) if analytics_enabled?
end