Browse Source

Polish "Add support for Grafana LGTM stack"

See gh-41551
pull/41646/head
Stéphane Nicoll 1 year ago
parent
commit
dabc83338b
  1. 6
      spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/otlp/GrafanaOpenTelemetryMetricsDockerComposeConnectionDetailsFactoryIntegrationTests.java
  2. 6
      spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/otlp/GrafanaOpenTelemetryTracingDockerComposeConnectionDetailsFactoryIntegrationTests.java
  3. 4
      spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/otlp/OpenTelemetryMetricsDockerComposeConnectionDetailsFactoryIntegrationTests.java
  4. 4
      spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/otlp/OpenTelemetryTracingDockerComposeConnectionDetailsFactoryIntegrationTests.java
  5. 2
      spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/otlp/OpenTelemetryMetricsDockerComposeConnectionDetailsFactory.java
  6. 2
      spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/otlp/OpenTelemetryTracingDockerComposeConnectionDetailsFactory.java
  7. 4
      spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/testcontainers.adoc
  8. 4
      spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactoryIntegrationTests.java
  9. 5
      spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryTracingContainerConnectionDetailsFactoryIntegrationTests.java
  10. 11
      spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactory.java
  11. 11
      spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryTracingContainerConnectionDetailsFactory.java
  12. 4
      spring-boot-project/spring-boot-testcontainers/src/main/resources/META-INF/spring.factories
  13. 12
      spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/TestImage.java

6
spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/otlp/GrafanaOtelMetricsDockerComposeConnectionDetailsFactoryIntegrationTests.java → spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/otlp/GrafanaOpenTelemetryMetricsDockerComposeConnectionDetailsFactoryIntegrationTests.java

@ -23,12 +23,12 @@ import org.springframework.boot.testsupport.container.TestImage;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
/** /**
* Integration tests for * Integration tests for {@link OpenTelemetryMetricsDockerComposeConnectionDetailsFactory}
* {@link OpenTelemetryMetricsDockerComposeConnectionDetailsFactory}. * using {@link TestImage#GRAFANA_OTEL_LGTM}.
* *
* @author Eddú Meléndez * @author Eddú Meléndez
*/ */
class GrafanaOtelMetricsDockerComposeConnectionDetailsFactoryIntegrationTests { class GrafanaOpenTelemetryMetricsDockerComposeConnectionDetailsFactoryIntegrationTests {
@DockerComposeTest(composeFile = "otlp-compose.yaml", image = TestImage.GRAFANA_OTEL_LGTM) @DockerComposeTest(composeFile = "otlp-compose.yaml", image = TestImage.GRAFANA_OTEL_LGTM)
void runCreatesConnectionDetails(OtlpMetricsConnectionDetails connectionDetails) { void runCreatesConnectionDetails(OtlpMetricsConnectionDetails connectionDetails) {

6
spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/otlp/GrafanaOtelTracingDockerComposeConnectionDetailsFactoryIntegrationTests.java → spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/otlp/GrafanaOpenTelemetryTracingDockerComposeConnectionDetailsFactoryIntegrationTests.java

@ -23,12 +23,12 @@ import org.springframework.boot.testsupport.container.TestImage;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
/** /**
* Integration tests for * Integration tests for {@link OpenTelemetryTracingDockerComposeConnectionDetailsFactory}
* {@link OpenTelemetryTracingDockerComposeConnectionDetailsFactory}. * using {@link TestImage#GRAFANA_OTEL_LGTM}.
* *
* @author Eddú Meléndez * @author Eddú Meléndez
*/ */
class GrafanaOtelTracingDockerComposeConnectionDetailsFactoryIntegrationTests { class GrafanaOpenTelemetryTracingDockerComposeConnectionDetailsFactoryIntegrationTests {
@DockerComposeTest(composeFile = "otlp-compose.yaml", image = TestImage.GRAFANA_OTEL_LGTM) @DockerComposeTest(composeFile = "otlp-compose.yaml", image = TestImage.GRAFANA_OTEL_LGTM)
void runCreatesConnectionDetails(OtlpTracingConnectionDetails connectionDetails) { void runCreatesConnectionDetails(OtlpTracingConnectionDetails connectionDetails) {

4
spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/otlp/OpenTelemetryMetricsDockerComposeConnectionDetailsFactoryIntegrationTests.java

@ -23,8 +23,8 @@ import org.springframework.boot.testsupport.container.TestImage;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
/** /**
* Integration tests for * Integration tests for {@link OpenTelemetryMetricsDockerComposeConnectionDetailsFactory}
* {@link OpenTelemetryMetricsDockerComposeConnectionDetailsFactory}. * using {@link TestImage#OPENTELEMETRY}.
* *
* @author Eddú Meléndez * @author Eddú Meléndez
*/ */

4
spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/otlp/OpenTelemetryTracingDockerComposeConnectionDetailsFactoryIntegrationTests.java

@ -23,8 +23,8 @@ import org.springframework.boot.testsupport.container.TestImage;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
/** /**
* Integration tests for * Integration tests for {@link OpenTelemetryTracingDockerComposeConnectionDetailsFactory}
* {@link OpenTelemetryTracingDockerComposeConnectionDetailsFactory}. * using {@link TestImage#OPENTELEMETRY}.
* *
* @author Eddú Meléndez * @author Eddú Meléndez
*/ */

2
spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/otlp/OpenTelemetryMetricsDockerComposeConnectionDetailsFactory.java

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2023 the original author or authors. * Copyright 2012-2024 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.

2
spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/otlp/OpenTelemetryTracingDockerComposeConnectionDetailsFactory.java

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2023 the original author or authors. * Copyright 2012-2024 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.

4
spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/testcontainers.adoc

@ -72,10 +72,10 @@ The following service connection factories are provided in the `spring-boot-test
| Containers of type `Neo4jContainer` | Containers of type `Neo4jContainer`
| `OtlpMetricsConnectionDetails` | `OtlpMetricsConnectionDetails`
| Containers named "otel/opentelemetry-collector-contrib" or `LgtmStackContainer` | Containers named "otel/opentelemetry-collector-contrib" or of type `LgtmStackContainer`
| `OtlpTracingConnectionDetails` | `OtlpTracingConnectionDetails`
| Containers named "otel/opentelemetry-collector-contrib" or `LgtmStackContainer` | Containers named "otel/opentelemetry-collector-contrib" or of type `LgtmStackContainer`
| `PulsarConnectionDetails` | `PulsarConnectionDetails`
| Containers of type `PulsarContainer` | Containers of type `PulsarContainer`

4
spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOtelLgtmMetricsContainerConnectionDetailsFactoryIntegrationTests.java → spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactoryIntegrationTests.java

@ -45,7 +45,7 @@ import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
/** /**
* Tests for {@link GrafanaOtelLgtmMetricsContainerConnectionDetailsFactory}. * Tests for {@link GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactory}.
* *
* @author Eddú Meléndez * @author Eddú Meléndez
*/ */
@ -53,7 +53,7 @@ import static org.assertj.core.api.Assertions.assertThat;
@TestPropertySource(properties = { "management.otlp.metrics.export.resource-attributes.service.name=test", @TestPropertySource(properties = { "management.otlp.metrics.export.resource-attributes.service.name=test",
"management.otlp.metrics.export.step=1s" }) "management.otlp.metrics.export.step=1s" })
@Testcontainers(disabledWithoutDocker = true) @Testcontainers(disabledWithoutDocker = true)
class GrafanaOtelLgtmMetricsContainerConnectionDetailsFactoryIntegrationTests { class GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactoryIntegrationTests {
@Container @Container
@ServiceConnection @ServiceConnection

5
spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOtelLgtmTracingContainerConnectionDetailsFactoryIntegrationTests.java → spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryTracingContainerConnectionDetailsFactoryIntegrationTests.java

@ -33,14 +33,13 @@ import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
/** /**
* Tests for * Tests for {@link GrafanaOpenTelemetryTracingContainerConnectionDetailsFactory}.
* {@link GrafanaOtelLgtmTracingContainerConnectionDetailsFactoryIntegrationTests}.
* *
* @author Eddú Meléndez * @author Eddú Meléndez
*/ */
@SpringJUnitConfig @SpringJUnitConfig
@Testcontainers(disabledWithoutDocker = true) @Testcontainers(disabledWithoutDocker = true)
class GrafanaOtelLgtmTracingContainerConnectionDetailsFactoryIntegrationTests { class GrafanaOpenTelemetryTracingContainerConnectionDetailsFactoryIntegrationTests {
@Container @Container
@ServiceConnection @ServiceConnection

11
spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOtelLgtmMetricsContainerConnectionDetailsFactory.java → spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactory.java

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2023 the original author or authors. * Copyright 2012-2024 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -16,7 +16,6 @@
package org.springframework.boot.testcontainers.service.connection.otlp; package org.springframework.boot.testcontainers.service.connection.otlp;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.grafana.LgtmStackContainer; import org.testcontainers.grafana.LgtmStackContainer;
import org.springframework.boot.actuate.autoconfigure.metrics.export.otlp.OtlpMetricsConnectionDetails; import org.springframework.boot.actuate.autoconfigure.metrics.export.otlp.OtlpMetricsConnectionDetails;
@ -27,15 +26,15 @@ import org.springframework.boot.testcontainers.service.connection.ServiceConnect
/** /**
* {@link ContainerConnectionDetailsFactory} to create * {@link ContainerConnectionDetailsFactory} to create
* {@link OtlpMetricsConnectionDetails} from a * {@link OtlpMetricsConnectionDetails} from a
* {@link ServiceConnection @ServiceConnection}-annotated {@link GenericContainer} using * {@link ServiceConnection @ServiceConnection}-annotated {@link LgtmStackContainer} using
* the {@code "otel/opentelemetry-collector-contrib"} image. * the {@code "grafana/otel-lgtmb"} image.
* *
* @author Eddú Meléndez * @author Eddú Meléndez
*/ */
class GrafanaOtelLgtmMetricsContainerConnectionDetailsFactory class GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactory
extends ContainerConnectionDetailsFactory<LgtmStackContainer, OtlpMetricsConnectionDetails> { extends ContainerConnectionDetailsFactory<LgtmStackContainer, OtlpMetricsConnectionDetails> {
GrafanaOtelLgtmMetricsContainerConnectionDetailsFactory() { GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactory() {
super(ANY_CONNECTION_NAME, super(ANY_CONNECTION_NAME,
"org.springframework.boot.actuate.autoconfigure.metrics.export.otlp.OtlpMetricsExportAutoConfiguration"); "org.springframework.boot.actuate.autoconfigure.metrics.export.otlp.OtlpMetricsExportAutoConfiguration");
} }

11
spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOtelLgtmTracingContainerConnectionDetailsFactory.java → spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/otlp/GrafanaOpenTelemetryTracingContainerConnectionDetailsFactory.java

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2023 the original author or authors. * Copyright 2012-2024 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -16,7 +16,6 @@
package org.springframework.boot.testcontainers.service.connection.otlp; package org.springframework.boot.testcontainers.service.connection.otlp;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.grafana.LgtmStackContainer; import org.testcontainers.grafana.LgtmStackContainer;
import org.springframework.boot.actuate.autoconfigure.tracing.otlp.OtlpTracingConnectionDetails; import org.springframework.boot.actuate.autoconfigure.tracing.otlp.OtlpTracingConnectionDetails;
@ -27,15 +26,15 @@ import org.springframework.boot.testcontainers.service.connection.ServiceConnect
/** /**
* {@link ContainerConnectionDetailsFactory} to create * {@link ContainerConnectionDetailsFactory} to create
* {@link OtlpTracingConnectionDetails} from a * {@link OtlpTracingConnectionDetails} from a
* {@link ServiceConnection @ServiceConnection}-annotated {@link GenericContainer} using * {@link ServiceConnection @ServiceConnection}-annotated {@link LgtmStackContainer} using
* the {@code "otel/opentelemetry-collector-contrib"} image. * the {@code "grafana/otel-lgtm"} image.
* *
* @author Eddú Meléndez * @author Eddú Meléndez
*/ */
class GrafanaOtelLgtmTracingContainerConnectionDetailsFactory class GrafanaOpenTelemetryTracingContainerConnectionDetailsFactory
extends ContainerConnectionDetailsFactory<LgtmStackContainer, OtlpTracingConnectionDetails> { extends ContainerConnectionDetailsFactory<LgtmStackContainer, OtlpTracingConnectionDetails> {
GrafanaOtelLgtmTracingContainerConnectionDetailsFactory() { GrafanaOpenTelemetryTracingContainerConnectionDetailsFactory() {
super(ANY_CONNECTION_NAME, "org.springframework.boot.actuate.autoconfigure.tracing.otlp.OtlpAutoConfiguration"); super(ANY_CONNECTION_NAME, "org.springframework.boot.actuate.autoconfigure.tracing.otlp.OtlpAutoConfiguration");
} }

4
spring-boot-project/spring-boot-testcontainers/src/main/resources/META-INF/spring.factories

@ -23,8 +23,8 @@ org.springframework.boot.testcontainers.service.connection.ldap.OpenLdapContaine
org.springframework.boot.testcontainers.service.connection.liquibase.LiquibaseContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.liquibase.LiquibaseContainerConnectionDetailsFactory,\
org.springframework.boot.testcontainers.service.connection.mongo.MongoContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.mongo.MongoContainerConnectionDetailsFactory,\
org.springframework.boot.testcontainers.service.connection.neo4j.Neo4jContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.neo4j.Neo4jContainerConnectionDetailsFactory,\
org.springframework.boot.testcontainers.service.connection.otlp.GrafanaOtelLgtmMetricsContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.otlp.GrafanaOpenTelemetryMetricsContainerConnectionDetailsFactory,\
org.springframework.boot.testcontainers.service.connection.otlp.GrafanaOtelLgtmTracingContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.otlp.GrafanaOpenTelemetryTracingContainerConnectionDetailsFactory,\
org.springframework.boot.testcontainers.service.connection.otlp.OpenTelemetryMetricsContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.otlp.OpenTelemetryMetricsContainerConnectionDetailsFactory,\
org.springframework.boot.testcontainers.service.connection.otlp.OpenTelemetryTracingContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.otlp.OpenTelemetryTracingContainerConnectionDetailsFactory,\
org.springframework.boot.testcontainers.service.connection.pulsar.PulsarContainerConnectionDetailsFactory,\ org.springframework.boot.testcontainers.service.connection.pulsar.PulsarContainerConnectionDetailsFactory,\

12
spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/TestImage.java

@ -101,6 +101,12 @@ public enum TestImage {
*/ */
ELASTICSEARCH_8("elasticsearch", "8.6.1"), ELASTICSEARCH_8("elasticsearch", "8.6.1"),
/**
* A container image suitable for testing Grafana OTel LGTM.
*/
GRAFANA_OTEL_LGTM("grafana/otel-lgtm", "0.6.0", () -> LgtmStackContainer.class,
(container) -> ((LgtmStackContainer) container).withStartupTimeout(Duration.ofMinutes(2))),
/** /**
* A container image suitable for testing Confluent's distribution of Kafka. * A container image suitable for testing Confluent's distribution of Kafka.
*/ */
@ -159,12 +165,6 @@ public enum TestImage {
*/ */
OPENTELEMETRY("otel/opentelemetry-collector-contrib", "0.75.0"), OPENTELEMETRY("otel/opentelemetry-collector-contrib", "0.75.0"),
/**
* A container image suitable for testing Grafana Otel LGTM.
*/
GRAFANA_OTEL_LGTM("grafana/otel-lgtm", "0.6.0", () -> LgtmStackContainer.class,
(container) -> ((LgtmStackContainer) container).withStartupTimeout(Duration.ofMinutes(2))),
/** /**
* A container image suitable for testing Postgres. * A container image suitable for testing Postgres.
*/ */

Loading…
Cancel
Save