Change default value for replaceIds
This commit is contained in:
parent
5fbeb49a61
commit
b7563632d0
7 changed files with 21 additions and 22 deletions
|
@ -57,7 +57,7 @@ keycloak_event_admin_total{error="",operation="CREATE",realm="9039a0b5-e8c9-437a
|
||||||
|
|
||||||
### `KC_METRICS_EVENT_REPLACE_IDS`
|
### `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)
|
* [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)
|
||||||
|
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
<groupId>io.kokuwa.keycloak</groupId>
|
<groupId>io.kokuwa.keycloak</groupId>
|
||||||
<artifactId>keycloak-event-metrics</artifactId>
|
<artifactId>keycloak-event-metrics</artifactId>
|
||||||
<version>0.2.2-SNAPSHOT</version>
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
|
|
||||||
<name>Keycloak Metrics</name>
|
<name>Keycloak Metrics</name>
|
||||||
<description>Provides metrics for Keycloak user/admin events</description>
|
<description>Provides metrics for Keycloak user/admin events</description>
|
||||||
|
|
|
@ -17,23 +17,23 @@ import io.micrometer.core.instrument.MeterRegistry;
|
||||||
*
|
*
|
||||||
* @author Stephan Schnabel
|
* @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 MeterRegistry registry;
|
||||||
|
private final boolean replaceIds;
|
||||||
private final KeycloakSession session;
|
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.registry = registry;
|
||||||
|
this.replaceIds = replaceIds;
|
||||||
this.session = session;
|
this.session = session;
|
||||||
this.replace = replaceId;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEvent(Event event) {
|
public void onEvent(Event event) {
|
||||||
registry.counter("keycloak_event_user",
|
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()),
|
"type", toBlank(event.getType()),
|
||||||
"client", toBlank(event.getClientId()),
|
"client", toBlank(event.getClientId()),
|
||||||
"error", toBlank(event.getError()))
|
"error", toBlank(event.getError()))
|
||||||
|
@ -43,7 +43,7 @@ public class MicrometerEventListener implements EventListenerProvider, AutoClose
|
||||||
@Override
|
@Override
|
||||||
public void onEvent(AdminEvent event, boolean includeRepresentation) {
|
public void onEvent(AdminEvent event, boolean includeRepresentation) {
|
||||||
registry.counter("keycloak_event_admin",
|
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()),
|
"resource", toBlank(event.getResourceType()),
|
||||||
"operation", toBlank(event.getOperationType()),
|
"operation", toBlank(event.getOperationType()),
|
||||||
"error", toBlank(event.getError()))
|
"error", toBlank(event.getError()))
|
|
@ -12,15 +12,15 @@ import org.keycloak.models.KeycloakSessionFactory;
|
||||||
import io.micrometer.core.instrument.MeterRegistry;
|
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
|
* @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 MeterRegistry registry;
|
||||||
private boolean replace;
|
private boolean replaceIds;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getId() {
|
public String getId() {
|
||||||
|
@ -29,8 +29,8 @@ public class MicrometerEventListenerFactory implements EventListenerProviderFact
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init(Scope config) {
|
public void init(Scope config) {
|
||||||
replace = "true".equals(System.getenv("KC_METRICS_EVENT_REPLACE_IDS"));
|
replaceIds = "true".equals(System.getenv().getOrDefault("KC_METRICS_EVENT_REPLACE_IDS", "true"));
|
||||||
log.info(replace ? "Configured with model names." : "Configured with model ids.");
|
log.info(replaceIds ? "Configured with model names." : "Configured with model ids.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -40,7 +40,7 @@ public class MicrometerEventListenerFactory implements EventListenerProviderFact
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EventListenerProvider create(KeycloakSession session) {
|
public EventListenerProvider create(KeycloakSession session) {
|
||||||
return new MicrometerEventListener(registry, session, replace);
|
return new MetricsEventListener(registry, replaceIds, session);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
|
@ -1 +1 @@
|
||||||
io.kokuwa.keycloak.metrics.MicrometerEventListenerFactory
|
io.kokuwa.keycloak.metrics.MetricsEventListenerFactory
|
||||||
|
|
|
@ -35,12 +35,12 @@ import io.micrometer.core.instrument.Counter;
|
||||||
import io.micrometer.core.instrument.MeterRegistry;
|
import io.micrometer.core.instrument.MeterRegistry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test for {@link MicrometerEventListener} with Mockito.
|
* Test for {@link MetricsEventListener} with Mockito.
|
||||||
*
|
*
|
||||||
* @author Stephan Schnabel
|
* @author Stephan Schnabel
|
||||||
*/
|
*/
|
||||||
@ExtendWith(MockitoExtension.class)
|
@ExtendWith(MockitoExtension.class)
|
||||||
public class MicrometerEventListenerTest {
|
public class MetricsEventListenerTest {
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
KeycloakSession session;
|
KeycloakSession session;
|
||||||
|
@ -378,8 +378,8 @@ public class MicrometerEventListenerTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private MicrometerEventListener listener(boolean replace) {
|
private MetricsEventListener listener(boolean replaceIds) {
|
||||||
return new MicrometerEventListener(registry, session, replace);
|
return new MetricsEventListener(registry, replaceIds, session);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void assertCounter(String metric, Map<String, String> tags) {
|
private void assertCounter(String metric, Map<String, String> tags) {
|
|
@ -60,7 +60,6 @@ public class KeycloakExtension implements BeforeAllCallback, ParameterResolver {
|
||||||
.withEnv("KC_LOG_CONSOLE_COLOR", "true")
|
.withEnv("KC_LOG_CONSOLE_COLOR", "true")
|
||||||
.withEnv("KC_HEALTH_ENABLED", "true")
|
.withEnv("KC_HEALTH_ENABLED", "true")
|
||||||
.withEnv("KC_METRICS_ENABLED", "true")
|
.withEnv("KC_METRICS_ENABLED", "true")
|
||||||
.withEnv("KC_METRICS_EVENT_REPLACE_IDS", "true")
|
|
||||||
.withCopyFileToContainer(MountableFile.forHostPath(jar), "/opt/keycloak/providers/metrics.jar")
|
.withCopyFileToContainer(MountableFile.forHostPath(jar), "/opt/keycloak/providers/metrics.jar")
|
||||||
.withLogConsumer(out -> System.out.print(out.getUtf8String()))
|
.withLogConsumer(out -> System.out.print(out.getUtf8String()))
|
||||||
.withExposedPorts(8080)
|
.withExposedPorts(8080)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue