diff --git a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/Bridging.java b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/Bridging.java index 90e1465e2d3e..6febc8fdfcb5 100644 --- a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/Bridging.java +++ b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/Bridging.java @@ -17,6 +17,7 @@ final class Bridging { private static final Cache> tagsCache = Cache.bounded(1024); + private static final Cache descriptionsCache = Cache.bounded(1024); static Attributes tagsAsAttributes(Meter.Id id, NamingConvention namingConvention) { Iterable tags = id.getTagsAsIterable(); @@ -36,9 +37,12 @@ static String name(Meter.Id id, NamingConvention namingConvention) { return namingConvention.name(id.getName(), id.getType(), id.getBaseUnit()); } - static String description(Meter.Id id) { - String description = id.getDescription(); - return description == null ? "" : description; + static String description(String name, Meter.Id id) { + return descriptionsCache.computeIfAbsent( + name, n -> { + String description = id.getDescription(); + return description == null ? "" : description; + }); } static String baseUnit(Meter.Id id) { diff --git a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryCounter.java b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryCounter.java index 995d61db4a11..1563ffa17f86 100644 --- a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryCounter.java +++ b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryCounter.java @@ -34,10 +34,11 @@ final class OpenTelemetryCounter implements Counter, RemovableMeter { this.id = id; this.attributes = tagsAsAttributes(id, namingConvention); + String conventionName = name(id, namingConvention); this.otelCounter = otelMeter - .counterBuilder(name(id, namingConvention)) - .setDescription(description(id)) + .counterBuilder(conventionName) + .setDescription(description(conventionName, id)) .setUnit(baseUnit(id)) .ofDoubles() .build(); diff --git a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryDistributionSummary.java b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryDistributionSummary.java index dd63c0103c84..5888995b6863 100644 --- a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryDistributionSummary.java +++ b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryDistributionSummary.java @@ -62,13 +62,13 @@ final class OpenTelemetryDistributionSummary extends AbstractDistributionSummary this.otelHistogram = otelMeter .histogramBuilder(conventionName) - .setDescription(description(id)) + .setDescription(description(conventionName, id)) .setUnit(baseUnit(id)) .build(); this.maxHandle = asyncInstrumentRegistry.buildGauge( conventionName + ".max", - description(id), + description(conventionName, id), baseUnit(id), attributes, max, diff --git a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryFunctionCounter.java b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryFunctionCounter.java index a4d530a7eb22..f7654530cb18 100644 --- a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryFunctionCounter.java +++ b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryFunctionCounter.java @@ -5,10 +5,7 @@ package io.opentelemetry.instrumentation.micrometer.v1_5; -import static io.opentelemetry.instrumentation.micrometer.v1_5.Bridging.baseUnit; -import static io.opentelemetry.instrumentation.micrometer.v1_5.Bridging.description; -import static io.opentelemetry.instrumentation.micrometer.v1_5.Bridging.name; -import static io.opentelemetry.instrumentation.micrometer.v1_5.Bridging.tagsAsAttributes; +import static io.opentelemetry.instrumentation.micrometer.v1_5.Bridging.*; import io.micrometer.core.instrument.FunctionCounter; import io.micrometer.core.instrument.Measurement; @@ -34,10 +31,11 @@ final class OpenTelemetryFunctionCounter implements FunctionCounter, Removabl AsyncInstrumentRegistry asyncInstrumentRegistry) { this.id = id; + String conventionName = name(id, namingConvention); countMeasurementHandle = asyncInstrumentRegistry.buildDoubleCounter( - name(id, namingConvention), - description(id), + conventionName, + description(conventionName, id), baseUnit(id), tagsAsAttributes(id, namingConvention), obj, diff --git a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryFunctionTimer.java b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryFunctionTimer.java index 3bec29f49578..dd18435a99c8 100644 --- a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryFunctionTimer.java +++ b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryFunctionTimer.java @@ -45,18 +45,22 @@ final class OpenTelemetryFunctionTimer implements FunctionTimer, RemovableMet this.id = id; this.baseTimeUnit = baseTimeUnit; - String countMeterName = name(id, namingConvention) + ".count"; - String totalTimeMeterName = name(id, namingConvention) + ".sum"; + String conventionName = name(id, namingConvention); Attributes attributes = tagsAsAttributes(id, namingConvention); countMeasurementHandle = asyncInstrumentRegistry.buildLongCounter( - countMeterName, description(id), /* baseUnit = */ "1", attributes, obj, countFunction); + conventionName + ".count", + description(conventionName, id), + /* baseUnit = */ "1", + attributes, + obj, + countFunction); totalTimeMeasurementHandle = asyncInstrumentRegistry.buildDoubleCounter( - totalTimeMeterName, - description(id), + conventionName + ".sum", + description(conventionName, id), getUnitString(baseTimeUnit), attributes, obj, diff --git a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryGauge.java b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryGauge.java index b36f91be2e2f..d9cc482c2d25 100644 --- a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryGauge.java +++ b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryGauge.java @@ -35,10 +35,11 @@ final class OpenTelemetryGauge implements Gauge, RemovableMeter { this.id = id; + String conventionName = name(id, namingConvention); gaugeMeasurementHandle = asyncInstrumentRegistry.buildGauge( - name(id, namingConvention), - description(id), + conventionName, + description(conventionName, id), baseUnit(id), tagsAsAttributes(id, namingConvention), obj, diff --git a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryLongTaskTimer.java b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryLongTaskTimer.java index 6ab2aec6654d..10f4282e2018 100644 --- a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryLongTaskTimer.java +++ b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryLongTaskTimer.java @@ -43,7 +43,7 @@ final class OpenTelemetryLongTaskTimer extends DefaultLongTaskTimer implements R this.activeTasksHandle = asyncInstrumentRegistry.buildUpDownLongCounter( conventionName + ".active", - description(id), + description(conventionName, id), "tasks", attributes, this, @@ -51,7 +51,7 @@ final class OpenTelemetryLongTaskTimer extends DefaultLongTaskTimer implements R this.durationHandle = asyncInstrumentRegistry.buildUpDownDoubleCounter( conventionName + ".duration", - description(id), + description(conventionName, id), getUnitString(baseTimeUnit), attributes, this, diff --git a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryMeter.java b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryMeter.java index b57c646297e3..422f90879aaf 100644 --- a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryMeter.java +++ b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryMeter.java @@ -39,7 +39,7 @@ final class OpenTelemetryMeter implements Meter, RemovableMeter { List measurementHandles = new ArrayList<>(); for (Measurement measurement : measurements) { String name = statisticInstrumentName(id, measurement.getStatistic(), namingConvention); - String description = description(id); + String description = description(name, id); String baseUnit = baseUnit(id); switch (measurement.getStatistic()) { diff --git a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryTimer.java b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryTimer.java index e7538853a6e5..8ce918222051 100644 --- a/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryTimer.java +++ b/instrumentation/micrometer/micrometer-1.5/library/src/main/java/io/opentelemetry/instrumentation/micrometer/v1_5/OpenTelemetryTimer.java @@ -65,13 +65,13 @@ final class OpenTelemetryTimer extends AbstractTimer implements RemovableMeter { this.otelHistogram = otelMeter .histogramBuilder(conventionName) - .setDescription(description(id)) + .setDescription(description(conventionName, id)) .setUnit(getUnitString(baseTimeUnit)) .build(); this.maxHandle = asyncInstrumentRegistry.buildGauge( conventionName + ".max", - description(id), + description(conventionName, id), getUnitString(baseTimeUnit), attributes, max,