From 369fb4a911d63097aaaf4f69a9b61f7c171be403 Mon Sep 17 00:00:00 2001 From: Yohei Kitamura <3087402+yoheyk@users.noreply.github.com> Date: Wed, 21 Feb 2024 16:39:16 -0500 Subject: [PATCH] fix: suppress deprecation warning in Rdkafka Instrumentation --- .../instrumentation/rdkafka/patches/consumer.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/instrumentation/rdkafka/lib/opentelemetry/instrumentation/rdkafka/patches/consumer.rb b/instrumentation/rdkafka/lib/opentelemetry/instrumentation/rdkafka/patches/consumer.rb index 97f3dd2b5..e15221c54 100644 --- a/instrumentation/rdkafka/lib/opentelemetry/instrumentation/rdkafka/patches/consumer.rb +++ b/instrumentation/rdkafka/lib/opentelemetry/instrumentation/rdkafka/patches/consumer.rb @@ -23,7 +23,7 @@ def each message_key = extract_message_key(message.key) attributes['messaging.kafka.message_key'] = message_key if message_key - parent_context = OpenTelemetry.propagation.extract(message.headers, getter: OpenTelemetry::Common::Propagation.symbol_key_getter) + parent_context = OpenTelemetry.propagation.extract(message.headers, getter: getter) span_context = OpenTelemetry::Trace.current_span(parent_context).context links = [OpenTelemetry::Trace::Link.new(span_context)] if span_context.valid? @@ -47,7 +47,7 @@ def each_batch(max_items: 100, bytes_threshold: Float::INFINITY, timeout_ms: 250 } links = messages.map do |message| - trace_context = OpenTelemetry.propagation.extract(message.headers, getter: OpenTelemetry::Common::Propagation.symbol_key_getter) + trace_context = OpenTelemetry.propagation.extract(message.headers, getter: getter) span_context = OpenTelemetry::Trace.current_span(trace_context).context OpenTelemetry::Trace::Link.new(span_context) if span_context.valid? end @@ -74,6 +74,14 @@ def extract_message_key(key) rescue Encoding::UndefinedConversionError nil end + + def getter + if Gem::Version.new(::Rdkafka::VERSION) >= Gem::Version.new('0.13.0') + Context::Propagation.text_map_getter + else + OpenTelemetry::Common::Propagation.symbol_key_getter + end + end end end end