diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/dynatrace/DynatraceProperties.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/dynatrace/DynatraceProperties.java index 10a837b889..c1bd8ea930 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/dynatrace/DynatraceProperties.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/dynatrace/DynatraceProperties.java @@ -168,6 +168,12 @@ public class DynatraceProperties extends StepRegistryProperties { */ private String metricKeyPrefix; + /** + * Whether to fall back to the built-in micrometer instruments for Timer and + * DistributionSummary. + */ + private boolean useDynatraceSummaryInstruments = true; + public Map getDefaultDimensions() { return this.defaultDimensions; } @@ -192,6 +198,14 @@ public class DynatraceProperties extends StepRegistryProperties { this.metricKeyPrefix = metricKeyPrefix; } + public boolean isUseDynatraceSummaryInstruments() { + return this.useDynatraceSummaryInstruments; + } + + public void setUseDynatraceSummaryInstruments(boolean useDynatraceSummaryInstruments) { + this.useDynatraceSummaryInstruments = useDynatraceSummaryInstruments; + } + } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/dynatrace/DynatracePropertiesConfigAdapter.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/dynatrace/DynatracePropertiesConfigAdapter.java index 6bcb21b9de..82135f9898 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/dynatrace/DynatracePropertiesConfigAdapter.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/dynatrace/DynatracePropertiesConfigAdapter.java @@ -90,6 +90,11 @@ class DynatracePropertiesConfigAdapter extends StepRegistryPropertiesConfigAdapt return get(v2(V2::isEnrichWithDynatraceMetadata), DynatraceConfig.super::enrichWithDynatraceMetadata); } + @Override + public boolean useDynatraceSummaryInstruments() { + return get(v2(V2::isUseDynatraceSummaryInstruments), DynatraceConfig.super::useDynatraceSummaryInstruments); + } + private Function v1(Function getter) { return (properties) -> getter.apply(properties.getV1()); } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/dynatrace/DynatracePropertiesConfigAdapterTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/dynatrace/DynatracePropertiesConfigAdapterTests.java index 0030283754..97117ce9ad 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/dynatrace/DynatracePropertiesConfigAdapterTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/export/dynatrace/DynatracePropertiesConfigAdapterTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2021 the original author or authors. + * Copyright 2012-2022 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -125,6 +125,13 @@ class DynatracePropertiesConfigAdapterTests { assertThat(new DynatracePropertiesConfigAdapter(properties).enrichWithDynatraceMetadata()).isTrue(); } + @Test + void whenPropertiesUseDynatraceInstrumentsIsSetAdapterUseDynatraceInstrumentsReturnsIt() { + DynatraceProperties properties = new DynatraceProperties(); + properties.getV2().setUseDynatraceSummaryInstruments(false); + assertThat(new DynatracePropertiesConfigAdapter(properties).useDynatraceSummaryInstruments()).isFalse(); + } + @Test void whenPropertiesDefaultDimensionsIsSetAdapterDefaultDimensionsReturnsIt() { DynatraceProperties properties = new DynatraceProperties(); @@ -148,6 +155,7 @@ class DynatracePropertiesConfigAdapterTests { assertThat(properties.getV2().getMetricKeyPrefix()).isNull(); assertThat(properties.getV2().isEnrichWithDynatraceMetadata()).isTrue(); assertThat(properties.getV2().getDefaultDimensions()).isNull(); + assertThat(properties.getV2().isUseDynatraceSummaryInstruments()).isTrue(); assertThat(properties.getDeviceId()).isNull(); assertThat(properties.getTechnologyType()).isEqualTo("java"); assertThat(properties.getGroup()).isNull();