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`
|
||||
|
||||
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)
|
||||
|
||||
|
|
2
pom.xml
2
pom.xml
|
@ -4,7 +4,7 @@
|
|||
|
||||
<groupId>io.kokuwa.keycloak</groupId>
|
||||
<artifactId>keycloak-event-metrics</artifactId>
|
||||
<version>0.2.2-SNAPSHOT</version>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
|
||||
<name>Keycloak Metrics</name>
|
||||
<description>Provides metrics for Keycloak user/admin events</description>
|
||||
|
|
|
@ -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()))
|
|
@ -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
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* 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<String, String> tags) {
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue