Allow disabling the Dynatrace instruments

Since Micrometer version 1.9.0, the Dynatrace registry uses specialized
instruments by default, which ensures data is exported in an optimal
format. By using this new flag, users can switch back to the previous
behavior, which uses the original instruments from Micrometer.

See gh-30637
pull/30742/head
Georg Pirklbauer 3 years ago committed by Stephane Nicoll
parent cd8c64e1aa
commit 7a05faf079

@ -168,6 +168,14 @@ public class DynatraceProperties extends StepRegistryProperties {
*/
private String metricKeyPrefix;
/**
* Since version 1.9.0 of Micrometer, the Dynatrace registry uses specialized
* instruments to make sure data is exported in an optimal format. This behavior
* is the new default. This toggle allows switching back to the original
* implementation.
*/
private boolean useDynatraceSummaryInstruments = true;
public Map<String, String> getDefaultDimensions() {
return this.defaultDimensions;
}
@ -192,6 +200,14 @@ public class DynatraceProperties extends StepRegistryProperties {
this.metricKeyPrefix = metricKeyPrefix;
}
public boolean isUseDynatraceSummaryInstruments() {
return this.useDynatraceSummaryInstruments;
}
public void setUseDynatraceSummaryInstruments(boolean useDynatraceSummaryInstruments) {
this.useDynatraceSummaryInstruments = useDynatraceSummaryInstruments;
}
}
}

@ -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 <V> Function<DynatraceProperties, V> v1(Function<V1, V> getter) {
return (properties) -> getter.apply(properties.getV1());
}

@ -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();

Loading…
Cancel
Save