module Datadog::Contrib::Sequel::Utils

General purpose functions for Sequel

Public Class Methods

adapter_name(database) click to toggle source

Ruby database connector library

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

# File lib/ddtrace/contrib/sequel/utils.rb, line 13
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) click to toggle source

Database engine

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

# File lib/ddtrace/contrib/sequel/utils.rb, line 28
def database_type(database)
  Datadog::Utils::Database.normalize_vendor(database.database_type.to_s)
end
parse_opts(sql, opts, db_opts, dataset = nil) click to toggle source
# File lib/ddtrace/contrib/sequel/utils.rb, line 32
def parse_opts(sql, opts, db_opts, dataset = nil)
  # Prepared statements don't provide their sql query in the +sql+ parameter.
  if !sql.is_a?(String) && (dataset && dataset.respond_to?(:prepared_sql) &&
    (resolved_sql = dataset.prepared_sql))
    # The dataset contains the resolved SQL query and prepared statement name.
    prepared_name = dataset.prepared_statement_name
    sql = resolved_sql
  end

  {
    name: opts[:type],
    query: sql,
    prepared_name: prepared_name,
    database: db_opts[:database],
    host: db_opts[:host]
  }
end
set_common_tags(span) click to toggle source
# File lib/ddtrace/contrib/sequel/utils.rb, line 50
def set_common_tags(span)
  # Tag as an external peer service
  span.set_tag(Datadog::Ext::Integration::TAG_PEER_SERVICE, span.service)

  # Set analytics sample rate
  Contrib::Analytics.set_sample_rate(span, analytics_sample_rate) if analytics_enabled?
end

Private Class Methods

analytics_enabled?() click to toggle source
# File lib/ddtrace/contrib/sequel/utils.rb, line 64
def analytics_enabled?
  Contrib::Analytics.enabled?(datadog_configuration[:analytics_enabled])
end
analytics_sample_rate() click to toggle source
# File lib/ddtrace/contrib/sequel/utils.rb, line 68
def analytics_sample_rate
  datadog_configuration[:analytics_sample_rate]
end
datadog_configuration() click to toggle source
# File lib/ddtrace/contrib/sequel/utils.rb, line 60
def datadog_configuration
  Datadog.configuration[:sequel]
end