-
Bug
-
Resolution: Done
-
Major
-
14.0.11.Final
When running Keycloak with an embedded Infinispan and OpenTelementry instrumentation 1.24 or 1.27 with OpenTelemetry's Prometheus endpoint endabled, I see warning logs like the following, indicating a metrics name which shouldn't contain for example blanks:
I expect the metrics names to be normalized.
[otel.javaagent 2023-06-28 14:00:27:916 +0000] [keycloak-cache-init] WARN io.opentelemetry.sdk.metrics.internal.InstrumentNameValidator - Instrument name "vendor.BufferPool.used.memory.mapped - 'non-volatile memory'" is invalid, returning noop instrument. Instrument names must consist of 63 or fewer characters including alphanumeric, _, ., -, and start with a letter. Returning noop instrument. java.lang.AssertionError at io.opentelemetry.sdk.metrics.internal.InstrumentNameValidator.checkValidInstrumentName(InstrumentNameValidator.java:50) at io.opentelemetry.sdk.metrics.SdkMeter.gaugeBuilder(SdkMeter.java:102) at io.opentelemetry.javaagent.shaded.instrumentation.micrometer.v1_5.OpenTelemetryGauge.<init>(OpenTelemetryGauge.java:37) at io.opentelemetry.javaagent.shaded.instrumentation.micrometer.v1_5.OpenTelemetryMeterRegistry.newGauge(OpenTelemetryMeterRegistry.java:71) at io.micrometer.core.instrument.MeterRegistry.lambda$gauge$1(MeterRegistry.java:311) at io.micrometer.core.instrument.MeterRegistry.lambda$registerMeterIfNecessary$5(MeterRegistry.java:570) at io.micrometer.core.instrument.MeterRegistry.getOrCreateMeter(MeterRegistry.java:625) at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:577) at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:570) at io.micrometer.core.instrument.MeterRegistry.gauge(MeterRegistry.java:311) at io.micrometer.core.instrument.Gauge$Builder.register(Gauge.java:195) at io.micrometer.core.instrument.composite.CompositeGauge.registerNewMeter(CompositeGauge.java:60) at io.micrometer.core.instrument.composite.CompositeGauge.registerNewMeter(CompositeGauge.java:27) at io.micrometer.core.instrument.composite.AbstractCompositeMeter.add(AbstractCompositeMeter.java:68) at java.base/java.lang.Iterable.forEach(Iterable.java:75) at java.base/java.util.Collections$SetFromMap.forEach(Collections.java:5700) at io.micrometer.core.instrument.composite.CompositeMeterRegistry.lambda$new$0(CompositeMeterRegistry.java:67) at io.micrometer.core.instrument.composite.CompositeMeterRegistry.lock(CompositeMeterRegistry.java:189) at io.micrometer.core.instrument.composite.CompositeMeterRegistry.lambda$new$1(CompositeMeterRegistry.java:67) at io.micrometer.core.instrument.MeterRegistry.getOrCreateMeter(MeterRegistry.java:634) at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:577) at io.micrometer.core.instrument.MeterRegistry.registerMeterIfNecessary(MeterRegistry.java:570) at io.micrometer.core.instrument.MeterRegistry.gauge(MeterRegistry.java:311) at io.micrometer.core.instrument.Gauge$Builder.register(Gauge.java:195) at org.infinispan.metrics.impl.VendorAdditionalMetrics.bindTo(VendorAdditionalMetrics.java:29) at org.infinispan.metrics.impl.MetricsCollector.start(MetricsCollector.java:76) at org.infinispan.metrics.impl.CorePackageImpl$1.start(CorePackageImpl.java:41) at org.infinispan.metrics.impl.CorePackageImpl$1.start(CorePackageImpl.java:34)