From 1daff23d077e667f49165f5710372efeb8dd4a07 Mon Sep 17 00:00:00 2001 From: Johno Crawford Date: Tue, 12 Nov 2024 20:50:55 +0100 Subject: [PATCH] Refactor NullTelemetryFactory to use singleton instances for null telemetry objects, reducing memory allocations. --- .../jdbc/util/telemetry/NullTelemetryFactory.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/wrapper/src/main/java/software/amazon/jdbc/util/telemetry/NullTelemetryFactory.java b/wrapper/src/main/java/software/amazon/jdbc/util/telemetry/NullTelemetryFactory.java index 98e24e259..3e311f151 100644 --- a/wrapper/src/main/java/software/amazon/jdbc/util/telemetry/NullTelemetryFactory.java +++ b/wrapper/src/main/java/software/amazon/jdbc/util/telemetry/NullTelemetryFactory.java @@ -18,9 +18,13 @@ public class NullTelemetryFactory implements TelemetryFactory { + private static final TelemetryContext NULL_TELEMETRY_CONTEXT = new NullTelemetryContext("null"); + private static final TelemetryCounter NULL_TELEMETRY_COUNTER = new NullTelemetryCounter("null"); + private static final TelemetryGauge NULL_TELEMETRY_GAUGE = new NullTelemetryGauge("null"); + @Override public TelemetryContext openTelemetryContext(String name, TelemetryTraceLevel traceLevel) { - return new NullTelemetryContext(name); + return NULL_TELEMETRY_CONTEXT; } @Override @@ -30,11 +34,11 @@ public void postCopy(TelemetryContext telemetryContext, TelemetryTraceLevel trac @Override public TelemetryCounter createCounter(String name) { - return new NullTelemetryCounter(name); + return NULL_TELEMETRY_COUNTER; } @Override public TelemetryGauge createGauge(String name, GaugeCallable callback) { - return new NullTelemetryGauge(name); + return NULL_TELEMETRY_GAUGE; } }