From b7563632d01c9769669aed8fd64c34b7361f8aae Mon Sep 17 00:00:00 2001 From: Stephan Schnabel Date: Mon, 24 Apr 2023 14:45:20 +0200 Subject: [PATCH] Change default value for replaceIds --- README.md | 2 +- pom.xml | 2 +- ...ventListener.java => MetricsEventListener.java} | 14 +++++++------- ...ctory.java => MetricsEventListenerFactory.java} | 14 +++++++------- ...rg.keycloak.events.EventListenerProviderFactory | 2 +- ...enerTest.java => MetricsEventListenerTest.java} | 8 ++++---- .../keycloak/metrics/junit/KeycloakExtension.java | 1 - 7 files changed, 21 insertions(+), 22 deletions(-) rename src/main/java/io/kokuwa/keycloak/metrics/{MicrometerEventListener.java => MetricsEventListener.java} (77%) rename src/main/java/io/kokuwa/keycloak/metrics/{MicrometerEventListenerFactory.java => MetricsEventListenerFactory.java} (61%) rename src/test/java/io/kokuwa/keycloak/metrics/{MicrometerEventListenerTest.java => MetricsEventListenerTest.java} (98%) diff --git a/README.md b/README.md index 6bddad3..9b1f341 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ keycloak_event_admin_total{error="",operation="CREATE",realm="9039a0b5-e8c9-437a ### `KC_METRICS_EVENT_REPLACE_IDS` -If set to `true` than replace model ids with names: +Per set to `true` (the default value) than replace model ids with names: * [RealmModel#getId()](https://github.com/keycloak/keycloak/blob/main/server-spi/src/main/java/org/keycloak/models/RealmModel.java#L82) with [RealmModel#getName()](https://github.com/keycloak/keycloak/blob/main/server-spi/src/main/java/org/keycloak/models/RealmModel.java#L84) diff --git a/pom.xml b/pom.xml index 28140b1..999fb8a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ io.kokuwa.keycloak keycloak-event-metrics - 0.2.2-SNAPSHOT + 1.0.0-SNAPSHOT Keycloak Metrics Provides metrics for Keycloak user/admin events diff --git a/src/main/java/io/kokuwa/keycloak/metrics/MicrometerEventListener.java b/src/main/java/io/kokuwa/keycloak/metrics/MetricsEventListener.java similarity index 77% rename from src/main/java/io/kokuwa/keycloak/metrics/MicrometerEventListener.java rename to src/main/java/io/kokuwa/keycloak/metrics/MetricsEventListener.java index 7a83b3f..ea811fb 100644 --- a/src/main/java/io/kokuwa/keycloak/metrics/MicrometerEventListener.java +++ b/src/main/java/io/kokuwa/keycloak/metrics/MetricsEventListener.java @@ -17,23 +17,23 @@ import io.micrometer.core.instrument.MeterRegistry; * * @author Stephan Schnabel */ -public class MicrometerEventListener implements EventListenerProvider, AutoCloseable { +public class MetricsEventListener implements EventListenerProvider, AutoCloseable { - private static final Logger log = Logger.getLogger(MicrometerEventListener.class); + private static final Logger log = Logger.getLogger(MetricsEventListener.class); private final MeterRegistry registry; + private final boolean replaceIds; private final KeycloakSession session; - private final boolean replace; - MicrometerEventListener(MeterRegistry registry, KeycloakSession session, boolean replaceId) { + MetricsEventListener(MeterRegistry registry, boolean replaceIds, KeycloakSession session) { this.registry = registry; + this.replaceIds = replaceIds; this.session = session; - this.replace = replaceId; } @Override public void onEvent(Event event) { registry.counter("keycloak_event_user", - "realm", toBlank(replace ? getRealmName(event.getRealmId()) : event.getRealmId()), + "realm", toBlank(replaceIds ? getRealmName(event.getRealmId()) : event.getRealmId()), "type", toBlank(event.getType()), "client", toBlank(event.getClientId()), "error", toBlank(event.getError())) @@ -43,7 +43,7 @@ public class MicrometerEventListener implements EventListenerProvider, AutoClose @Override public void onEvent(AdminEvent event, boolean includeRepresentation) { registry.counter("keycloak_event_admin", - "realm", toBlank(replace ? getRealmName(event.getRealmId()) : event.getRealmId()), + "realm", toBlank(replaceIds ? getRealmName(event.getRealmId()) : event.getRealmId()), "resource", toBlank(event.getResourceType()), "operation", toBlank(event.getOperationType()), "error", toBlank(event.getError())) diff --git a/src/main/java/io/kokuwa/keycloak/metrics/MicrometerEventListenerFactory.java b/src/main/java/io/kokuwa/keycloak/metrics/MetricsEventListenerFactory.java similarity index 61% rename from src/main/java/io/kokuwa/keycloak/metrics/MicrometerEventListenerFactory.java rename to src/main/java/io/kokuwa/keycloak/metrics/MetricsEventListenerFactory.java index 8553df6..3804d21 100644 --- a/src/main/java/io/kokuwa/keycloak/metrics/MicrometerEventListenerFactory.java +++ b/src/main/java/io/kokuwa/keycloak/metrics/MetricsEventListenerFactory.java @@ -12,15 +12,15 @@ import org.keycloak.models.KeycloakSessionFactory; import io.micrometer.core.instrument.MeterRegistry; /** - * Factory for {@link MicrometerEventListener}, uses {@link MeterRegistry} from CDI. + * Factory for {@link MetricsEventListener}, uses {@link MeterRegistry} from CDI. * * @author Stephan Schnabel */ -public class MicrometerEventListenerFactory implements EventListenerProviderFactory { +public class MetricsEventListenerFactory implements EventListenerProviderFactory { - private static final Logger log = Logger.getLogger(MicrometerEventListener.class); + private static final Logger log = Logger.getLogger(MetricsEventListenerFactory.class); private MeterRegistry registry; - private boolean replace; + private boolean replaceIds; @Override public String getId() { @@ -29,8 +29,8 @@ public class MicrometerEventListenerFactory implements EventListenerProviderFact @Override public void init(Scope config) { - replace = "true".equals(System.getenv("KC_METRICS_EVENT_REPLACE_IDS")); - log.info(replace ? "Configured with model names." : "Configured with model ids."); + replaceIds = "true".equals(System.getenv().getOrDefault("KC_METRICS_EVENT_REPLACE_IDS", "true")); + log.info(replaceIds ? "Configured with model names." : "Configured with model ids."); } @Override @@ -40,7 +40,7 @@ public class MicrometerEventListenerFactory implements EventListenerProviderFact @Override public EventListenerProvider create(KeycloakSession session) { - return new MicrometerEventListener(registry, session, replace); + return new MetricsEventListener(registry, replaceIds, session); } @Override diff --git a/src/main/resources/META-INF/services/org.keycloak.events.EventListenerProviderFactory b/src/main/resources/META-INF/services/org.keycloak.events.EventListenerProviderFactory index a54f10d..6fca1e1 100644 --- a/src/main/resources/META-INF/services/org.keycloak.events.EventListenerProviderFactory +++ b/src/main/resources/META-INF/services/org.keycloak.events.EventListenerProviderFactory @@ -1 +1 @@ -io.kokuwa.keycloak.metrics.MicrometerEventListenerFactory +io.kokuwa.keycloak.metrics.MetricsEventListenerFactory diff --git a/src/test/java/io/kokuwa/keycloak/metrics/MicrometerEventListenerTest.java b/src/test/java/io/kokuwa/keycloak/metrics/MetricsEventListenerTest.java similarity index 98% rename from src/test/java/io/kokuwa/keycloak/metrics/MicrometerEventListenerTest.java rename to src/test/java/io/kokuwa/keycloak/metrics/MetricsEventListenerTest.java index 5d358c5..2abb9ea 100644 --- a/src/test/java/io/kokuwa/keycloak/metrics/MicrometerEventListenerTest.java +++ b/src/test/java/io/kokuwa/keycloak/metrics/MetricsEventListenerTest.java @@ -35,12 +35,12 @@ import io.micrometer.core.instrument.Counter; import io.micrometer.core.instrument.MeterRegistry; /** - * Test for {@link MicrometerEventListener} with Mockito. + * Test for {@link MetricsEventListener} with Mockito. * * @author Stephan Schnabel */ @ExtendWith(MockitoExtension.class) -public class MicrometerEventListenerTest { +public class MetricsEventListenerTest { @Mock KeycloakSession session; @@ -378,8 +378,8 @@ public class MicrometerEventListenerTest { } } - private MicrometerEventListener listener(boolean replace) { - return new MicrometerEventListener(registry, session, replace); + private MetricsEventListener listener(boolean replaceIds) { + return new MetricsEventListener(registry, replaceIds, session); } private void assertCounter(String metric, Map tags) { diff --git a/src/test/java/io/kokuwa/keycloak/metrics/junit/KeycloakExtension.java b/src/test/java/io/kokuwa/keycloak/metrics/junit/KeycloakExtension.java index 892eceb..31ffe6c 100644 --- a/src/test/java/io/kokuwa/keycloak/metrics/junit/KeycloakExtension.java +++ b/src/test/java/io/kokuwa/keycloak/metrics/junit/KeycloakExtension.java @@ -60,7 +60,6 @@ public class KeycloakExtension implements BeforeAllCallback, ParameterResolver { .withEnv("KC_LOG_CONSOLE_COLOR", "true") .withEnv("KC_HEALTH_ENABLED", "true") .withEnv("KC_METRICS_ENABLED", "true") - .withEnv("KC_METRICS_EVENT_REPLACE_IDS", "true") .withCopyFileToContainer(MountableFile.forHostPath(jar), "/opt/keycloak/providers/metrics.jar") .withLogConsumer(out -> System.out.print(out.getUtf8String())) .withExposedPorts(8080)