Make event metrics supported (#37391)

* Make event metrics supported

Closes #37389

Signed-off-by: Michal Hajas <mhajas@redhat.com>

* Address comments from reviews

Signed-off-by: Michal Hajas <mhajas@redhat.com>

---------

Signed-off-by: Michal Hajas <mhajas@redhat.com>
This commit is contained in:
Michal Hajas
2025-02-19 12:20:15 +01:00
committed by GitHub
parent 4c172d99d2
commit 8cd97ddb21
12 changed files with 60 additions and 61 deletions

View File

@@ -129,7 +129,7 @@ public class Profile {
CACHE_EMBEDDED_REMOTE_STORE("Support for remote-store in embedded Infinispan caches", Type.EXPERIMENTAL),
USER_EVENT_METRICS("Collect metrics based on user events", Type.PREVIEW),
USER_EVENT_METRICS("Collect metrics based on user events", Type.DEFAULT),
IPA_TUURA_FEDERATION("IPA-Tuura user federation provider", Type.EXPERIMENTAL),

View File

@@ -6,7 +6,6 @@
<@tmpl.guide
title="Enabling {project_name} Event Metrics"
summary="Learn how to enable and use {project_name} Event Metrics"
preview="true"
includedOptions="metrics-enabled event-metrics-user-*">
Event metrics can provide admins an overview of the different activities in a {project_name} instance.
@@ -21,11 +20,11 @@ If you have multiple instances running in a cluster, you will need to collect th
== Enable event metrics
To start collecting metrics, enable the feature `user-event-metrics`, enable metrics, and enable the metrics for user events.
To start collecting event metrics, enable metrics and enable the metrics for user events.
The following shows the required startup parameters:
<@kc.start parameters="--features=user-event-metrics --metrics-enabled=true --event-metrics-user-enabled=true ..."/>
<@kc.start parameters="--metrics-enabled=true --event-metrics-user-enabled=true ..."/>
By default, there is a separate metric for each realm.
To break down the metric by client and identity provider, you can add those metrics dimension using the configuration option `event-metrics-user-tags`.

View File

@@ -21,7 +21,7 @@ public class EventOptions {
public static final Option<List<String>> USER_EVENT_METRICS_EVENTS = OptionBuilder.listOptionBuilder("event-metrics-user-events", String.class)
.category(OptionCategory.EVENTS)
.description("Comma-separated list of events to be collected for user event metrics. Reduce the number of metrics. If empty or not set, all events create a metric.")
.description("Comma-separated list of events to be collected for user event metrics. This option can be used to reduce the number of metrics created as by default all user events create a metric.")
.buildTime(false)
.expectedValues(sortedListOfEvents())
.deprecatedMetadata(DeprecatedMetadata.deprecateValues("Use `remove_credential` instead of `remove_totp`, and `update_credential` instead of `update_totp` and `update_password`.", "remove_totp", "update_totp", "update_password"))

View File

@@ -16,7 +16,7 @@ public enum OptionCategory {
VAULT("Vault", 100, ConfigSupportLevel.SUPPORTED),
LOGGING("Logging", 110, ConfigSupportLevel.SUPPORTED),
TRACING("Tracing", 111, ConfigSupportLevel.SUPPORTED),
EVENTS("Events", 112, ConfigSupportLevel.PREVIEW),
EVENTS("Events", 112, ConfigSupportLevel.SUPPORTED),
TRUSTSTORE("Truststore", 115, ConfigSupportLevel.SUPPORTED),
SECURITY("Security", 120, ConfigSupportLevel.SUPPORTED),
EXPORT("Export", 130, ConfigSupportLevel.SUPPORTED),

View File

@@ -190,7 +190,7 @@ public class HelpCommandDistTest {
// normalize the output to prevent changes around the feature toggles or events to mark the output to differ
String output = cliResult.getOutput()
.replaceAll("((Disables|Enables) a set of one or more features. Possible values are: )[^.]{30,}", "$1<...>")
.replaceAll("(create a metric. Possible values are:)[^.]{30,}.(Available|only|when|user|event|metrics|are|enabled.| )*", "$1<...>");
.replaceAll("(create a metric.\\s+Possible values are:)[^.]{30,}.(Available|only|when|user|event|metrics|are|enabled.| )*", "$1<...>");
String osName = System.getProperty("os.name");
if(osName.toLowerCase(Locale.ROOT).contains("windows")) {

View File

@@ -266,18 +266,18 @@ Tracing:
the 'tracing-resource-attributes' property. Default: keycloak. Available
only when Tracing is enabled.
Events (Preview):
Events:
--event-metrics-user-enabled <true|false>
Preview: Create metrics based on user events. Default: false. Available only
when metrics are enabled and feature user-event-metrics is enabled.
Create metrics based on user events. Default: false. Available only when
metrics are enabled and feature user-event-metrics is enabled.
--event-metrics-user-events <events>
Preview: Comma-separated list of events to be collected for user event
metrics. Reduce the number of metrics. If empty or not set, all events
create a metric. Possible values are:<...>
Comma-separated list of events to be collected for user event metrics. This
option can be used to reduce the number of metrics created as by default all
user events create a metric. Possible values are:<...>
--event-metrics-user-tags <tags>
Preview: Comma-separated list of tags to be collected for user event metrics.
By default only 'realm' is enabled to avoid a high metrics cardinality.
Comma-separated list of tags to be collected for user event metrics. By
default only 'realm' is enabled to avoid a high metrics cardinality.
Possible values are: realm, idp, clientId. Default: realm. Available only
when user event metrics are enabled.

View File

@@ -266,18 +266,18 @@ Tracing:
the 'tracing-resource-attributes' property. Default: keycloak. Available
only when Tracing is enabled.
Events (Preview):
Events:
--event-metrics-user-enabled <true|false>
Preview: Create metrics based on user events. Default: false. Available only
when metrics are enabled and feature user-event-metrics is enabled.
Create metrics based on user events. Default: false. Available only when
metrics are enabled and feature user-event-metrics is enabled.
--event-metrics-user-events <events>
Preview: Comma-separated list of events to be collected for user event
metrics. Reduce the number of metrics. If empty or not set, all events
create a metric. Possible values are:<...>
Comma-separated list of events to be collected for user event metrics. This
option can be used to reduce the number of metrics created as by default all
user events create a metric. Possible values are:<...>
--event-metrics-user-tags <tags>
Preview: Comma-separated list of tags to be collected for user event metrics.
By default only 'realm' is enabled to avoid a high metrics cardinality.
Comma-separated list of tags to be collected for user event metrics. By
default only 'realm' is enabled to avoid a high metrics cardinality.
Possible values are: realm, idp, clientId. Default: realm. Available only
when user event metrics are enabled.

View File

@@ -473,18 +473,18 @@ Tracing:
the 'tracing-resource-attributes' property. Default: keycloak. Available
only when Tracing is enabled.
Events (Preview):
Events:
--event-metrics-user-enabled <true|false>
Preview: Create metrics based on user events. Default: false. Available only
when metrics are enabled and feature user-event-metrics is enabled.
Create metrics based on user events. Default: false. Available only when
metrics are enabled and feature user-event-metrics is enabled.
--event-metrics-user-events <events>
Preview: Comma-separated list of events to be collected for user event
metrics. Reduce the number of metrics. If empty or not set, all events
create a metric. Possible values are:<...>
Comma-separated list of events to be collected for user event metrics. This
option can be used to reduce the number of metrics created as by default all
user events create a metric. Possible values are:<...>
--event-metrics-user-tags <tags>
Preview: Comma-separated list of tags to be collected for user event metrics.
By default only 'realm' is enabled to avoid a high metrics cardinality.
Comma-separated list of tags to be collected for user event metrics. By
default only 'realm' is enabled to avoid a high metrics cardinality.
Possible values are: realm, idp, clientId. Default: realm. Available only
when user event metrics are enabled.

View File

@@ -474,18 +474,18 @@ Tracing:
the 'tracing-resource-attributes' property. Default: keycloak. Available
only when Tracing is enabled.
Events (Preview):
Events:
--event-metrics-user-enabled <true|false>
Preview: Create metrics based on user events. Default: false. Available only
when metrics are enabled and feature user-event-metrics is enabled.
Create metrics based on user events. Default: false. Available only when
metrics are enabled and feature user-event-metrics is enabled.
--event-metrics-user-events <events>
Preview: Comma-separated list of events to be collected for user event
metrics. Reduce the number of metrics. If empty or not set, all events
create a metric. Possible values are:<...>
Comma-separated list of events to be collected for user event metrics. This
option can be used to reduce the number of metrics created as by default all
user events create a metric. Possible values are:<...>
--event-metrics-user-tags <tags>
Preview: Comma-separated list of tags to be collected for user event metrics.
By default only 'realm' is enabled to avoid a high metrics cardinality.
Comma-separated list of tags to be collected for user event metrics. By
default only 'realm' is enabled to avoid a high metrics cardinality.
Possible values are: realm, idp, clientId. Default: realm. Available only
when user event metrics are enabled.

View File

@@ -412,15 +412,15 @@ Tracing:
the 'tracing-resource-attributes' property. Default: keycloak. Available
only when Tracing is enabled.
Events (Preview):
Events:
--event-metrics-user-events <events>
Preview: Comma-separated list of events to be collected for user event
metrics. Reduce the number of metrics. If empty or not set, all events
create a metric. Possible values are:<...>
Comma-separated list of events to be collected for user event metrics. This
option can be used to reduce the number of metrics created as by default all
user events create a metric. Possible values are:<...>
--event-metrics-user-tags <tags>
Preview: Comma-separated list of tags to be collected for user event metrics.
By default only 'realm' is enabled to avoid a high metrics cardinality.
Comma-separated list of tags to be collected for user event metrics. By
default only 'realm' is enabled to avoid a high metrics cardinality.
Possible values are: realm, idp, clientId. Default: realm. Available only
when user event metrics are enabled.

View File

@@ -473,18 +473,18 @@ Tracing:
the 'tracing-resource-attributes' property. Default: keycloak. Available
only when Tracing is enabled.
Events (Preview):
Events:
--event-metrics-user-enabled <true|false>
Preview: Create metrics based on user events. Default: false. Available only
when metrics are enabled and feature user-event-metrics is enabled.
Create metrics based on user events. Default: false. Available only when
metrics are enabled and feature user-event-metrics is enabled.
--event-metrics-user-events <events>
Preview: Comma-separated list of events to be collected for user event
metrics. Reduce the number of metrics. If empty or not set, all events
create a metric. Possible values are:<...>
Comma-separated list of events to be collected for user event metrics. This
option can be used to reduce the number of metrics created as by default all
user events create a metric. Possible values are:<...>
--event-metrics-user-tags <tags>
Preview: Comma-separated list of tags to be collected for user event metrics.
By default only 'realm' is enabled to avoid a high metrics cardinality.
Comma-separated list of tags to be collected for user event metrics. By
default only 'realm' is enabled to avoid a high metrics cardinality.
Possible values are: realm, idp, clientId. Default: realm. Available only
when user event metrics are enabled.

View File

@@ -471,18 +471,18 @@ Tracing:
the 'tracing-resource-attributes' property. Default: keycloak. Available
only when Tracing is enabled.
Events (Preview):
Events:
--event-metrics-user-enabled <true|false>
Preview: Create metrics based on user events. Default: false. Available only
when metrics are enabled and feature user-event-metrics is enabled.
Create metrics based on user events. Default: false. Available only when
metrics are enabled and feature user-event-metrics is enabled.
--event-metrics-user-events <events>
Preview: Comma-separated list of events to be collected for user event
metrics. Reduce the number of metrics. If empty or not set, all events
create a metric. Possible values are:<...>
Comma-separated list of events to be collected for user event metrics. This
option can be used to reduce the number of metrics created as by default all
user events create a metric. Possible values are:<...>
--event-metrics-user-tags <tags>
Preview: Comma-separated list of tags to be collected for user event metrics.
By default only 'realm' is enabled to avoid a high metrics cardinality.
Comma-separated list of tags to be collected for user event metrics. By
default only 'realm' is enabled to avoid a high metrics cardinality.
Possible values are: realm, idp, clientId. Default: realm. Available only
when user event metrics are enabled.