Ignore Health and Metrics artifacts (#22438)
Closes #22437 Signed-off-by: Martin Bartoš <mabartos@redhat.com>
This commit is contained in:
parent
f78c54fa42
commit
0a95159e07
3 changed files with 69 additions and 2 deletions
|
@ -21,10 +21,15 @@ import org.keycloak.config.database.Database;
|
|||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
|
||||
import org.keycloak.config.HealthOptions;
|
||||
import org.keycloak.config.MetricsOptions;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static java.util.Collections.emptySet;
|
||||
import static org.keycloak.quarkus.runtime.Environment.getCurrentOrCreateFeatureProfile;
|
||||
|
||||
/**
|
||||
|
@ -35,7 +40,9 @@ public class IgnoredArtifacts {
|
|||
public static Set<String> getDefaultIgnoredArtifacts() {
|
||||
return Stream.of(
|
||||
fips(),
|
||||
jdbcDrivers()
|
||||
jdbcDrivers(),
|
||||
health(),
|
||||
metrics()
|
||||
)
|
||||
.flatMap(Collection::stream)
|
||||
.collect(Collectors.toUnmodifiableSet());
|
||||
|
@ -130,4 +137,32 @@ public class IgnoredArtifacts {
|
|||
allJdbcDrivers.removeAll(jdbcArtifacts);
|
||||
return allJdbcDrivers;
|
||||
}
|
||||
|
||||
// Health
|
||||
public static final Set<String> HEALTH = Set.of(
|
||||
"io.quarkus:quarkus-smallrye-health",
|
||||
"io.quarkus:quarkus-smallrye-health-deployment"
|
||||
);
|
||||
|
||||
private static Set<String> health() {
|
||||
boolean isHealthEnabled = Configuration.getOptionalBooleanValue(
|
||||
MicroProfileConfigProvider.NS_KEYCLOAK_PREFIX + HealthOptions.HEALTH_ENABLED.getKey()).orElse(false);
|
||||
|
||||
return !isHealthEnabled ? HEALTH : emptySet();
|
||||
}
|
||||
|
||||
// Metrics
|
||||
public static Set<String> METRICS = Set.of(
|
||||
"io.quarkus:quarkus-micrometer",
|
||||
"io.quarkus:quarkus-micrometer-deployment",
|
||||
"io.quarkus:quarkus-micrometer-registry-prometheus",
|
||||
"io.quarkus:quarkus-micrometer-registry-prometheus-deployment"
|
||||
);
|
||||
|
||||
private static Set<String> metrics() {
|
||||
boolean isMetricsEnabled = Configuration.getOptionalBooleanValue(
|
||||
MicroProfileConfigProvider.NS_KEYCLOAK_PREFIX + MetricsOptions.METRICS_ENABLED.getKey()).orElse(false);
|
||||
|
||||
return !isMetricsEnabled ? METRICS : emptySet();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ quarkus.datasource.health.enabled=false
|
|||
quarkus.micrometer.binder.http-server.enabled=false
|
||||
|
||||
# Enables metrics from other extensions if metrics is enabled
|
||||
quarkus.datasource.metrics.enabled=${quarkus.micrometer.enabled}
|
||||
quarkus.datasource.metrics.enabled=${quarkus.micrometer.enabled:false}
|
||||
|
||||
# Default transaction timeout
|
||||
quarkus.transaction-manager.default-transaction-timeout=300
|
||||
|
|
|
@ -22,6 +22,8 @@ import org.junit.Test;
|
|||
import org.keycloak.common.Profile;
|
||||
import org.keycloak.common.profile.PropertiesProfileConfigResolver;
|
||||
import org.keycloak.config.DatabaseOptions;
|
||||
import org.keycloak.config.HealthOptions;
|
||||
import org.keycloak.config.MetricsOptions;
|
||||
import org.keycloak.quarkus.runtime.configuration.IgnoredArtifacts;
|
||||
import org.keycloak.quarkus.runtime.configuration.MicroProfileConfigProvider;
|
||||
|
||||
|
@ -109,4 +111,34 @@ public class IgnoredArtifactsTest {
|
|||
System.setProperty(MicroProfileConfigProvider.NS_KEYCLOAK_PREFIX + DatabaseOptions.DB.getKey(), "");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void health() {
|
||||
var ignoredArtifacts = IgnoredArtifacts.getDefaultIgnoredArtifacts();
|
||||
// Health disabled by default
|
||||
assertThat(ignoredArtifacts.containsAll(IgnoredArtifacts.HEALTH), is(true));
|
||||
|
||||
System.setProperty(MicroProfileConfigProvider.NS_KEYCLOAK_PREFIX + HealthOptions.HEALTH_ENABLED.getKey(), "true");
|
||||
try {
|
||||
final var artifacts = IgnoredArtifacts.getDefaultIgnoredArtifacts();
|
||||
assertThat(artifacts.containsAll(IgnoredArtifacts.HEALTH), is(false));
|
||||
} finally {
|
||||
System.setProperty(MicroProfileConfigProvider.NS_KEYCLOAK_PREFIX + HealthOptions.HEALTH_ENABLED.getKey(), "");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void metrics() {
|
||||
var ignoredArtifacts = IgnoredArtifacts.getDefaultIgnoredArtifacts();
|
||||
// Metrics disabled by default
|
||||
assertThat(ignoredArtifacts.containsAll(IgnoredArtifacts.METRICS), is(true));
|
||||
|
||||
System.setProperty(MicroProfileConfigProvider.NS_KEYCLOAK_PREFIX + MetricsOptions.METRICS_ENABLED.getKey(), "true");
|
||||
try {
|
||||
final var artifacts = IgnoredArtifacts.getDefaultIgnoredArtifacts();
|
||||
assertThat(artifacts.containsAll(IgnoredArtifacts.METRICS), is(false));
|
||||
} finally {
|
||||
System.setProperty(MicroProfileConfigProvider.NS_KEYCLOAK_PREFIX + HealthOptions.HEALTH_ENABLED.getKey(), "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue