module Datadog::Contrib::Mysql2::Instrumentation::InstanceMethods

Mysql2::Client patch instance methods

Public Instance Methods

datadog_pin() click to toggle source
# File lib/ddtrace/contrib/mysql2/instrumentation.rb, line 39
def datadog_pin
  @datadog_pin ||= Datadog::Pin.new(
    Datadog.configuration[:mysql2][:service_name],
    app: Ext::APP,
    app_type: Datadog::Ext::AppTypes::DB,
    tracer: -> { Datadog.configuration[:mysql2][:tracer] }
  )
end
query(sql, options = {}) click to toggle source
Calls superclass method
# File lib/ddtrace/contrib/mysql2/instrumentation.rb, line 20
def query(sql, options = {})
  datadog_pin.tracer.trace(Ext::SPAN_QUERY) do |span|
    span.resource = sql
    span.service = datadog_pin.service
    span.span_type = Datadog::Ext::SQL::TYPE

    # 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?

    span.set_tag(Ext::TAG_DB_NAME, query_options[:database])
    span.set_tag(Datadog::Ext::NET::TARGET_HOST, query_options[:host])
    span.set_tag(Datadog::Ext::NET::TARGET_PORT, query_options[:port])
    super(sql, options)
  end
end

Private Instance Methods

analytics_enabled?() click to toggle source
# File lib/ddtrace/contrib/mysql2/instrumentation.rb, line 54
def analytics_enabled?
  datadog_configuration[:analytics_enabled]
end
analytics_sample_rate() click to toggle source
# File lib/ddtrace/contrib/mysql2/instrumentation.rb, line 58
def analytics_sample_rate
  datadog_configuration[:analytics_sample_rate]
end
datadog_configuration() click to toggle source
# File lib/ddtrace/contrib/mysql2/instrumentation.rb, line 50
def datadog_configuration
  Datadog.configuration[:mysql2]
end