diff --git a/extensions/observability-devservices/common/src/main/java/io/quarkus/observability/common/config/GrafanaConfig.java b/extensions/observability-devservices/common/src/main/java/io/quarkus/observability/common/config/GrafanaConfig.java index 0a41330202244..4050f9ae6abf9 100644 --- a/extensions/observability-devservices/common/src/main/java/io/quarkus/observability/common/config/GrafanaConfig.java +++ b/extensions/observability-devservices/common/src/main/java/io/quarkus/observability/common/config/GrafanaConfig.java @@ -2,6 +2,7 @@ import java.time.Duration; +import io.quarkus.observability.common.ContainerConstants; import io.quarkus.runtime.annotations.ConfigGroup; import io.smallrye.config.WithDefault; @@ -23,7 +24,7 @@ public interface GrafanaConfig extends ContainerConfig { /** * The port of the Grafana container. */ - @WithDefault("3000") + @WithDefault("" + ContainerConstants.GRAFANA_PORT) int grafanaPort(); /** diff --git a/extensions/observability-devservices/common/src/main/java/io/quarkus/observability/common/config/LgtmComponent.java b/extensions/observability-devservices/common/src/main/java/io/quarkus/observability/common/config/LgtmComponent.java new file mode 100644 index 0000000000000..d288d045fbe15 --- /dev/null +++ b/extensions/observability-devservices/common/src/main/java/io/quarkus/observability/common/config/LgtmComponent.java @@ -0,0 +1,10 @@ +package io.quarkus.observability.common.config; + +public enum LgtmComponent { + GRAFANA, + LOKI, + PROMETHEUS, + TEMPO, + OTELCOL, + ALL +} \ No newline at end of file diff --git a/extensions/observability-devservices/common/src/main/java/io/quarkus/observability/common/config/LgtmConfig.java b/extensions/observability-devservices/common/src/main/java/io/quarkus/observability/common/config/LgtmConfig.java index 62270762f6dbd..e54bddaa195a5 100644 --- a/extensions/observability-devservices/common/src/main/java/io/quarkus/observability/common/config/LgtmConfig.java +++ b/extensions/observability-devservices/common/src/main/java/io/quarkus/observability/common/config/LgtmConfig.java @@ -33,6 +33,14 @@ public interface LgtmConfig extends GrafanaConfig { // which is the default in OTEL exporter, // where we want http as a default with LGTM + /** + * Set of components to log. + * Comma separated set of components whose container log we want to output. + * + * @return set of components to log + */ + Optional> logging(); + /** * The LGTM's OTLP protocol. */ diff --git a/extensions/observability-devservices/testcontainers/src/main/java/io/quarkus/observability/testcontainers/LgtmContainer.java b/extensions/observability-devservices/testcontainers/src/main/java/io/quarkus/observability/testcontainers/LgtmContainer.java index 114a8aea2bb4b..1f20006ee3215 100644 --- a/extensions/observability-devservices/testcontainers/src/main/java/io/quarkus/observability/testcontainers/LgtmContainer.java +++ b/extensions/observability-devservices/testcontainers/src/main/java/io/quarkus/observability/testcontainers/LgtmContainer.java @@ -14,6 +14,7 @@ import io.quarkus.observability.common.ContainerConstants; import io.quarkus.observability.common.config.AbstractGrafanaConfig; +import io.quarkus.observability.common.config.LgtmComponent; import io.quarkus.observability.common.config.LgtmConfig; import io.quarkus.runtime.LaunchMode; import io.quarkus.utilities.OS; @@ -102,6 +103,9 @@ public LgtmContainer(LgtmConfig config, boolean scrapingRequired) { // always expose both -- since the LGTM image already does that as well addExposedPorts(ContainerConstants.OTEL_GRPC_EXPORTER_PORT, ContainerConstants.OTEL_HTTP_EXPORTER_PORT); + Optional> logging = config.logging(); + logging.ifPresent(set -> set.forEach(l -> withEnv("ENABLE_LOGS_" + l.name(), "true"))); + // Replacing bundled dashboards with our own addFileToContainer(DASHBOARDS_CONFIG.getBytes(), "/otel-lgtm/grafana/conf/provisioning/dashboards/grafana-dashboards.yaml"); @@ -202,6 +206,11 @@ public Optional> networkAliases() { return Optional.of(Set.of("lgtm", LGTM_NETWORK_ALIAS)); } + @Override + public Optional> logging() { + return Optional.empty(); + } + @Override public String otlpProtocol() { return ContainerConstants.OTEL_HTTP_PROTOCOL; diff --git a/integration-tests/observability-lgtm/src/main/resources/application.properties b/integration-tests/observability-lgtm/src/main/resources/application.properties index 8715ab7947e24..2347516905836 100644 --- a/integration-tests/observability-lgtm/src/main/resources/application.properties +++ b/integration-tests/observability-lgtm/src/main/resources/application.properties @@ -12,3 +12,4 @@ quarkus.micrometer.export.otlp.default-registry=true %prod.quarkus.otel.exporter.otlp.traces.endpoint=http://localhost:4318 #quarkus.observability.lgtm.image-name=grafana/otel-lgtm +#quarkus.observability.lgtm.logging=ALL