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
This commit is contained in:
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…
Reference in New Issue