Sha256: 83213c682ebb19c2c0856e14ccc7b1c7da8e4faf792235430a5a268d06f9a6d6
Contents?: true
Size: 1.99 KB
Versions: 4
Compression:
Stored size: 1.99 KB
Contents
# typed: false require 'datadog/tracing' require 'datadog/tracing/metadata/ext' require 'datadog/tracing/contrib/analytics' require 'datadog/tracing/contrib/dalli/ext' require 'datadog/tracing/contrib/dalli/quantize' module Datadog module Tracing module Contrib module Dalli # Instruments every interaction with the memcached server module Instrumentation def self.included(base) base.prepend(InstanceMethods) end # InstanceMethods - implementing instrumentation module InstanceMethods def request(op, *args) Tracing.trace(Ext::SPAN_COMMAND) do |span| span.resource = op.to_s.upcase span.service = datadog_configuration[:service_name] span.span_type = Ext::SPAN_TYPE_COMMAND span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT) span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_COMMAND) # Tag as an external peer service span.set_tag(Tracing::Metadata::Ext::TAG_PEER_SERVICE, span.service) span.set_tag(Tracing::Metadata::Ext::TAG_PEER_HOSTNAME, hostname) # Set analytics sample rate if Contrib::Analytics.enabled?(datadog_configuration[:analytics_enabled]) Contrib::Analytics.set_sample_rate(span, datadog_configuration[:analytics_sample_rate]) end span.set_tag(Tracing::Metadata::Ext::NET::TAG_TARGET_HOST, hostname) span.set_tag(Tracing::Metadata::Ext::NET::TAG_TARGET_PORT, port) cmd = Quantize.format_command(op, args) span.set_tag(Ext::TAG_COMMAND, cmd) super end end private def datadog_configuration Datadog.configuration.tracing[:dalli, "#{hostname}:#{port}"] end end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems