修复 Native 观测性兼容并补齐分层验证流程
This commit is contained in:
@@ -1,15 +1,51 @@
|
||||
package top.ddupan.iam.login;
|
||||
|
||||
import io.micrometer.core.instrument.MeterRegistry;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.micrometer.metrics.test.autoconfigure.AutoConfigureMetrics;
|
||||
import org.springframework.boot.micrometer.tracing.test.autoconfigure.AutoConfigureTracing;
|
||||
import org.springframework.boot.opentelemetry.autoconfigure.logging.otlp.OtlpLoggingConnectionDetails;
|
||||
import org.springframework.boot.opentelemetry.autoconfigure.logging.otlp.Transport;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
|
||||
import org.testcontainers.grafana.LgtmStackContainer;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
import org.testcontainers.utility.DockerImageName;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@Import(TestcontainersConfiguration.class)
|
||||
@SpringBootTest
|
||||
@AutoConfigureMetrics
|
||||
@AutoConfigureTracing
|
||||
@Testcontainers
|
||||
class IamLoginApplicationTests {
|
||||
|
||||
// Field-based service connections are recreated by the test context in AOT mode.
|
||||
@Container
|
||||
@ServiceConnection
|
||||
static final LgtmStackContainer grafanaLgtm = new LgtmStackContainer(
|
||||
DockerImageName.parse(TestcontainersConfiguration.LGTM_IMAGE));
|
||||
|
||||
@Autowired
|
||||
OtlpLoggingConnectionDetails loggingConnectionDetails;
|
||||
|
||||
@Autowired
|
||||
@Qualifier("prometheusMeterRegistry")
|
||||
MeterRegistry prometheus;
|
||||
|
||||
@Test
|
||||
void contextLoads() {
|
||||
void processCpuTimeCanBeRead() {
|
||||
assertThat(prometheus.get("process.cpu.time").functionCounter().count()).isFinite().isNotNegative();
|
||||
}
|
||||
|
||||
@Test
|
||||
void loggingConnectionUsesRunningContainer() {
|
||||
assertThat(grafanaLgtm.isRunning()).isTrue();
|
||||
assertThat(loggingConnectionDetails.getUrl(Transport.HTTP))
|
||||
.isEqualTo(grafanaLgtm.getOtlpHttpUrl() + "/v1/logs");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,10 +9,12 @@ import org.testcontainers.utility.DockerImageName;
|
||||
@TestConfiguration(proxyBeanMethods = false)
|
||||
class TestcontainersConfiguration {
|
||||
|
||||
static final String LGTM_IMAGE = "grafana/otel-lgtm@sha256:b966ea107831d526d9eb8fe4d2d86c9e5731392fad9dce8296bcf2072031f07c";
|
||||
|
||||
@Bean
|
||||
@ServiceConnection
|
||||
LgtmStackContainer grafanaLgtmContainer() {
|
||||
return new LgtmStackContainer(DockerImageName.parse("grafana/otel-lgtm:latest"));
|
||||
return new LgtmStackContainer(DockerImageName.parse(LGTM_IMAGE));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user