Skip to content

Commit 8b07d28

Browse files
committed
Allow users to fall back to Micrometer instruments
1 parent 57c2c45 commit 8b07d28

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

implementations/micrometer-registry-dynatrace/src/main/java/io/micrometer/dynatrace/DynatraceConfig.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,20 @@ default boolean enrichWithDynatraceMetadata() {
128128
return getBoolean(this, "enrichWithDynatraceMetadata").orElse(true);
129129
}
130130

131+
/**
132+
* Return whether to fall back to the built-in micrometer instruments for Timer and DistributionSummary.
133+
*
134+
* @return {@code true} if the resetting Dynatrace instruments should be used, and false if the registry should
135+
* fall back to the built-in Micrometer instruments.
136+
* @since 1.9.0
137+
*/
138+
default boolean useDynatraceSummaryInstruments() {
139+
if (apiVersion() == V1) {
140+
return false;
141+
}
142+
return getBoolean(this, "useDynatraceSummaryInstruments").orElse(true);
143+
}
144+
131145
@Override
132146
default Validated<?> validate() {
133147
return checkAll(this,

implementations/micrometer-registry-dynatrace/src/main/java/io/micrometer/dynatrace/DynatraceMeterRegistry.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,9 @@
5858
public class DynatraceMeterRegistry extends StepMeterRegistry {
5959
private static final ThreadFactory DEFAULT_THREAD_FACTORY = new NamedThreadFactory("dynatrace-metrics-publisher");
6060
private static final InternalLogger logger = InternalLoggerFactory.getInstance(DynatraceMeterRegistry.class);
61-
private final DynatraceApiVersion apiVersion;
6261

62+
private final DynatraceApiVersion apiVersion;
63+
private final boolean useDynatraceSummaryInstruments;
6364
private final AbstractDynatraceExporter exporter;
6465

6566
@SuppressWarnings("deprecation")
@@ -71,6 +72,7 @@ private DynatraceMeterRegistry(DynatraceConfig config, Clock clock, ThreadFactor
7172
super(config, clock);
7273

7374
apiVersion = config.apiVersion();
75+
useDynatraceSummaryInstruments = config.useDynatraceSummaryInstruments();
7476

7577
if (apiVersion == DynatraceApiVersion.V2) {
7678
logger.info("Exporting to Dynatrace metrics API v2");
@@ -101,15 +103,15 @@ protected TimeUnit getBaseTimeUnit() {
101103

102104
@Override
103105
protected DistributionSummary newDistributionSummary(Meter.Id id, DistributionStatisticConfig distributionStatisticConfig, double scale) {
104-
if (apiVersion == DynatraceApiVersion.V2) {
106+
if (apiVersion == DynatraceApiVersion.V2 && useDynatraceSummaryInstruments) {
105107
return new DynatraceDistributionSummary(id, clock, distributionStatisticConfig, scale);
106108
}
107109
return super.newDistributionSummary(id, distributionStatisticConfig, scale);
108110
}
109111

110112
@Override
111113
protected Timer newTimer(Meter.Id id, DistributionStatisticConfig distributionStatisticConfig, PauseDetector pauseDetector) {
112-
if (apiVersion == DynatraceApiVersion.V2) {
114+
if (apiVersion == DynatraceApiVersion.V2 && useDynatraceSummaryInstruments) {
113115
return new DynatraceTimer(id, clock, distributionStatisticConfig, pauseDetector, exporter.getBaseTimeUnit());
114116
}
115117
return super.newTimer(id, distributionStatisticConfig, pauseDetector);

0 commit comments

Comments
 (0)