Upgrade to Infinispan 16.0.5

- Explicitly utilise "legacy" metrics
- Remove explicit `name-as-tags` configuration as Infinispan 16 defaults
  to true

Signed-off-by: Ryan Emerson <remerson@ibm.com>
This commit is contained in:
Ryan Emerson 2026-01-05 17:28:36 +00:00
parent 98735e8a0a
commit 367e0d8740
5 changed files with 39 additions and 7 deletions

View File

@ -2,7 +2,6 @@
{jdgserver_name} exposes metrics in the endpoint `/metrics`. {jdgserver_name} exposes metrics in the endpoint `/metrics`.
By default, they are enabled. By default, they are enabled.
We recommend enabling the attribute `name-as-tags` as it makes the metrics name independent on the cache name.
To configure metrics in the {jdgserver_name} server, just enabled as shown in the XML below. To configure metrics in the {jdgserver_name} server, just enabled as shown in the XML below.
@ -11,7 +10,7 @@ To configure metrics in the {jdgserver_name} server, just enabled as shown in th
---- ----
<infinispan> <infinispan>
<cache-container statistics="true"> <cache-container statistics="true">
<metrics gauges="true" histograms="false" name-as-tags="true" /> <metrics gauges="true" histograms="false" />
</cache-container> </cache-container>
</infinispan> </infinispan>
---- ----

View File

@ -241,8 +241,8 @@ public class DefaultCacheEmbeddedConfigProviderFactory implements CacheEmbeddedC
.meterRegistry(Metrics.globalRegistry); .meterRegistry(Metrics.globalRegistry);
builder.cacheContainer().statistics(true); builder.cacheContainer().statistics(true);
builder.metrics() builder.metrics()
.namesAsTags(true) .histograms(keycloakConfig.getBoolean(HISTOGRAMS, Boolean.FALSE))
.histograms(keycloakConfig.getBoolean(HISTOGRAMS, Boolean.FALSE)); .legacy(true);
holder.getNamedConfigurationBuilders() holder.getNamedConfigurationBuilders()
.values() .values()
.stream() .stream()

View File

@ -92,8 +92,8 @@
<hibernate-orm.plugin.version>6.2.13.Final</hibernate-orm.plugin.version> <hibernate-orm.plugin.version>6.2.13.Final</hibernate-orm.plugin.version>
<hibernate.c3p0.version>6.2.13.Final</hibernate.c3p0.version> <hibernate.c3p0.version>6.2.13.Final</hibernate.c3p0.version>
<hibernate-validator.version>9.0.1.Final</hibernate-validator.version> <hibernate-validator.version>9.0.1.Final</hibernate-validator.version>
<infinispan.version>16.0.2</infinispan.version> <infinispan.version>16.0.5</infinispan.version>
<protostream.version>6.0.2</protostream.version> <!-- For the annotation processor: keep in sync with the version shipped with Infinispan --> <protostream.version>6.0.3</protostream.version> <!-- For the annotation processor: keep in sync with the version shipped with Infinispan -->
<protostream.plugin.version>${protostream.version}</protostream.plugin.version> <protostream.plugin.version>${protostream.version}</protostream.plugin.version>
<!--JAKARTA--> <!--JAKARTA-->

View File

@ -27,7 +27,6 @@ import org.keycloak.testframework.clustering.LoadBalancer;
import org.keycloak.testframework.infinispan.CacheType; import org.keycloak.testframework.infinispan.CacheType;
import org.keycloak.testframework.logging.JBossLogConsumer; import org.keycloak.testframework.logging.JBossLogConsumer;
import org.infinispan.testcontainers.CountdownLatchLoggingConsumer;
import org.jboss.logging.Logger; import org.jboss.logging.Logger;
import org.testcontainers.images.RemoteDockerImage; import org.testcontainers.images.RemoteDockerImage;
import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.DockerImageName;

View File

@ -0,0 +1,34 @@
package org.keycloak.testframework.server;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.regex.Pattern;
import org.testcontainers.containers.output.BaseConsumer;
import org.testcontainers.containers.output.OutputFrame;
class CountdownLatchLoggingConsumer extends BaseConsumer<CountdownLatchLoggingConsumer> {
private final CountDownLatch latch;
private final Pattern pattern;
public CountdownLatchLoggingConsumer(int count, String regex) {
this.latch = new CountDownLatch(count);
this.pattern = Pattern.compile(regex, Pattern.DOTALL);
}
@Override
public void accept(OutputFrame outputFrame) {
String log = outputFrame.getUtf8String();
if (pattern.matcher(log).matches()) {
latch.countDown();
}
}
public void await(long timeout, TimeUnit unit) throws InterruptedException, TimeoutException {
if (!latch.await(timeout, unit)) {
throw new TimeoutException(String.format("After the await period %d %s the count down should be 0 and is %d", timeout, unit, latch.getCount()));
}
}
}