diff --git a/instrumentation/rdkafka/Appraisals b/instrumentation/rdkafka/Appraisals index 6aa63adaf9..b2d56ff9fe 100644 --- a/instrumentation/rdkafka/Appraisals +++ b/instrumentation/rdkafka/Appraisals @@ -4,7 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -%w[0.12.0 0.13.0 0.14.0].each do |version| +%w[0.12.0 0.13.0 0.14.0 0.15.0 0.16.0 0.17.0 0.18.0 0.19.0].each do |version| appraise "rdkafka-#{version}" do gem 'rdkafka', "~> #{version}" end diff --git a/instrumentation/rdkafka/lib/opentelemetry/instrumentation/rdkafka/instrumentation.rb b/instrumentation/rdkafka/lib/opentelemetry/instrumentation/rdkafka/instrumentation.rb index e240b991e6..216796689f 100644 --- a/instrumentation/rdkafka/lib/opentelemetry/instrumentation/rdkafka/instrumentation.rb +++ b/instrumentation/rdkafka/lib/opentelemetry/instrumentation/rdkafka/instrumentation.rb @@ -11,7 +11,7 @@ module Rdkafka class Instrumentation < OpenTelemetry::Instrumentation::Base compatible do gem_version = Gem::Version.new(::Rdkafka::VERSION) - Gem::Requirement.new('>= 0.10.0', '< 0.15.0').satisfied_by?(gem_version) + Gem::Requirement.new('>= 0.10.0', '< 0.20.0').satisfied_by?(gem_version) end install do |_config| diff --git a/instrumentation/rdkafka/lib/opentelemetry/instrumentation/rdkafka/patches/producer.rb b/instrumentation/rdkafka/lib/opentelemetry/instrumentation/rdkafka/patches/producer.rb index 3515f9ca56..1110dbf9e0 100644 --- a/instrumentation/rdkafka/lib/opentelemetry/instrumentation/rdkafka/patches/producer.rb +++ b/instrumentation/rdkafka/lib/opentelemetry/instrumentation/rdkafka/patches/producer.rb @@ -10,17 +10,18 @@ module Rdkafka module Patches # The Producer module contains the instrumentation patch the Producer#produce method module Producer - def produce(topic:, payload: nil, key: nil, partition: nil, partition_key: nil, timestamp: nil, headers: nil) + def produce(*args, **kwargs) + topic = kwargs[:topic] + headers = kwargs[:headers] || {} attributes = { 'messaging.system' => 'kafka', 'messaging.destination' => topic, 'messaging.destination_kind' => 'topic' } - headers ||= {} - tracer.in_span("#{topic} publish", attributes: attributes, kind: :producer) do OpenTelemetry.propagation.inject(headers) + kwargs[:headers] = headers super end end