Sha256: ddb4c96e4ee3ee7ea3744cd987b9b02576d21295121c6b8b39050ba57d3ed069

Contents?: true

Size: 1.21 KB

Versions: 5

Compression:

Stored size: 1.21 KB

Contents

# typed: true
require 'ddtrace/contrib/kafka/ext'
require 'ddtrace/contrib/kafka/event'
require 'ddtrace/contrib/kafka/consumer_event'

module Datadog
  module Contrib
    module Kafka
      module Events
        module Consumer
          # Defines instrumentation for process_message.consumer.kafka event
          module ProcessMessage
            include Kafka::Event
            extend Kafka::ConsumerEvent

            EVENT_NAME = 'process_message.consumer.kafka'.freeze

            def self.process(span, _event, _id, payload)
              super

              span.resource = payload[:topic]

              span.set_tag(Ext::TAG_TOPIC, payload[:topic]) if payload.key?(:topic)
              span.set_tag(Ext::TAG_MESSAGE_KEY, payload[:key]) if payload.key?(:key)
              span.set_tag(Ext::TAG_PARTITION, payload[:partition]) if payload.key?(:partition)
              span.set_tag(Ext::TAG_OFFSET, payload[:offset]) if payload.key?(:offset)
              span.set_tag(Ext::TAG_OFFSET_LAG, payload[:offset_lag]) if payload.key?(:offset_lag)
            end

            module_function

            def span_name
              Ext::SPAN_PROCESS_MESSAGE
            end
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ddtrace-0.54.2 lib/ddtrace/contrib/kafka/events/consumer/process_message.rb
ddtrace-0.54.1 lib/ddtrace/contrib/kafka/events/consumer/process_message.rb
ddtrace-0.54.0 lib/ddtrace/contrib/kafka/events/consumer/process_message.rb
ddtrace-0.53.0 lib/ddtrace/contrib/kafka/events/consumer/process_message.rb
ddtrace-0.52.0 lib/ddtrace/contrib/kafka/events/consumer/process_message.rb