Skip to content

Commit

Permalink
support otel.instrumentation.kafka.experimental-span-attributes in sp…
Browse files Browse the repository at this point in the history
…ring starter
  • Loading branch information
zeitlinger committed May 2, 2024
1 parent e38fd24 commit 79575ac
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@
class ConcurrentKafkaListenerContainerFactoryPostProcessor implements BeanPostProcessor {

private final ObjectProvider<OpenTelemetry> openTelemetryProvider;
private final boolean experimentalSpanAttributes;

ConcurrentKafkaListenerContainerFactoryPostProcessor(
ObjectProvider<OpenTelemetry> openTelemetryProvider) {
ObjectProvider<OpenTelemetry> openTelemetryProvider, boolean experimentalSpanAttributes) {
this.openTelemetryProvider = openTelemetryProvider;
this.experimentalSpanAttributes = experimentalSpanAttributes;
}

@Override
Expand All @@ -29,7 +31,9 @@ public Object postProcessAfterInitialization(Object bean, String beanName) {
ConcurrentKafkaListenerContainerFactory<?, ?> listenerContainerFactory =
(ConcurrentKafkaListenerContainerFactory<?, ?>) bean;
SpringKafkaTelemetry springKafkaTelemetry =
SpringKafkaTelemetry.create(openTelemetryProvider.getObject());
SpringKafkaTelemetry.builder(openTelemetryProvider.getObject())
.setCaptureExperimentalSpanAttributes(experimentalSpanAttributes)
.build();
listenerContainerFactory.setBatchInterceptor(springKafkaTelemetry.createBatchInterceptor());
listenerContainerFactory.setRecordInterceptor(springKafkaTelemetry.createRecordInterceptor());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import io.opentelemetry.instrumentation.kafkaclients.v2_6.KafkaTelemetry;
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.SdkEnabled;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
Expand Down Expand Up @@ -37,7 +38,10 @@ DefaultKafkaProducerFactoryCustomizer otelKafkaProducerFactoryCustomizer(
@Bean
static ConcurrentKafkaListenerContainerFactoryPostProcessor
otelKafkaListenerContainerFactoryBeanPostProcessor(
ObjectProvider<OpenTelemetry> openTelemetryProvider) {
return new ConcurrentKafkaListenerContainerFactoryPostProcessor(openTelemetryProvider);
ObjectProvider<OpenTelemetry> openTelemetryProvider,
@Value("${otel.instrumentation.kafka.experimental-span-attributes:false}")
boolean experimentalSpanAttributes) {
return new ConcurrentKafkaListenerContainerFactoryPostProcessor(
openTelemetryProvider, experimentalSpanAttributes);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,12 @@
"description": "Enable the Kafka instrumentation.",
"defaultValue": true
},
{
"name": "otel.instrumentation.kafka.experimental-span-attributes",
"type": "java.lang.Boolean",
"description": "Enable the capture of experimental Kafka span attributes.",
"defaultValue": false
},
{
"name": "otel.instrumentation.log4j-appender.enabled",
"type": "java.lang.Boolean",
Expand Down

0 comments on commit 79575ac

Please sign in to comment.