Module: Datadog::Contrib::Sequel::Utils
- Defined in:
- lib/ddtrace/contrib/sequel/utils.rb
Overview
General purpose functions for Sequel
Class Method Summary collapse
-
.adapter_name(database) ⇒ Object
Ruby database connector library.
-
.database_type(database) ⇒ Object
Database engine.
- .parse_opts(sql, opts, db_opts, dataset = nil) ⇒ Object
- .set_common_tags(span) ⇒ Object
Class Method Details
.adapter_name(database) ⇒ Object
Ruby database connector library
e.g. adapter:mysql2 (database:mysql), adapter:jdbc (database:postgres)
13 14 15 16 17 18 19 20 21 22 23 |
# 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) ⇒ Object
Database engine
e.g. database:mysql (adapter:mysql2), database:postgres (adapter:jdbc)
28 29 30 |
# 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) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# 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) ⇒ Object
50 51 52 53 54 55 56 |
# File 'lib/ddtrace/contrib/sequel/utils.rb', line 50 def (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 |