mirror of
https://github.com/keycloak/keycloak.git
synced 2026-01-07 14:02:04 -03:30
[OTel] Micrometer to OpenTelemetry bridge support for metrics (#41716)
* [OTel] Micrometer to OpenTelemetry bridge support for metrics Closes #41006 Signed-off-by: Martin Bartoš <mabartos@redhat.com> * Review: Docs rewording Signed-off-by: Ryan Emerson <remerson@ibm.com> * Review: Make TELEMETRY Option descriptions consistently use OpenTelemetry to reflect pattern established by telemetry-enabled, telemetry-endpoint etc Signed-off-by: Ryan Emerson <remerson@ibm.com> --------- Signed-off-by: Martin Bartoš <mabartos@redhat.com> Signed-off-by: Ryan Emerson <remerson@ibm.com> Co-authored-by: Ryan Emerson <remerson@ibm.com>
This commit is contained in:
parent
92849ef5d3
commit
548a89c823
@ -131,6 +131,7 @@ public class Profile {
|
||||
|
||||
OPENTELEMETRY("OpenTelemetry support", Type.DEFAULT),
|
||||
OPENTELEMETRY_LOGS("OpenTelemetry Logs support", Type.PREVIEW, OPENTELEMETRY),
|
||||
OPENTELEMETRY_METRICS("Micrometer to OpenTelemetry bridge support for metrics", Type.EXPERIMENTAL, OPENTELEMETRY),
|
||||
|
||||
DECLARATIVE_UI("declarative ui spi", Type.EXPERIMENTAL),
|
||||
|
||||
|
||||
@ -156,6 +156,13 @@ For more details, see the link:{telemetryguide_link}[{telemetryguide_name}] guid
|
||||
== OpenTelemetry Logs (preview)
|
||||
|
||||
{project_name} now supports exporting logs to OpenTelemetry collectors, enabling centralized log management.
|
||||
This preview feature allows you to export {project_name} logs to any OpenTelemetry-compatible backend and use the same OpenTelemetry collector for logs and traces.
|
||||
This preview feature allows you to export {project_name} logs to any OpenTelemetry-compatible backend and use the same OpenTelemetry collector for logs, metrics and traces.
|
||||
|
||||
For more details, see the link:{telemetryguide_link}[{telemetryguide_name}] guide.
|
||||
|
||||
== OpenTelemetry Metrics (experimental)
|
||||
|
||||
{project_name} now provides the experimental support for exporting metrics to OpenTelemetry collectors by using the https://quarkus.io/guides/telemetry-micrometer-to-opentelemetry[Micrometer-to-OpenTelemetry bridge].
|
||||
This experimental feature allows you to export {project_name} metrics to any OpenTelemetry-compatible backend and use the same OpenTelemetry collector for logs, metrics and traces.
|
||||
|
||||
For more details, see the link:{telemetryguide_link}[{telemetryguide_name}] guide.
|
||||
|
||||
@ -80,6 +80,27 @@ For example, if you want only to export `WARN` and `ERROR` logs, you can change
|
||||
|
||||
<@kc.start parameters="--telemetry-logs-level=WARN"/>
|
||||
|
||||
== Metrics
|
||||
|
||||
WARNING: The OpenTelemetry Metrics feature is currently experimental, and it is not recommended for use in production.
|
||||
|
||||
NOTE: In order for the Metrics feature to function, the OpenTelemetry feature `opentelemetry` cannot be disabled.
|
||||
|
||||
For integrating OpenTelemetry Metrics, {project_name} uses the https://quarkus.io/guides/telemetry-micrometer-to-opentelemetry[Micrometer-to-OpenTelemetry bridge],
|
||||
which provides the functionality to export metrics created by Micrometer to the OpenTelemetry Collector.
|
||||
This means that all metrics created via Micrometer or OpenTelemetry metrics will be exported to the OpenTelemetry.
|
||||
|
||||
There are some https://quarkus.io/guides/telemetry-micrometer-to-opentelemetry#metric-differences-between-micrometer-and-opentelemetry[API, and Semantic convention differences] for Micrometer vs OTel Metrics, so you should check if all required metrics are exported.
|
||||
|
||||
=== Enable Metrics
|
||||
You can enable the OpenTelemetry Metrics via CLI as follows:
|
||||
|
||||
<@kc.start parameters="--features=opentelemetry-metrics --telemetry-metrics-enabled=true --metrics-enabled=true"/>
|
||||
|
||||
NOTE: Metrics (`metrics-enabled`) needs to be enabled as well
|
||||
|
||||
For more information on how to set up metrics, see the configuration options below or visit the https://www.keycloak.org/observability/configuration-metrics[Gaining insights with metrics guide].
|
||||
|
||||
<@profile.ifCommunity>
|
||||
|
||||
== Development setup
|
||||
@ -100,7 +121,7 @@ Then, you can navigate to Grafana UI by accessing `+localhost:3000+` and then yo
|
||||
|
||||
</@profile.ifCommunity>
|
||||
|
||||
<@opts.printRelevantOptions includedOptions="telemetry-*" excludedOptions="telemetry-logs-*">
|
||||
<@opts.printRelevantOptions includedOptions="telemetry-*" excludedOptions="telemetry-logs-* telemetry-metrics-*">
|
||||
|
||||
=== Traces
|
||||
<@opts.includeOptions includedOptions="tracing-enabled tracing-endpoint tracing-protocol tracing-service-name tracing-resource-attributes"/>
|
||||
@ -108,6 +129,9 @@ Then, you can navigate to Grafana UI by accessing `+localhost:3000+` and then yo
|
||||
=== Logs
|
||||
<@opts.includeOptions includedOptions="telemetry-logs-*"/>
|
||||
|
||||
=== Metrics
|
||||
<@opts.includeOptions includedOptions="metrics-enabled telemetry-metrics-*"/>
|
||||
|
||||
</@opts.printRelevantOptions>
|
||||
|
||||
</@tmpl.guide>
|
||||
|
||||
@ -37,19 +37,19 @@ public class TelemetryOptions {
|
||||
// Telemetry Logs
|
||||
public static final Option<Boolean> TELEMETRY_LOGS_ENABLED = new OptionBuilder<>("telemetry-logs-enabled", Boolean.class)
|
||||
.category(OptionCategory.TELEMETRY)
|
||||
.description("Enables exporting logs to a destination handling telemetry data (OpenTelemetry Logs).")
|
||||
.description("Enables exporting logs to a destination handling OpenTelemetry logs.")
|
||||
.defaultValue(Boolean.FALSE)
|
||||
.buildTime(true)
|
||||
.build();
|
||||
|
||||
public static final Option<String> TELEMETRY_LOGS_ENDPOINT = new OptionBuilder<>("telemetry-logs-endpoint", String.class)
|
||||
.category(OptionCategory.TELEMETRY)
|
||||
.description("Telemetry (OpenTelemetry) endpoint to export logs to. If not given, the value is inherited from the '%s' option.".formatted(TELEMETRY_ENDPOINT.getKey()))
|
||||
.description("OpenTelemetry endpoint to export logs to. If not given, the value is inherited from the '%s' option.".formatted(TELEMETRY_ENDPOINT.getKey()))
|
||||
.build();
|
||||
|
||||
public static final Option<String> TELEMETRY_LOGS_PROTOCOL = new OptionBuilder<>("telemetry-logs-protocol", String.class)
|
||||
.category(OptionCategory.TELEMETRY)
|
||||
.description("Telemetry (OpenTelemetry) protocol used for exporting logs. If not given, the value is inherited from the '%s' option.".formatted(TELEMETRY_PROTOCOL.getKey()))
|
||||
.description("OpenTelemetry protocol used for exporting logs. If not given, the value is inherited from the '%s' option.".formatted(TELEMETRY_PROTOCOL.getKey()))
|
||||
.expectedValues("grpc", "http/protobuf")
|
||||
.build();
|
||||
|
||||
@ -59,4 +59,29 @@ public class TelemetryOptions {
|
||||
.defaultValue(LoggingOptions.Level.ALL)
|
||||
.caseInsensitiveExpectedValues(true)
|
||||
.build();
|
||||
|
||||
// Telemetry Metrics
|
||||
public static final Option<Boolean> TELEMETRY_METRICS_ENABLED = new OptionBuilder<>("telemetry-metrics-enabled", Boolean.class)
|
||||
.category(OptionCategory.TELEMETRY)
|
||||
.description("Enables exporting metrics to a destination handling OpenTelemetry metrics.")
|
||||
.defaultValue(Boolean.FALSE)
|
||||
.buildTime(true)
|
||||
.build();
|
||||
|
||||
public static final Option<String> TELEMETRY_METRICS_ENDPOINT = new OptionBuilder<>("telemetry-metrics-endpoint", String.class)
|
||||
.category(OptionCategory.TELEMETRY)
|
||||
.description("OpenTelemetry endpoint to connect to for Metrics. If not given, the value is inherited from the '%s' option.".formatted(TelemetryOptions.TELEMETRY_ENDPOINT.getKey()))
|
||||
.build();
|
||||
|
||||
public static final Option<String> TELEMETRY_METRICS_PROTOCOL = new OptionBuilder<>("telemetry-metrics-protocol", String.class)
|
||||
.category(OptionCategory.TELEMETRY)
|
||||
.description("OpenTelemetry protocol used for the metrics telemetry data. If not given, the value is inherited from the '%s' option.".formatted(TelemetryOptions.TELEMETRY_PROTOCOL.getKey()))
|
||||
.expectedValues("grpc", "http/protobuf")
|
||||
.build();
|
||||
|
||||
public static final Option<String> TELEMETRY_METRICS_INTERVAL = new OptionBuilder<>("telemetry-metrics-interval", String.class)
|
||||
.category(OptionCategory.TELEMETRY)
|
||||
.description("The interval between the start of two metric export attempts to the destination handling OpenTelemetry metrics data. It accepts simplified format for time units as java.time.Duration (like 5000ms, 30s, 5m, 1h). If the value is only a number, it represents time in seconds.")
|
||||
.defaultValue("60s")
|
||||
.build();
|
||||
}
|
||||
|
||||
@ -270,6 +270,10 @@
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-opentelemetry-deployment</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-micrometer-opentelemetry-deployment</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
|
||||
@ -125,6 +125,10 @@
|
||||
<groupId>io.opentelemetry.instrumentation</groupId>
|
||||
<artifactId>opentelemetry-apache-httpclient-4.3</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-micrometer-opentelemetry</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.apicatalog</groupId>
|
||||
|
||||
@ -25,6 +25,7 @@ import java.util.stream.Stream;
|
||||
import org.keycloak.common.Profile;
|
||||
import org.keycloak.config.HealthOptions;
|
||||
import org.keycloak.config.MetricsOptions;
|
||||
import org.keycloak.config.TelemetryOptions;
|
||||
import org.keycloak.config.database.Database;
|
||||
|
||||
import static java.util.Collections.emptySet;
|
||||
@ -41,7 +42,8 @@ public class IgnoredArtifacts {
|
||||
fips(),
|
||||
jdbcDrivers(),
|
||||
health(),
|
||||
metrics()
|
||||
metrics(),
|
||||
otelMetrics()
|
||||
)
|
||||
.flatMap(Collection::stream)
|
||||
.collect(Collectors.toUnmodifiableSet());
|
||||
@ -171,4 +173,16 @@ public class IgnoredArtifacts {
|
||||
boolean isMetricsEnabled = Configuration.isTrue(MetricsOptions.METRICS_ENABLED);
|
||||
return !isMetricsEnabled ? METRICS : emptySet();
|
||||
}
|
||||
|
||||
// OpenTelemetry Metrics (Micrometer to OTel bridge)
|
||||
public static Set<String> OTEL_METRICS = Set.of(
|
||||
"io.quarkus:quarkus-micrometer-opentelemetry",
|
||||
"io.quarkus:quarkus-micrometer-opentelemetry-deployment",
|
||||
"io.opentelemetry.instrumentation:opentelemetry-micrometer-1.5"
|
||||
);
|
||||
|
||||
private static Set<String> otelMetrics() {
|
||||
boolean isOtelMetricsEnabled = Configuration.isTrue(TelemetryOptions.TELEMETRY_METRICS_ENABLED);
|
||||
return !isOtelMetricsEnabled ? OTEL_METRICS : emptySet();
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,12 +6,14 @@ import java.net.URL;
|
||||
import java.util.List;
|
||||
|
||||
import org.keycloak.common.Profile;
|
||||
import org.keycloak.config.MetricsOptions;
|
||||
import org.keycloak.config.TelemetryOptions;
|
||||
import org.keycloak.config.TracingOptions;
|
||||
import org.keycloak.quarkus.runtime.cli.PropertyException;
|
||||
import org.keycloak.quarkus.runtime.configuration.Configuration;
|
||||
import org.keycloak.utils.StringUtil;
|
||||
|
||||
import io.quarkus.runtime.configuration.DurationConverter;
|
||||
import io.smallrye.config.ConfigSourceInterceptorContext;
|
||||
|
||||
import static org.keycloak.config.TelemetryOptions.TELEMETRY_ENABLED;
|
||||
@ -20,6 +22,10 @@ import static org.keycloak.config.TelemetryOptions.TELEMETRY_LOGS_ENABLED;
|
||||
import static org.keycloak.config.TelemetryOptions.TELEMETRY_LOGS_ENDPOINT;
|
||||
import static org.keycloak.config.TelemetryOptions.TELEMETRY_LOGS_LEVEL;
|
||||
import static org.keycloak.config.TelemetryOptions.TELEMETRY_LOGS_PROTOCOL;
|
||||
import static org.keycloak.config.TelemetryOptions.TELEMETRY_METRICS_ENABLED;
|
||||
import static org.keycloak.config.TelemetryOptions.TELEMETRY_METRICS_ENDPOINT;
|
||||
import static org.keycloak.config.TelemetryOptions.TELEMETRY_METRICS_INTERVAL;
|
||||
import static org.keycloak.config.TelemetryOptions.TELEMETRY_METRICS_PROTOCOL;
|
||||
import static org.keycloak.config.TelemetryOptions.TELEMETRY_PROTOCOL;
|
||||
import static org.keycloak.config.TelemetryOptions.TELEMETRY_RESOURCE_ATTRIBUTES;
|
||||
import static org.keycloak.config.TelemetryOptions.TELEMETRY_SERVICE_NAME;
|
||||
@ -27,9 +33,11 @@ import static org.keycloak.quarkus.runtime.configuration.mappers.PropertyMapper.
|
||||
|
||||
public class TelemetryPropertyMappers implements PropertyMapperGrouping{
|
||||
private static final String OTEL_FEATURE_ENABLED_MSG = "'opentelemetry' feature is enabled";
|
||||
private static final String OTEL_COLLECTOR_ENABLED_MSG = "any of available OpenTelemetry components (Logs, Traces) is turned on";
|
||||
private static final String OTEL_COLLECTOR_ENABLED_MSG = "any of available OpenTelemetry components (Logs, Metrics, Traces) is turned on";
|
||||
private static final String OTEL_LOGS_FEATURE_ENABLED_MSG = "feature '%s' is enabled".formatted(Profile.Feature.OPENTELEMETRY_LOGS.getVersionedKey());
|
||||
private static final String OTEL_LOGS_ENABLED_MSG = "Telemetry Logs functionality ('%s') is enabled".formatted(TELEMETRY_LOGS_ENABLED.getKey());
|
||||
private static final String OTEL_METRICS_FEATURE_ENABLED_MSG = "metrics and feature '%s' are enabled".formatted(Profile.Feature.OPENTELEMETRY_METRICS.getVersionedKey());
|
||||
private static final String OTEL_METRICS_ENABLED_MSG = "metrics ('%s') and Telemetry Metrics functionality ('%s') are enabled".formatted(MetricsOptions.METRICS_ENABLED.getKey(), TELEMETRY_METRICS_ENABLED.getKey());
|
||||
|
||||
@Override
|
||||
public List<? extends PropertyMapper<?>> getPropertyMappers() {
|
||||
@ -85,12 +93,36 @@ public class TelemetryPropertyMappers implements PropertyMapperGrouping{
|
||||
.to("quarkus.otel.logs.level")
|
||||
.paramLabel("level")
|
||||
.transformer(LoggingPropertyMappers::upperCase)
|
||||
.build(),
|
||||
// Telemetry Metrics
|
||||
fromOption(TELEMETRY_METRICS_ENABLED)
|
||||
.isEnabled(TelemetryPropertyMappers::isOtelMetricsFeatureEnabled, OTEL_METRICS_FEATURE_ENABLED_MSG)
|
||||
.to("quarkus.otel.metrics.enabled")
|
||||
.build(),
|
||||
fromOption(TELEMETRY_METRICS_ENDPOINT)
|
||||
.isEnabled(TelemetryPropertyMappers::isTelemetryMetricsEnabled, OTEL_METRICS_ENABLED_MSG)
|
||||
.mapFrom(TelemetryOptions.TELEMETRY_ENDPOINT)
|
||||
.to("quarkus.otel.exporter.otlp.metrics.endpoint")
|
||||
.paramLabel("url")
|
||||
.validator(TelemetryPropertyMappers::validateEndpoint)
|
||||
.build(),
|
||||
fromOption(TELEMETRY_METRICS_PROTOCOL)
|
||||
.isEnabled(TelemetryPropertyMappers::isTelemetryMetricsEnabled, OTEL_METRICS_ENABLED_MSG)
|
||||
.mapFrom(TelemetryOptions.TELEMETRY_PROTOCOL)
|
||||
.to("quarkus.otel.exporter.otlp.metrics.protocol")
|
||||
.paramLabel("protocol")
|
||||
.build(),
|
||||
fromOption(TELEMETRY_METRICS_INTERVAL)
|
||||
.isEnabled(TelemetryPropertyMappers::isTelemetryMetricsEnabled, OTEL_METRICS_ENABLED_MSG)
|
||||
.to("quarkus.otel.metric.export.interval")
|
||||
.paramLabel("duration")
|
||||
.validator(TelemetryPropertyMappers::validateDuration)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
private static String checkIfDependantsAreEnabled(String value, ConfigSourceInterceptorContext context) {
|
||||
if (TelemetryPropertyMappers.isTelemetryLogsEnabled() || TracingPropertyMappers.isTracingEnabled()) {
|
||||
if (TelemetryPropertyMappers.isTelemetryLogsEnabled() || TelemetryPropertyMappers.isTelemetryMetricsEnabled() || TracingPropertyMappers.isTracingEnabled()) {
|
||||
return Boolean.TRUE.toString();
|
||||
}
|
||||
return Boolean.FALSE.toString();
|
||||
@ -104,6 +136,10 @@ public class TelemetryPropertyMappers implements PropertyMapperGrouping{
|
||||
return Profile.isFeatureEnabled(Profile.Feature.OPENTELEMETRY_LOGS);
|
||||
}
|
||||
|
||||
public static boolean isOtelMetricsFeatureEnabled() {
|
||||
return MetricsPropertyMappers.metricsEnabled() && Profile.isFeatureEnabled(Profile.Feature.OPENTELEMETRY_METRICS);
|
||||
}
|
||||
|
||||
public static boolean isTelemetryEnabled() {
|
||||
return Configuration.isTrue("quarkus.otel.enabled");
|
||||
}
|
||||
@ -112,6 +148,10 @@ public class TelemetryPropertyMappers implements PropertyMapperGrouping{
|
||||
return Configuration.isTrue("quarkus.otel.logs.enabled");
|
||||
}
|
||||
|
||||
public static boolean isTelemetryMetricsEnabled() {
|
||||
return MetricsPropertyMappers.metricsEnabled() && Configuration.isTrue("quarkus.otel.metrics.enabled");
|
||||
}
|
||||
|
||||
static void validateEndpoint(String value) {
|
||||
if (StringUtil.isBlank(value)) {
|
||||
throw new PropertyException("Specified Endpoint URL must not be empty.");
|
||||
@ -130,4 +170,15 @@ public class TelemetryPropertyMappers implements PropertyMapperGrouping{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static void validateDuration(String value) {
|
||||
try {
|
||||
var duration = DurationConverter.parseDuration(value);
|
||||
if (duration.isNegative() || duration.isZero()) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
} catch (IllegalArgumentException e) {
|
||||
throw new PropertyException("Duration specified via '%s' is invalid.".formatted(TELEMETRY_METRICS_INTERVAL.getKey()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1266,7 +1266,7 @@ public class PicocliTest extends AbstractConfigurationTest {
|
||||
assertEquals(CommandLine.ExitCode.USAGE, nonRunningPicocli.exitCode);
|
||||
assertThat(nonRunningPicocli.getErrString(), anyOf(
|
||||
containsString("Disabled option: '--tracing-service-name'. Available only when Tracing is enabled"),
|
||||
containsString("Disabled option: '--telemetry-service-name'. Available only when any of available OpenTelemetry components (Logs, Traces) is turned on")
|
||||
containsString("Disabled option: '--telemetry-service-name'. Available only when any of available OpenTelemetry components (Logs, Metrics, Traces) is turned on")
|
||||
));
|
||||
assertThat(nonRunningPicocli.config.getConfigValue("quarkus.otel.enabled").getValue(), is("false"));
|
||||
assertThat(nonRunningPicocli.config.getConfigValue("quarkus.otel.traces.enabled").getValue(), is("false"));
|
||||
@ -1276,7 +1276,7 @@ public class PicocliTest extends AbstractConfigurationTest {
|
||||
// disabled tracing
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--telemetry-service-name=service123");
|
||||
assertEquals(CommandLine.ExitCode.USAGE, nonRunningPicocli.exitCode);
|
||||
assertThat(nonRunningPicocli.getErrString(), containsString("Disabled option: '--telemetry-service-name'. Available only when any of available OpenTelemetry components (Logs, Traces) is turned on"));
|
||||
assertThat(nonRunningPicocli.getErrString(), containsString("Disabled option: '--telemetry-service-name'. Available only when any of available OpenTelemetry components (Logs, Metrics, Traces) is turned on"));
|
||||
assertThat(nonRunningPicocli.config.getConfigValue("quarkus.otel.enabled").getValue(), is("false"));
|
||||
assertThat(nonRunningPicocli.config.getConfigValue("quarkus.otel.traces.enabled").getValue(), is("false"));
|
||||
assertThat(nonRunningPicocli.config.getConfigValue("quarkus.otel.service.name").getValue(), is(nullValue()));
|
||||
@ -1496,4 +1496,215 @@ public class PicocliTest extends AbstractConfigurationTest {
|
||||
"quarkus.otel.logs.level", "DEBUG"
|
||||
));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void otelMetrics() {
|
||||
// parent feature disabled
|
||||
NonRunningPicocli nonRunningPicocli = pseudoLaunch("start-dev", "--feature-opentelemetry=disabled", "--feature-opentelemetry-metrics=enabled");
|
||||
assertEquals(CommandLine.ExitCode.USAGE, nonRunningPicocli.exitCode);
|
||||
assertThat(nonRunningPicocli.getErrString(), containsString("ERROR: Feature opentelemetry-metrics depends on disabled feature opentelemetry"));
|
||||
onAfter();
|
||||
|
||||
// feature disabled
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--telemetry-metrics-enabled=true");
|
||||
assertEquals(CommandLine.ExitCode.USAGE, nonRunningPicocli.exitCode);
|
||||
assertThat(nonRunningPicocli.getErrString(), containsString("Disabled option: '--telemetry-metrics-enabled'. Available only when metrics and feature 'opentelemetry-metrics:v1' are enabled"));
|
||||
onAfter();
|
||||
|
||||
// export disabled
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--telemetry-metrics-enabled=true");
|
||||
assertEquals(CommandLine.ExitCode.USAGE, nonRunningPicocli.exitCode);
|
||||
assertThat(nonRunningPicocli.getErrString(), containsString("Disabled option: '--telemetry-metrics-enabled'. Available only when metrics and feature 'opentelemetry-metrics:v1' are enabled"));
|
||||
onAfter();
|
||||
|
||||
// export disabled
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--metrics-enabled=true", "--features=opentelemetry-metrics", "--telemetry-metrics-enabled=false", "--telemetry-metrics-endpoint=endpoint");
|
||||
assertEquals(CommandLine.ExitCode.USAGE, nonRunningPicocli.exitCode);
|
||||
assertThat(nonRunningPicocli.getErrString(), containsString("Disabled option: '--telemetry-metrics-endpoint'. Available only when metrics ('metrics-enabled') and Telemetry Metrics functionality ('telemetry-metrics-enabled') are enabled"));
|
||||
onAfter();
|
||||
|
||||
// check enabled
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-metrics-enabled=true");
|
||||
assertEquals(CommandLine.ExitCode.OK, nonRunningPicocli.exitCode);
|
||||
assertConfig("metrics-enabled", "true");
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.otel.enabled", "true",
|
||||
"quarkus.otel.metrics.enabled", "true"
|
||||
));
|
||||
onAfter();
|
||||
|
||||
// multiple components enabled
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics,opentelemetry-logs", "--metrics-enabled=true", "--telemetry-metrics-enabled=true", "--telemetry-logs-enabled=false");
|
||||
assertEquals(CommandLine.ExitCode.OK, nonRunningPicocli.exitCode);
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.otel.enabled", "true",
|
||||
"quarkus.otel.metrics.enabled", "true",
|
||||
"quarkus.otel.logs.enabled", "false"
|
||||
));
|
||||
onAfter();
|
||||
|
||||
// wrong protocol
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-metrics-enabled=true", "--telemetry-metrics-protocol=wrong");
|
||||
assertEquals(CommandLine.ExitCode.USAGE, nonRunningPicocli.exitCode);
|
||||
assertThat(nonRunningPicocli.getErrString(), containsString("Invalid value for option '--telemetry-metrics-protocol': wrong. Expected values are: grpc, http/protobuf"));
|
||||
onAfter();
|
||||
|
||||
// otel protocol
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-metrics-enabled=true", "--telemetry-metrics-protocol=http/protobuf");
|
||||
assertEquals(CommandLine.ExitCode.OK, nonRunningPicocli.exitCode);
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.otel.enabled", "true",
|
||||
"quarkus.otel.exporter.otlp.metrics.protocol", "http/protobuf"
|
||||
));
|
||||
onAfter();
|
||||
|
||||
// parent + child protocol
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-metrics-enabled=true", "--telemetry-metrics-protocol=http/protobuf", "--telemetry-protocol=grpc");
|
||||
assertEquals(CommandLine.ExitCode.OK, nonRunningPicocli.exitCode);
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.otel.enabled", "true",
|
||||
"quarkus.otel.exporter.otlp.protocol", "grpc",
|
||||
"quarkus.otel.exporter.otlp.metrics.protocol", "http/protobuf"
|
||||
));
|
||||
onAfter();
|
||||
|
||||
// parent protocol
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-metrics-enabled=true", "--telemetry-protocol=http/protobuf");
|
||||
assertEquals(CommandLine.ExitCode.OK, nonRunningPicocli.exitCode);
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.otel.enabled", "true",
|
||||
"quarkus.otel.exporter.otlp.protocol", "http/protobuf",
|
||||
"quarkus.otel.exporter.otlp.metrics.protocol", "http/protobuf"
|
||||
));
|
||||
onAfter();
|
||||
|
||||
// wrong parent endpoint
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-metrics-enabled=true", "--telemetry-endpoint=not-url");
|
||||
assertEquals(CommandLine.ExitCode.USAGE, nonRunningPicocli.exitCode);
|
||||
assertThat(nonRunningPicocli.getErrString(), containsString("Specified Endpoint URL is invalid"));
|
||||
onAfter();
|
||||
|
||||
// wrong endpoint
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-metrics-enabled=true", "--telemetry-metrics-endpoint=not-url");
|
||||
assertEquals(CommandLine.ExitCode.USAGE, nonRunningPicocli.exitCode);
|
||||
assertThat(nonRunningPicocli.getErrString(), containsString("Specified Endpoint URL is invalid"));
|
||||
onAfter();
|
||||
|
||||
// otel endpoint
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-metrics-enabled=true", "--telemetry-metrics-endpoint=http://keycloak.org");
|
||||
assertEquals(CommandLine.ExitCode.OK, nonRunningPicocli.exitCode);
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.otel.enabled", "true",
|
||||
"quarkus.otel.exporter.otlp.endpoint", "http://localhost:4317",
|
||||
"quarkus.otel.exporter.otlp.metrics.endpoint", "http://keycloak.org"
|
||||
));
|
||||
onAfter();
|
||||
|
||||
// parent + child endpoint
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-metrics-enabled=true", "--telemetry-endpoint=http://keycloak-keycloak-keycloak.org:3455", "--telemetry-metrics-endpoint=http://keycloak.org");
|
||||
assertEquals(CommandLine.ExitCode.OK, nonRunningPicocli.exitCode);
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.otel.enabled", "true",
|
||||
"quarkus.otel.exporter.otlp.endpoint", "http://keycloak-keycloak-keycloak.org:3455",
|
||||
"quarkus.otel.exporter.otlp.metrics.endpoint", "http://keycloak.org"
|
||||
));
|
||||
onAfter();
|
||||
|
||||
// parent endpoint
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-metrics-enabled=true", "--telemetry-endpoint=http://keycloak-keycloak-keycloak.org:3455");
|
||||
assertEquals(CommandLine.ExitCode.OK, nonRunningPicocli.exitCode);
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.otel.enabled", "true",
|
||||
"quarkus.otel.exporter.otlp.endpoint", "http://keycloak-keycloak-keycloak.org:3455",
|
||||
"quarkus.otel.exporter.otlp.metrics.endpoint", "http://keycloak-keycloak-keycloak.org:3455"
|
||||
));
|
||||
onAfter();
|
||||
|
||||
// wrong export interval
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-metrics-enabled=true", "--telemetry-metrics-interval=qwerty");
|
||||
assertEquals(CommandLine.ExitCode.USAGE, nonRunningPicocli.exitCode);
|
||||
assertThat(nonRunningPicocli.getErrString(), containsString("Duration specified via 'telemetry-metrics-interval' is invalid."));
|
||||
onAfter();
|
||||
|
||||
// negative export interval
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-metrics-enabled=true", "--telemetry-metrics-interval=-12s");
|
||||
assertEquals(CommandLine.ExitCode.USAGE, nonRunningPicocli.exitCode);
|
||||
assertThat(nonRunningPicocli.getErrString(), containsString("Duration specified via 'telemetry-metrics-interval' is invalid."));
|
||||
onAfter();
|
||||
|
||||
// zero export interval
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-metrics-enabled=true", "--telemetry-metrics-interval=0");
|
||||
assertEquals(CommandLine.ExitCode.USAGE, nonRunningPicocli.exitCode);
|
||||
assertThat(nonRunningPicocli.getErrString(), containsString("Duration specified via 'telemetry-metrics-interval' is invalid."));
|
||||
onAfter();
|
||||
|
||||
// interval minutes
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-metrics-enabled=true", "--telemetry-metrics-interval=10m");
|
||||
assertEquals(CommandLine.ExitCode.OK, nonRunningPicocli.exitCode);
|
||||
assertExternalConfig("quarkus.otel.metric.export.interval","10m");
|
||||
onAfter();
|
||||
|
||||
// interval hours
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-metrics-enabled=true", "--telemetry-metrics-interval=12h");
|
||||
assertEquals(CommandLine.ExitCode.OK, nonRunningPicocli.exitCode);
|
||||
assertExternalConfig("quarkus.otel.metric.export.interval","12h");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void otelAll() {
|
||||
// tracing
|
||||
pseudoLaunch("start-dev", "--tracing-enabled=true");
|
||||
assertConfig("tracing-enabled", "true");
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.otel.enabled", "true",
|
||||
"quarkus.otel.traces.enabled", "true"
|
||||
));
|
||||
onAfter();
|
||||
|
||||
// logs
|
||||
pseudoLaunch("start-dev", "--features=opentelemetry-logs", "--telemetry-logs-enabled=true");
|
||||
assertConfig(Map.of("telemetry-logs-enabled", "true"));
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.otel.enabled", "true",
|
||||
"quarkus.otel.logs.enabled", "true"
|
||||
));
|
||||
onAfter();
|
||||
|
||||
// metrics - not enabled
|
||||
pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--telemetry-metrics-enabled=true");
|
||||
assertConfig(Map.of(
|
||||
"telemetry-metrics-enabled", "true",
|
||||
"metrics-enabled", "false"
|
||||
));
|
||||
assertExternalConfigNull("quarkus.otel.metrics.enabled");
|
||||
assertExternalConfig("quarkus.otel.enabled", "false");
|
||||
onAfter();
|
||||
|
||||
// metrics
|
||||
pseudoLaunch("start-dev", "--features=opentelemetry-metrics", "--telemetry-metrics-enabled=true", "--metrics-enabled=true");
|
||||
assertConfig(Map.of(
|
||||
"telemetry-metrics-enabled", "true",
|
||||
"metrics-enabled", "true"
|
||||
));
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.otel.enabled", "true",
|
||||
"quarkus.otel.metrics.enabled", "true"
|
||||
));
|
||||
onAfter();
|
||||
|
||||
// all
|
||||
pseudoLaunch("start-dev", "--features=opentelemetry-metrics,opentelemetry-logs", "--telemetry-metrics-enabled=true", "--metrics-enabled=true", "--tracing-enabled=true", "--telemetry-logs-enabled=true");
|
||||
assertConfig(Map.of(
|
||||
"telemetry-metrics-enabled", "true",
|
||||
"metrics-enabled", "true",
|
||||
"tracing-enabled", "true",
|
||||
"telemetry-logs-enabled", "true"
|
||||
));
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.otel.enabled", "true",
|
||||
"quarkus.otel.metrics.enabled", "true",
|
||||
"quarkus.otel.traces.enabled", "true",
|
||||
"quarkus.otel.logs.enabled", "true"
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@ -31,6 +31,7 @@ import org.keycloak.config.DatabaseOptions;
|
||||
import org.keycloak.config.HealthOptions;
|
||||
import org.keycloak.config.MetricsOptions;
|
||||
import org.keycloak.config.Option;
|
||||
import org.keycloak.config.TelemetryOptions;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
@ -155,6 +156,11 @@ public class IgnoredArtifactsTest extends AbstractConfigurationTest {
|
||||
assertIgnoredArtifacts(IgnoredArtifacts.METRICS, MetricsOptions.METRICS_ENABLED);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void otelMetrics(){
|
||||
assertIgnoredArtifacts(IgnoredArtifacts.OTEL_METRICS, TelemetryOptions.TELEMETRY_METRICS_ENABLED);
|
||||
}
|
||||
|
||||
private void assertIgnoredArtifacts(Set<String> artifactsSet, Option<Boolean> enabledOption) {
|
||||
assertIgnoredArtifacts(artifactsSet, enabledOption, true);
|
||||
}
|
||||
|
||||
@ -124,4 +124,58 @@ public class TelemetryConfigurationTest extends AbstractConfigurationTest {
|
||||
"quarkus.otel.exporter.otlp.logs.protocol", "http/protobuf"
|
||||
));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void metricsDefaults() {
|
||||
initConfig();
|
||||
|
||||
assertConfig(Map.of(
|
||||
"telemetry-metrics-enabled", "false",
|
||||
"telemetry-metrics-endpoint", "http://localhost:4317",
|
||||
"telemetry-metrics-protocol", "grpc",
|
||||
"telemetry-metrics-interval", "60s"
|
||||
));
|
||||
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.otel.metrics.enabled", "false",
|
||||
"quarkus.otel.enabled", "false",
|
||||
"quarkus.otel.exporter.otlp.metrics.endpoint", "http://localhost:4317",
|
||||
"quarkus.otel.exporter.otlp.metrics.protocol", "grpc",
|
||||
"quarkus.otel.metric.export.interval", "60s"
|
||||
));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void metricsPriorities() {
|
||||
ConfigArgsConfigSource.setCliArgs("--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-metrics-enabled=true", "--telemetry-metrics-endpoint=localhost:2000", "--telemetry-metrics-protocol=http/protobuf");
|
||||
initConfig();
|
||||
assertConfig(Map.of(
|
||||
"telemetry-metrics-enabled", "true",
|
||||
"telemetry-metrics-endpoint", "localhost:2000",
|
||||
"telemetry-metrics-protocol", "http/protobuf"
|
||||
));
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.otel.metrics.enabled", "true",
|
||||
"quarkus.otel.enabled", "true",
|
||||
"quarkus.otel.exporter.otlp.metrics.endpoint", "localhost:2000",
|
||||
"quarkus.otel.exporter.otlp.metrics.protocol", "http/protobuf"
|
||||
));
|
||||
onAfter();
|
||||
|
||||
ConfigArgsConfigSource.setCliArgs("--features=opentelemetry-metrics", "--metrics-enabled=true", "--telemetry-endpoint=http://keycloak.org:1234", "--telemetry-protocol=grpc", "--telemetry-metrics-enabled=true", "--telemetry-metrics-endpoint=my-domain:2001", "--telemetry-metrics-protocol=http/protobuf");
|
||||
initConfig();
|
||||
assertConfig(Map.of(
|
||||
"telemetry-metrics-enabled", "true",
|
||||
"telemetry-metrics-endpoint", "my-domain:2001",
|
||||
"telemetry-metrics-protocol", "http/protobuf",
|
||||
"telemetry-endpoint", "http://keycloak.org:1234",
|
||||
"telemetry-protocol", "grpc"
|
||||
));
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.otel.metrics.enabled", "true",
|
||||
"quarkus.otel.enabled", "true",
|
||||
"quarkus.otel.exporter.otlp.metrics.endpoint", "my-domain:2001",
|
||||
"quarkus.otel.exporter.otlp.metrics.protocol", "http/protobuf"
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@ -313,16 +313,15 @@ Telemetry (OpenTelemetry):
|
||||
|
||||
--telemetry-endpoint <url>
|
||||
OpenTelemetry endpoint to connect to. Default: http://localhost:4317.
|
||||
Available only when any of available OpenTelemetry components (Logs, Traces)
|
||||
is turned on.
|
||||
Available only when any of available OpenTelemetry components (Logs,
|
||||
Metrics, Traces) is turned on.
|
||||
--telemetry-logs-enabled <true|false>
|
||||
Enables exporting logs to a destination handling telemetry data (OpenTelemetry
|
||||
Logs). Default: false. Available only when feature 'opentelemetry-logs:v1'
|
||||
is enabled.
|
||||
Enables exporting logs to a destination handling OpenTelemetry logs. Default:
|
||||
false. Available only when feature 'opentelemetry-logs:v1' is enabled.
|
||||
--telemetry-logs-endpoint <url>
|
||||
Telemetry (OpenTelemetry) endpoint to export logs to. If not given, the value
|
||||
is inherited from the 'telemetry-endpoint' option. Available only when
|
||||
Telemetry Logs functionality ('telemetry-logs-enabled') is enabled.
|
||||
OpenTelemetry endpoint to export logs to. If not given, the value is inherited
|
||||
from the 'telemetry-endpoint' option. Available only when Telemetry Logs
|
||||
functionality ('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-logs-level <level>
|
||||
The most verbose log level exported to the telemetry endpoint. For more
|
||||
information, check the Telemetry guide. Possible values are (case
|
||||
@ -330,24 +329,46 @@ Telemetry (OpenTelemetry):
|
||||
all. Available only when Telemetry Logs functionality
|
||||
('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-logs-protocol <protocol>
|
||||
Telemetry (OpenTelemetry) protocol used for exporting logs. If not given, the
|
||||
value is inherited from the 'telemetry-protocol' option. Possible values
|
||||
are: grpc, http/protobuf. Available only when Telemetry Logs functionality
|
||||
OpenTelemetry protocol used for exporting logs. If not given, the value is
|
||||
inherited from the 'telemetry-protocol' option. Possible values are: grpc,
|
||||
http/protobuf. Available only when Telemetry Logs functionality
|
||||
('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-metrics-enabled <true|false>
|
||||
Enables exporting metrics to a destination handling OpenTelemetry metrics.
|
||||
Default: false. Available only when metrics and feature
|
||||
'opentelemetry-metrics:v1' are enabled.
|
||||
--telemetry-metrics-endpoint <url>
|
||||
OpenTelemetry endpoint to connect to for Metrics. If not given, the value is
|
||||
inherited from the 'telemetry-endpoint' option. Available only when metrics
|
||||
('metrics-enabled') and Telemetry Metrics functionality
|
||||
('telemetry-metrics-enabled') are enabled.
|
||||
--telemetry-metrics-interval <duration>
|
||||
The interval between the start of two metric export attempts to the
|
||||
destination handling OpenTelemetry metrics data. It accepts simplified
|
||||
format for time units as java.time.Duration (like 5000ms, 30s, 5m, 1h). If
|
||||
the value is only a number, it represents time in seconds. Default: 60s.
|
||||
Available only when metrics ('metrics-enabled') and Telemetry Metrics
|
||||
functionality ('telemetry-metrics-enabled') are enabled.
|
||||
--telemetry-metrics-protocol <protocol>
|
||||
OpenTelemetry protocol used for the metrics telemetry data. If not given, the
|
||||
value is inherited from the 'telemetry-protocol' option. Possible values
|
||||
are: grpc, http/protobuf. Available only when metrics ('metrics-enabled')
|
||||
and Telemetry Metrics functionality ('telemetry-metrics-enabled') are
|
||||
enabled.
|
||||
--telemetry-protocol <protocol>
|
||||
OpenTelemetry protocol used for the communication between server and
|
||||
OpenTelemetry collector. Possible values are: grpc, http/protobuf. Default:
|
||||
grpc. Available only when any of available OpenTelemetry components (Logs,
|
||||
Traces) is turned on.
|
||||
Metrics, Traces) is turned on.
|
||||
--telemetry-resource-attributes <attributes>
|
||||
OpenTelemetry resource attributes characterize the telemetry producer. Values
|
||||
in format 'key1=val1,key2=val2'. Available only when any of available
|
||||
OpenTelemetry components (Logs, Traces) is turned on.
|
||||
OpenTelemetry components (Logs, Metrics, Traces) is turned on.
|
||||
--telemetry-service-name <name>
|
||||
OpenTelemetry service name. Takes precedence over 'service.name' defined in
|
||||
the 'telemetry-resource-attributes' property. Default: keycloak. Available
|
||||
only when any of available OpenTelemetry components (Logs, Traces) is turned
|
||||
on.
|
||||
only when any of available OpenTelemetry components (Logs, Metrics, Traces)
|
||||
is turned on.
|
||||
|
||||
Tracing:
|
||||
|
||||
|
||||
@ -313,16 +313,15 @@ Telemetry (OpenTelemetry):
|
||||
|
||||
--telemetry-endpoint <url>
|
||||
OpenTelemetry endpoint to connect to. Default: http://localhost:4317.
|
||||
Available only when any of available OpenTelemetry components (Logs, Traces)
|
||||
is turned on.
|
||||
Available only when any of available OpenTelemetry components (Logs,
|
||||
Metrics, Traces) is turned on.
|
||||
--telemetry-logs-enabled <true|false>
|
||||
Enables exporting logs to a destination handling telemetry data (OpenTelemetry
|
||||
Logs). Default: false. Available only when feature 'opentelemetry-logs:v1'
|
||||
is enabled.
|
||||
Enables exporting logs to a destination handling OpenTelemetry logs. Default:
|
||||
false. Available only when feature 'opentelemetry-logs:v1' is enabled.
|
||||
--telemetry-logs-endpoint <url>
|
||||
Telemetry (OpenTelemetry) endpoint to export logs to. If not given, the value
|
||||
is inherited from the 'telemetry-endpoint' option. Available only when
|
||||
Telemetry Logs functionality ('telemetry-logs-enabled') is enabled.
|
||||
OpenTelemetry endpoint to export logs to. If not given, the value is inherited
|
||||
from the 'telemetry-endpoint' option. Available only when Telemetry Logs
|
||||
functionality ('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-logs-level <level>
|
||||
The most verbose log level exported to the telemetry endpoint. For more
|
||||
information, check the Telemetry guide. Possible values are (case
|
||||
@ -330,24 +329,46 @@ Telemetry (OpenTelemetry):
|
||||
all. Available only when Telemetry Logs functionality
|
||||
('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-logs-protocol <protocol>
|
||||
Telemetry (OpenTelemetry) protocol used for exporting logs. If not given, the
|
||||
value is inherited from the 'telemetry-protocol' option. Possible values
|
||||
are: grpc, http/protobuf. Available only when Telemetry Logs functionality
|
||||
OpenTelemetry protocol used for exporting logs. If not given, the value is
|
||||
inherited from the 'telemetry-protocol' option. Possible values are: grpc,
|
||||
http/protobuf. Available only when Telemetry Logs functionality
|
||||
('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-metrics-enabled <true|false>
|
||||
Enables exporting metrics to a destination handling OpenTelemetry metrics.
|
||||
Default: false. Available only when metrics and feature
|
||||
'opentelemetry-metrics:v1' are enabled.
|
||||
--telemetry-metrics-endpoint <url>
|
||||
OpenTelemetry endpoint to connect to for Metrics. If not given, the value is
|
||||
inherited from the 'telemetry-endpoint' option. Available only when metrics
|
||||
('metrics-enabled') and Telemetry Metrics functionality
|
||||
('telemetry-metrics-enabled') are enabled.
|
||||
--telemetry-metrics-interval <duration>
|
||||
The interval between the start of two metric export attempts to the
|
||||
destination handling OpenTelemetry metrics data. It accepts simplified
|
||||
format for time units as java.time.Duration (like 5000ms, 30s, 5m, 1h). If
|
||||
the value is only a number, it represents time in seconds. Default: 60s.
|
||||
Available only when metrics ('metrics-enabled') and Telemetry Metrics
|
||||
functionality ('telemetry-metrics-enabled') are enabled.
|
||||
--telemetry-metrics-protocol <protocol>
|
||||
OpenTelemetry protocol used for the metrics telemetry data. If not given, the
|
||||
value is inherited from the 'telemetry-protocol' option. Possible values
|
||||
are: grpc, http/protobuf. Available only when metrics ('metrics-enabled')
|
||||
and Telemetry Metrics functionality ('telemetry-metrics-enabled') are
|
||||
enabled.
|
||||
--telemetry-protocol <protocol>
|
||||
OpenTelemetry protocol used for the communication between server and
|
||||
OpenTelemetry collector. Possible values are: grpc, http/protobuf. Default:
|
||||
grpc. Available only when any of available OpenTelemetry components (Logs,
|
||||
Traces) is turned on.
|
||||
Metrics, Traces) is turned on.
|
||||
--telemetry-resource-attributes <attributes>
|
||||
OpenTelemetry resource attributes characterize the telemetry producer. Values
|
||||
in format 'key1=val1,key2=val2'. Available only when any of available
|
||||
OpenTelemetry components (Logs, Traces) is turned on.
|
||||
OpenTelemetry components (Logs, Metrics, Traces) is turned on.
|
||||
--telemetry-service-name <name>
|
||||
OpenTelemetry service name. Takes precedence over 'service.name' defined in
|
||||
the 'telemetry-resource-attributes' property. Default: keycloak. Available
|
||||
only when any of available OpenTelemetry components (Logs, Traces) is turned
|
||||
on.
|
||||
only when any of available OpenTelemetry components (Logs, Metrics, Traces)
|
||||
is turned on.
|
||||
|
||||
Tracing:
|
||||
|
||||
|
||||
@ -640,16 +640,15 @@ Telemetry (OpenTelemetry):
|
||||
|
||||
--telemetry-endpoint <url>
|
||||
OpenTelemetry endpoint to connect to. Default: http://localhost:4317.
|
||||
Available only when any of available OpenTelemetry components (Logs, Traces)
|
||||
is turned on.
|
||||
Available only when any of available OpenTelemetry components (Logs,
|
||||
Metrics, Traces) is turned on.
|
||||
--telemetry-logs-enabled <true|false>
|
||||
Enables exporting logs to a destination handling telemetry data (OpenTelemetry
|
||||
Logs). Default: false. Available only when feature 'opentelemetry-logs:v1'
|
||||
is enabled.
|
||||
Enables exporting logs to a destination handling OpenTelemetry logs. Default:
|
||||
false. Available only when feature 'opentelemetry-logs:v1' is enabled.
|
||||
--telemetry-logs-endpoint <url>
|
||||
Telemetry (OpenTelemetry) endpoint to export logs to. If not given, the value
|
||||
is inherited from the 'telemetry-endpoint' option. Available only when
|
||||
Telemetry Logs functionality ('telemetry-logs-enabled') is enabled.
|
||||
OpenTelemetry endpoint to export logs to. If not given, the value is inherited
|
||||
from the 'telemetry-endpoint' option. Available only when Telemetry Logs
|
||||
functionality ('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-logs-level <level>
|
||||
The most verbose log level exported to the telemetry endpoint. For more
|
||||
information, check the Telemetry guide. Possible values are (case
|
||||
@ -657,24 +656,46 @@ Telemetry (OpenTelemetry):
|
||||
all. Available only when Telemetry Logs functionality
|
||||
('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-logs-protocol <protocol>
|
||||
Telemetry (OpenTelemetry) protocol used for exporting logs. If not given, the
|
||||
value is inherited from the 'telemetry-protocol' option. Possible values
|
||||
are: grpc, http/protobuf. Available only when Telemetry Logs functionality
|
||||
OpenTelemetry protocol used for exporting logs. If not given, the value is
|
||||
inherited from the 'telemetry-protocol' option. Possible values are: grpc,
|
||||
http/protobuf. Available only when Telemetry Logs functionality
|
||||
('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-metrics-enabled <true|false>
|
||||
Enables exporting metrics to a destination handling OpenTelemetry metrics.
|
||||
Default: false. Available only when metrics and feature
|
||||
'opentelemetry-metrics:v1' are enabled.
|
||||
--telemetry-metrics-endpoint <url>
|
||||
OpenTelemetry endpoint to connect to for Metrics. If not given, the value is
|
||||
inherited from the 'telemetry-endpoint' option. Available only when metrics
|
||||
('metrics-enabled') and Telemetry Metrics functionality
|
||||
('telemetry-metrics-enabled') are enabled.
|
||||
--telemetry-metrics-interval <duration>
|
||||
The interval between the start of two metric export attempts to the
|
||||
destination handling OpenTelemetry metrics data. It accepts simplified
|
||||
format for time units as java.time.Duration (like 5000ms, 30s, 5m, 1h). If
|
||||
the value is only a number, it represents time in seconds. Default: 60s.
|
||||
Available only when metrics ('metrics-enabled') and Telemetry Metrics
|
||||
functionality ('telemetry-metrics-enabled') are enabled.
|
||||
--telemetry-metrics-protocol <protocol>
|
||||
OpenTelemetry protocol used for the metrics telemetry data. If not given, the
|
||||
value is inherited from the 'telemetry-protocol' option. Possible values
|
||||
are: grpc, http/protobuf. Available only when metrics ('metrics-enabled')
|
||||
and Telemetry Metrics functionality ('telemetry-metrics-enabled') are
|
||||
enabled.
|
||||
--telemetry-protocol <protocol>
|
||||
OpenTelemetry protocol used for the communication between server and
|
||||
OpenTelemetry collector. Possible values are: grpc, http/protobuf. Default:
|
||||
grpc. Available only when any of available OpenTelemetry components (Logs,
|
||||
Traces) is turned on.
|
||||
Metrics, Traces) is turned on.
|
||||
--telemetry-resource-attributes <attributes>
|
||||
OpenTelemetry resource attributes characterize the telemetry producer. Values
|
||||
in format 'key1=val1,key2=val2'. Available only when any of available
|
||||
OpenTelemetry components (Logs, Traces) is turned on.
|
||||
OpenTelemetry components (Logs, Metrics, Traces) is turned on.
|
||||
--telemetry-service-name <name>
|
||||
OpenTelemetry service name. Takes precedence over 'service.name' defined in
|
||||
the 'telemetry-resource-attributes' property. Default: keycloak. Available
|
||||
only when any of available OpenTelemetry components (Logs, Traces) is turned
|
||||
on.
|
||||
only when any of available OpenTelemetry components (Logs, Metrics, Traces)
|
||||
is turned on.
|
||||
|
||||
Tracing:
|
||||
|
||||
|
||||
@ -641,16 +641,15 @@ Telemetry (OpenTelemetry):
|
||||
|
||||
--telemetry-endpoint <url>
|
||||
OpenTelemetry endpoint to connect to. Default: http://localhost:4317.
|
||||
Available only when any of available OpenTelemetry components (Logs, Traces)
|
||||
is turned on.
|
||||
Available only when any of available OpenTelemetry components (Logs,
|
||||
Metrics, Traces) is turned on.
|
||||
--telemetry-logs-enabled <true|false>
|
||||
Enables exporting logs to a destination handling telemetry data (OpenTelemetry
|
||||
Logs). Default: false. Available only when feature 'opentelemetry-logs:v1'
|
||||
is enabled.
|
||||
Enables exporting logs to a destination handling OpenTelemetry logs. Default:
|
||||
false. Available only when feature 'opentelemetry-logs:v1' is enabled.
|
||||
--telemetry-logs-endpoint <url>
|
||||
Telemetry (OpenTelemetry) endpoint to export logs to. If not given, the value
|
||||
is inherited from the 'telemetry-endpoint' option. Available only when
|
||||
Telemetry Logs functionality ('telemetry-logs-enabled') is enabled.
|
||||
OpenTelemetry endpoint to export logs to. If not given, the value is inherited
|
||||
from the 'telemetry-endpoint' option. Available only when Telemetry Logs
|
||||
functionality ('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-logs-level <level>
|
||||
The most verbose log level exported to the telemetry endpoint. For more
|
||||
information, check the Telemetry guide. Possible values are (case
|
||||
@ -658,24 +657,46 @@ Telemetry (OpenTelemetry):
|
||||
all. Available only when Telemetry Logs functionality
|
||||
('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-logs-protocol <protocol>
|
||||
Telemetry (OpenTelemetry) protocol used for exporting logs. If not given, the
|
||||
value is inherited from the 'telemetry-protocol' option. Possible values
|
||||
are: grpc, http/protobuf. Available only when Telemetry Logs functionality
|
||||
OpenTelemetry protocol used for exporting logs. If not given, the value is
|
||||
inherited from the 'telemetry-protocol' option. Possible values are: grpc,
|
||||
http/protobuf. Available only when Telemetry Logs functionality
|
||||
('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-metrics-enabled <true|false>
|
||||
Enables exporting metrics to a destination handling OpenTelemetry metrics.
|
||||
Default: false. Available only when metrics and feature
|
||||
'opentelemetry-metrics:v1' are enabled.
|
||||
--telemetry-metrics-endpoint <url>
|
||||
OpenTelemetry endpoint to connect to for Metrics. If not given, the value is
|
||||
inherited from the 'telemetry-endpoint' option. Available only when metrics
|
||||
('metrics-enabled') and Telemetry Metrics functionality
|
||||
('telemetry-metrics-enabled') are enabled.
|
||||
--telemetry-metrics-interval <duration>
|
||||
The interval between the start of two metric export attempts to the
|
||||
destination handling OpenTelemetry metrics data. It accepts simplified
|
||||
format for time units as java.time.Duration (like 5000ms, 30s, 5m, 1h). If
|
||||
the value is only a number, it represents time in seconds. Default: 60s.
|
||||
Available only when metrics ('metrics-enabled') and Telemetry Metrics
|
||||
functionality ('telemetry-metrics-enabled') are enabled.
|
||||
--telemetry-metrics-protocol <protocol>
|
||||
OpenTelemetry protocol used for the metrics telemetry data. If not given, the
|
||||
value is inherited from the 'telemetry-protocol' option. Possible values
|
||||
are: grpc, http/protobuf. Available only when metrics ('metrics-enabled')
|
||||
and Telemetry Metrics functionality ('telemetry-metrics-enabled') are
|
||||
enabled.
|
||||
--telemetry-protocol <protocol>
|
||||
OpenTelemetry protocol used for the communication between server and
|
||||
OpenTelemetry collector. Possible values are: grpc, http/protobuf. Default:
|
||||
grpc. Available only when any of available OpenTelemetry components (Logs,
|
||||
Traces) is turned on.
|
||||
Metrics, Traces) is turned on.
|
||||
--telemetry-resource-attributes <attributes>
|
||||
OpenTelemetry resource attributes characterize the telemetry producer. Values
|
||||
in format 'key1=val1,key2=val2'. Available only when any of available
|
||||
OpenTelemetry components (Logs, Traces) is turned on.
|
||||
OpenTelemetry components (Logs, Metrics, Traces) is turned on.
|
||||
--telemetry-service-name <name>
|
||||
OpenTelemetry service name. Takes precedence over 'service.name' defined in
|
||||
the 'telemetry-resource-attributes' property. Default: keycloak. Available
|
||||
only when any of available OpenTelemetry components (Logs, Traces) is turned
|
||||
on.
|
||||
only when any of available OpenTelemetry components (Logs, Metrics, Traces)
|
||||
is turned on.
|
||||
|
||||
Tracing:
|
||||
|
||||
|
||||
@ -567,12 +567,12 @@ Telemetry (OpenTelemetry):
|
||||
|
||||
--telemetry-endpoint <url>
|
||||
OpenTelemetry endpoint to connect to. Default: http://localhost:4317.
|
||||
Available only when any of available OpenTelemetry components (Logs, Traces)
|
||||
is turned on.
|
||||
Available only when any of available OpenTelemetry components (Logs,
|
||||
Metrics, Traces) is turned on.
|
||||
--telemetry-logs-endpoint <url>
|
||||
Telemetry (OpenTelemetry) endpoint to export logs to. If not given, the value
|
||||
is inherited from the 'telemetry-endpoint' option. Available only when
|
||||
Telemetry Logs functionality ('telemetry-logs-enabled') is enabled.
|
||||
OpenTelemetry endpoint to export logs to. If not given, the value is inherited
|
||||
from the 'telemetry-endpoint' option. Available only when Telemetry Logs
|
||||
functionality ('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-logs-level <level>
|
||||
The most verbose log level exported to the telemetry endpoint. For more
|
||||
information, check the Telemetry guide. Possible values are (case
|
||||
@ -580,24 +580,42 @@ Telemetry (OpenTelemetry):
|
||||
all. Available only when Telemetry Logs functionality
|
||||
('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-logs-protocol <protocol>
|
||||
Telemetry (OpenTelemetry) protocol used for exporting logs. If not given, the
|
||||
value is inherited from the 'telemetry-protocol' option. Possible values
|
||||
are: grpc, http/protobuf. Available only when Telemetry Logs functionality
|
||||
OpenTelemetry protocol used for exporting logs. If not given, the value is
|
||||
inherited from the 'telemetry-protocol' option. Possible values are: grpc,
|
||||
http/protobuf. Available only when Telemetry Logs functionality
|
||||
('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-metrics-endpoint <url>
|
||||
OpenTelemetry endpoint to connect to for Metrics. If not given, the value is
|
||||
inherited from the 'telemetry-endpoint' option. Available only when metrics
|
||||
('metrics-enabled') and Telemetry Metrics functionality
|
||||
('telemetry-metrics-enabled') are enabled.
|
||||
--telemetry-metrics-interval <duration>
|
||||
The interval between the start of two metric export attempts to the
|
||||
destination handling OpenTelemetry metrics data. It accepts simplified
|
||||
format for time units as java.time.Duration (like 5000ms, 30s, 5m, 1h). If
|
||||
the value is only a number, it represents time in seconds. Default: 60s.
|
||||
Available only when metrics ('metrics-enabled') and Telemetry Metrics
|
||||
functionality ('telemetry-metrics-enabled') are enabled.
|
||||
--telemetry-metrics-protocol <protocol>
|
||||
OpenTelemetry protocol used for the metrics telemetry data. If not given, the
|
||||
value is inherited from the 'telemetry-protocol' option. Possible values
|
||||
are: grpc, http/protobuf. Available only when metrics ('metrics-enabled')
|
||||
and Telemetry Metrics functionality ('telemetry-metrics-enabled') are
|
||||
enabled.
|
||||
--telemetry-protocol <protocol>
|
||||
OpenTelemetry protocol used for the communication between server and
|
||||
OpenTelemetry collector. Possible values are: grpc, http/protobuf. Default:
|
||||
grpc. Available only when any of available OpenTelemetry components (Logs,
|
||||
Traces) is turned on.
|
||||
Metrics, Traces) is turned on.
|
||||
--telemetry-resource-attributes <attributes>
|
||||
OpenTelemetry resource attributes characterize the telemetry producer. Values
|
||||
in format 'key1=val1,key2=val2'. Available only when any of available
|
||||
OpenTelemetry components (Logs, Traces) is turned on.
|
||||
OpenTelemetry components (Logs, Metrics, Traces) is turned on.
|
||||
--telemetry-service-name <name>
|
||||
OpenTelemetry service name. Takes precedence over 'service.name' defined in
|
||||
the 'telemetry-resource-attributes' property. Default: keycloak. Available
|
||||
only when any of available OpenTelemetry components (Logs, Traces) is turned
|
||||
on.
|
||||
only when any of available OpenTelemetry components (Logs, Metrics, Traces)
|
||||
is turned on.
|
||||
|
||||
Tracing:
|
||||
|
||||
|
||||
@ -640,16 +640,15 @@ Telemetry (OpenTelemetry):
|
||||
|
||||
--telemetry-endpoint <url>
|
||||
OpenTelemetry endpoint to connect to. Default: http://localhost:4317.
|
||||
Available only when any of available OpenTelemetry components (Logs, Traces)
|
||||
is turned on.
|
||||
Available only when any of available OpenTelemetry components (Logs,
|
||||
Metrics, Traces) is turned on.
|
||||
--telemetry-logs-enabled <true|false>
|
||||
Enables exporting logs to a destination handling telemetry data (OpenTelemetry
|
||||
Logs). Default: false. Available only when feature 'opentelemetry-logs:v1'
|
||||
is enabled.
|
||||
Enables exporting logs to a destination handling OpenTelemetry logs. Default:
|
||||
false. Available only when feature 'opentelemetry-logs:v1' is enabled.
|
||||
--telemetry-logs-endpoint <url>
|
||||
Telemetry (OpenTelemetry) endpoint to export logs to. If not given, the value
|
||||
is inherited from the 'telemetry-endpoint' option. Available only when
|
||||
Telemetry Logs functionality ('telemetry-logs-enabled') is enabled.
|
||||
OpenTelemetry endpoint to export logs to. If not given, the value is inherited
|
||||
from the 'telemetry-endpoint' option. Available only when Telemetry Logs
|
||||
functionality ('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-logs-level <level>
|
||||
The most verbose log level exported to the telemetry endpoint. For more
|
||||
information, check the Telemetry guide. Possible values are (case
|
||||
@ -657,24 +656,46 @@ Telemetry (OpenTelemetry):
|
||||
all. Available only when Telemetry Logs functionality
|
||||
('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-logs-protocol <protocol>
|
||||
Telemetry (OpenTelemetry) protocol used for exporting logs. If not given, the
|
||||
value is inherited from the 'telemetry-protocol' option. Possible values
|
||||
are: grpc, http/protobuf. Available only when Telemetry Logs functionality
|
||||
OpenTelemetry protocol used for exporting logs. If not given, the value is
|
||||
inherited from the 'telemetry-protocol' option. Possible values are: grpc,
|
||||
http/protobuf. Available only when Telemetry Logs functionality
|
||||
('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-metrics-enabled <true|false>
|
||||
Enables exporting metrics to a destination handling OpenTelemetry metrics.
|
||||
Default: false. Available only when metrics and feature
|
||||
'opentelemetry-metrics:v1' are enabled.
|
||||
--telemetry-metrics-endpoint <url>
|
||||
OpenTelemetry endpoint to connect to for Metrics. If not given, the value is
|
||||
inherited from the 'telemetry-endpoint' option. Available only when metrics
|
||||
('metrics-enabled') and Telemetry Metrics functionality
|
||||
('telemetry-metrics-enabled') are enabled.
|
||||
--telemetry-metrics-interval <duration>
|
||||
The interval between the start of two metric export attempts to the
|
||||
destination handling OpenTelemetry metrics data. It accepts simplified
|
||||
format for time units as java.time.Duration (like 5000ms, 30s, 5m, 1h). If
|
||||
the value is only a number, it represents time in seconds. Default: 60s.
|
||||
Available only when metrics ('metrics-enabled') and Telemetry Metrics
|
||||
functionality ('telemetry-metrics-enabled') are enabled.
|
||||
--telemetry-metrics-protocol <protocol>
|
||||
OpenTelemetry protocol used for the metrics telemetry data. If not given, the
|
||||
value is inherited from the 'telemetry-protocol' option. Possible values
|
||||
are: grpc, http/protobuf. Available only when metrics ('metrics-enabled')
|
||||
and Telemetry Metrics functionality ('telemetry-metrics-enabled') are
|
||||
enabled.
|
||||
--telemetry-protocol <protocol>
|
||||
OpenTelemetry protocol used for the communication between server and
|
||||
OpenTelemetry collector. Possible values are: grpc, http/protobuf. Default:
|
||||
grpc. Available only when any of available OpenTelemetry components (Logs,
|
||||
Traces) is turned on.
|
||||
Metrics, Traces) is turned on.
|
||||
--telemetry-resource-attributes <attributes>
|
||||
OpenTelemetry resource attributes characterize the telemetry producer. Values
|
||||
in format 'key1=val1,key2=val2'. Available only when any of available
|
||||
OpenTelemetry components (Logs, Traces) is turned on.
|
||||
OpenTelemetry components (Logs, Metrics, Traces) is turned on.
|
||||
--telemetry-service-name <name>
|
||||
OpenTelemetry service name. Takes precedence over 'service.name' defined in
|
||||
the 'telemetry-resource-attributes' property. Default: keycloak. Available
|
||||
only when any of available OpenTelemetry components (Logs, Traces) is turned
|
||||
on.
|
||||
only when any of available OpenTelemetry components (Logs, Metrics, Traces)
|
||||
is turned on.
|
||||
|
||||
Tracing:
|
||||
|
||||
|
||||
@ -638,16 +638,15 @@ Telemetry (OpenTelemetry):
|
||||
|
||||
--telemetry-endpoint <url>
|
||||
OpenTelemetry endpoint to connect to. Default: http://localhost:4317.
|
||||
Available only when any of available OpenTelemetry components (Logs, Traces)
|
||||
is turned on.
|
||||
Available only when any of available OpenTelemetry components (Logs,
|
||||
Metrics, Traces) is turned on.
|
||||
--telemetry-logs-enabled <true|false>
|
||||
Enables exporting logs to a destination handling telemetry data (OpenTelemetry
|
||||
Logs). Default: false. Available only when feature 'opentelemetry-logs:v1'
|
||||
is enabled.
|
||||
Enables exporting logs to a destination handling OpenTelemetry logs. Default:
|
||||
false. Available only when feature 'opentelemetry-logs:v1' is enabled.
|
||||
--telemetry-logs-endpoint <url>
|
||||
Telemetry (OpenTelemetry) endpoint to export logs to. If not given, the value
|
||||
is inherited from the 'telemetry-endpoint' option. Available only when
|
||||
Telemetry Logs functionality ('telemetry-logs-enabled') is enabled.
|
||||
OpenTelemetry endpoint to export logs to. If not given, the value is inherited
|
||||
from the 'telemetry-endpoint' option. Available only when Telemetry Logs
|
||||
functionality ('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-logs-level <level>
|
||||
The most verbose log level exported to the telemetry endpoint. For more
|
||||
information, check the Telemetry guide. Possible values are (case
|
||||
@ -655,24 +654,46 @@ Telemetry (OpenTelemetry):
|
||||
all. Available only when Telemetry Logs functionality
|
||||
('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-logs-protocol <protocol>
|
||||
Telemetry (OpenTelemetry) protocol used for exporting logs. If not given, the
|
||||
value is inherited from the 'telemetry-protocol' option. Possible values
|
||||
are: grpc, http/protobuf. Available only when Telemetry Logs functionality
|
||||
OpenTelemetry protocol used for exporting logs. If not given, the value is
|
||||
inherited from the 'telemetry-protocol' option. Possible values are: grpc,
|
||||
http/protobuf. Available only when Telemetry Logs functionality
|
||||
('telemetry-logs-enabled') is enabled.
|
||||
--telemetry-metrics-enabled <true|false>
|
||||
Enables exporting metrics to a destination handling OpenTelemetry metrics.
|
||||
Default: false. Available only when metrics and feature
|
||||
'opentelemetry-metrics:v1' are enabled.
|
||||
--telemetry-metrics-endpoint <url>
|
||||
OpenTelemetry endpoint to connect to for Metrics. If not given, the value is
|
||||
inherited from the 'telemetry-endpoint' option. Available only when metrics
|
||||
('metrics-enabled') and Telemetry Metrics functionality
|
||||
('telemetry-metrics-enabled') are enabled.
|
||||
--telemetry-metrics-interval <duration>
|
||||
The interval between the start of two metric export attempts to the
|
||||
destination handling OpenTelemetry metrics data. It accepts simplified
|
||||
format for time units as java.time.Duration (like 5000ms, 30s, 5m, 1h). If
|
||||
the value is only a number, it represents time in seconds. Default: 60s.
|
||||
Available only when metrics ('metrics-enabled') and Telemetry Metrics
|
||||
functionality ('telemetry-metrics-enabled') are enabled.
|
||||
--telemetry-metrics-protocol <protocol>
|
||||
OpenTelemetry protocol used for the metrics telemetry data. If not given, the
|
||||
value is inherited from the 'telemetry-protocol' option. Possible values
|
||||
are: grpc, http/protobuf. Available only when metrics ('metrics-enabled')
|
||||
and Telemetry Metrics functionality ('telemetry-metrics-enabled') are
|
||||
enabled.
|
||||
--telemetry-protocol <protocol>
|
||||
OpenTelemetry protocol used for the communication between server and
|
||||
OpenTelemetry collector. Possible values are: grpc, http/protobuf. Default:
|
||||
grpc. Available only when any of available OpenTelemetry components (Logs,
|
||||
Traces) is turned on.
|
||||
Metrics, Traces) is turned on.
|
||||
--telemetry-resource-attributes <attributes>
|
||||
OpenTelemetry resource attributes characterize the telemetry producer. Values
|
||||
in format 'key1=val1,key2=val2'. Available only when any of available
|
||||
OpenTelemetry components (Logs, Traces) is turned on.
|
||||
OpenTelemetry components (Logs, Metrics, Traces) is turned on.
|
||||
--telemetry-service-name <name>
|
||||
OpenTelemetry service name. Takes precedence over 'service.name' defined in
|
||||
the 'telemetry-resource-attributes' property. Default: keycloak. Available
|
||||
only when any of available OpenTelemetry components (Logs, Traces) is turned
|
||||
on.
|
||||
only when any of available OpenTelemetry components (Logs, Metrics, Traces)
|
||||
is turned on.
|
||||
|
||||
Tracing:
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user