module Datadog::Contrib::Presto::Instrumentation::Client::InstanceMethods
Instance methods for Presto::Client
Public Instance Methods
kill(query_id)
click to toggle source
Calls superclass method
# File lib/ddtrace/contrib/presto/instrumentation.rb, line 50 def kill(query_id) tracer.trace(Ext::SPAN_KILL, span_options) do |span| begin decorate!(span) span.resource = Ext::SPAN_KILL span.span_type = Datadog::Ext::AppTypes::DB # ^ not an SQL type span, since there's no SQL query span.set_tag(Ext::TAG_QUERY_ID, query_id) rescue StandardError => e Datadog.logger.debug("error preparing span for presto: #{e}") end super(query_id) end end
query(query, &blk)
click to toggle source
Calls superclass method
# File lib/ddtrace/contrib/presto/instrumentation.rb, line 35 def query(query, &blk) tracer.trace(Ext::SPAN_QUERY, span_options) do |span| begin decorate!(span) span.resource = query span.span_type = Datadog::Ext::SQL::TYPE span.set_tag(Ext::TAG_QUERY_ASYNC, !blk.nil?) rescue StandardError => e Datadog.logger.debug("error preparing span for presto: #{e}") end super(query, &blk) end end
run(query)
click to toggle source
Calls superclass method
# File lib/ddtrace/contrib/presto/instrumentation.rb, line 20 def run(query) tracer.trace(Ext::SPAN_QUERY, span_options) do |span| begin decorate!(span) span.resource = query span.span_type = Datadog::Ext::SQL::TYPE span.set_tag(Ext::TAG_QUERY_ASYNC, false) rescue StandardError => e Datadog.logger.debug("error preparing span for presto: #{e}") end super(query) end end
Private Instance Methods
datadog_configuration()
click to toggle source
# File lib/ddtrace/contrib/presto/instrumentation.rb, line 68 def datadog_configuration Datadog.configuration[:presto] end
decorate!(span)
click to toggle source
# File lib/ddtrace/contrib/presto/instrumentation.rb, line 84 def decorate!(span) set_nilable_tag!(span, :server, Datadog::Ext::NET::TARGET_HOST) set_nilable_tag!(span, :user, Ext::TAG_USER_NAME) set_nilable_tag!(span, :schema, Ext::TAG_SCHEMA_NAME) set_nilable_tag!(span, :catalog, Ext::TAG_CATALOG_NAME) set_nilable_tag!(span, :time_zone, Ext::TAG_TIME_ZONE) set_nilable_tag!(span, :language, Ext::TAG_LANGUAGE) set_nilable_tag!(span, :http_proxy, Ext::TAG_PROXY) set_nilable_tag!(span, :model_version, Ext::TAG_MODEL_VERSION) # Tag as an external peer service span.set_tag(Datadog::Ext::Integration::TAG_PEER_SERVICE, span.service) # Set analytics sample rate if Contrib::Analytics.enabled?(datadog_configuration[:analytics_enabled]) Contrib::Analytics.set_sample_rate(span, datadog_configuration[:analytics_sample_rate]) end end
set_nilable_tag!(span, key, tag_name)
click to toggle source
# File lib/ddtrace/contrib/presto/instrumentation.rb, line 103 def set_nilable_tag!(span, key, tag_name) @options[key].tap { |val| span.set_tag(tag_name, val) if val } end
span_options()
click to toggle source
# File lib/ddtrace/contrib/presto/instrumentation.rb, line 72 def span_options { service: datadog_configuration[:service_name], app: Ext::APP, app_type: Datadog::Ext::AppTypes::DB } end
tracer()
click to toggle source
# File lib/ddtrace/contrib/presto/instrumentation.rb, line 80 def tracer datadog_configuration.tracer end