Sha256: def71068e98e1bd7f19284d5563645c6434d38adfebe92bdab0a6f08e98f6a0d

Contents?: true

Size: 1.33 KB

Versions: 7

Compression:

Stored size: 1.33 KB

Contents

# frozen_string_literal: true

# Copyright The OpenTelemetry Authors
#
# SPDX-License-Identifier: Apache-2.0

module OpenTelemetry
  module Instrumentation
    module Dalli
      module Patches
        # Module to prepend to Dalli::Server (or Dalli::Protocol::Binary in 3.0+) for instrumentation
        module Server
          def request(op, *args) # rubocop:disable Naming/MethodParameterName
            operation = Utils.opname(op, multi?)
            attributes = {
              'db.system' => 'memcached',
              'db.operation' => operation,
              'net.peer.name' => hostname,
              'net.peer.port' => port
            }
            if config[:db_statement] == :include
              attributes['db.statement'] = Utils.format_command(operation, args)
            elsif config[:db_statement] == :obfuscate
              attributes['db.statement'] = "#{operation} ?"
            end

            attributes['peer.service'] = config[:peer_service] if config[:peer_service]
            tracer.in_span(operation, attributes: attributes, kind: :client) do
              super
            end
          end

          private

          def tracer
            Dalli::Instrumentation.instance.tracer
          end

          def config
            Dalli::Instrumentation.instance.config
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
opentelemetry-instrumentation-dalli-0.25.4 lib/opentelemetry/instrumentation/dalli/patches/server.rb
opentelemetry-instrumentation-dalli-0.25.3 lib/opentelemetry/instrumentation/dalli/patches/server.rb
opentelemetry-instrumentation-dalli-0.25.1 lib/opentelemetry/instrumentation/dalli/patches/server.rb
opentelemetry-instrumentation-dalli-0.25.0 lib/opentelemetry/instrumentation/dalli/patches/server.rb
opentelemetry-instrumentation-dalli-0.24.2 lib/opentelemetry/instrumentation/dalli/patches/server.rb
opentelemetry-instrumentation-dalli-0.24.1 lib/opentelemetry/instrumentation/dalli/patches/server.rb
opentelemetry-instrumentation-dalli-0.24.0 lib/opentelemetry/instrumentation/dalli/patches/server.rb