From f11639e4ee5089d9af15f9d905266b7f386d9296 Mon Sep 17 00:00:00 2001 From: Anton Duyun Date: Wed, 26 Jul 2023 14:16:39 +0300 Subject: [PATCH] NPE fix for null keys in consumer records (#219) --- .../kafka/consumer/OpentelemetryKafkaConsumerTracer.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/opentelemetry/opentelemetry-module/src/main/java/ru/tinkoff/kora/opentelemetry/module/kafka/consumer/OpentelemetryKafkaConsumerTracer.java b/opentelemetry/opentelemetry-module/src/main/java/ru/tinkoff/kora/opentelemetry/module/kafka/consumer/OpentelemetryKafkaConsumerTracer.java index 4ca08d86c..9f0ab44f4 100644 --- a/opentelemetry/opentelemetry-module/src/main/java/ru/tinkoff/kora/opentelemetry/module/kafka/consumer/OpentelemetryKafkaConsumerTracer.java +++ b/opentelemetry/opentelemetry-module/src/main/java/ru/tinkoff/kora/opentelemetry/module/kafka/consumer/OpentelemetryKafkaConsumerTracer.java @@ -18,6 +18,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Map; +import java.util.Objects; public class OpentelemetryKafkaConsumerTracer implements KafkaConsumerTracer { private final Tracer tracer; @@ -83,9 +84,11 @@ public KafkaConsumerRecordSpan get(ConsumerRecord record) { .setAttribute(SemanticAttributes.MESSAGING_SYSTEM, "kafka") .setAttribute(SemanticAttributes.MESSAGING_SOURCE_NAME, record.topic()) .setAttribute(SemanticAttributes.MESSAGING_SOURCE_KIND, "topic") - .setAttribute(SemanticAttributes.MESSAGING_KAFKA_MESSAGE_KEY, record.key().toString()) .setAttribute(SemanticAttributes.MESSAGING_KAFKA_SOURCE_PARTITION, (long) record.partition()) .setAttribute(SemanticAttributes.MESSAGING_KAFKA_MESSAGE_OFFSET, record.offset()); + try { + recordSpanBuilder.setAttribute(SemanticAttributes.MESSAGING_KAFKA_MESSAGE_KEY, Objects.toString(record.key())); + } catch (Exception ignore) {} var recordSpan = recordSpanBuilder.startSpan(); OpentelemetryContext.set(Context.current(), this.rootCtx.add(recordSpan));