Skip to content

Commit 99ee59d

Browse files
committed
undo test refactoring
1 parent ca5a316 commit 99ee59d

File tree

2 files changed

+119
-129
lines changed

2 files changed

+119
-129
lines changed

modules/grafana/build.gradle

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,4 @@ dependencies {
1212
testImplementation 'io.opentelemetry:opentelemetry-api'
1313
testImplementation 'io.opentelemetry:opentelemetry-sdk'
1414
testImplementation 'io.opentelemetry:opentelemetry-exporter-otlp'
15-
16-
testImplementation project(':junit-jupiter')
17-
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.11.0'
18-
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.3'
19-
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.11.0'
20-
}
21-
22-
test {
23-
useJUnitPlatform()
2415
}

modules/grafana/src/test/java/org/testcontainers/grafana/LgtmStackContainerTest.java

Lines changed: 119 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@
2121
import io.restassured.RestAssured;
2222
import io.restassured.response.Response;
2323
import org.awaitility.Awaitility;
24-
import org.junit.jupiter.api.AfterAll;
25-
import org.junit.jupiter.api.BeforeAll;
26-
import org.junit.jupiter.api.Test;
24+
import org.junit.Test;
2725
import uk.org.webcompere.systemstubs.SystemStubs;
2826

2927
import java.time.Duration;
@@ -33,124 +31,125 @@
3331

3432
public class LgtmStackContainerTest {
3533

36-
private static final LgtmStackContainer lgtm = new LgtmStackContainer("grafana/otel-lgtm:0.11.1");
37-
38-
private static OpenTelemetrySdk openTelemetry;
39-
40-
@BeforeAll
41-
static void setup() {
42-
lgtm.start();
43-
OtlpGrpcSpanExporter spanExporter = OtlpGrpcSpanExporter
44-
.builder()
45-
.setTimeout(Duration.ofSeconds(1))
46-
.setEndpoint(lgtm.getOtlpGrpcUrl())
47-
.build();
48-
49-
OtlpGrpcLogRecordExporter logExporter = OtlpGrpcLogRecordExporter
50-
.builder()
51-
.setTimeout(Duration.ofSeconds(1))
52-
.setEndpoint(lgtm.getOtlpGrpcUrl())
53-
.build();
54-
55-
BatchSpanProcessor spanProcessor = BatchSpanProcessor
56-
.builder(spanExporter)
57-
.setScheduleDelay(500, TimeUnit.MILLISECONDS)
58-
.build();
59-
60-
SdkTracerProvider tracerProvider = SdkTracerProvider
61-
.builder()
62-
.addSpanProcessor(spanProcessor)
63-
.setResource(Resource.create(Attributes.of(AttributeKey.stringKey("service.name"), "test-service")))
64-
.build();
65-
66-
SdkLoggerProvider loggerProvider = SdkLoggerProvider
67-
.builder()
68-
.addLogRecordProcessor(SimpleLogRecordProcessor.create(logExporter))
69-
.build();
70-
71-
openTelemetry =
72-
OpenTelemetrySdk.builder().setTracerProvider(tracerProvider).setLoggerProvider(loggerProvider).build();
73-
}
74-
75-
@AfterAll
76-
static void cleanup() {
77-
openTelemetry.shutdown();
78-
lgtm.stop();
79-
}
80-
81-
@Test
82-
void shouldPublishMetric() throws Exception {
83-
String version = RestAssured
84-
.get(String.format("http://%s:%s/api/health", lgtm.getHost(), lgtm.getMappedPort(3000)))
85-
.jsonPath()
86-
.get("version");
87-
assertThat(version).isEqualTo("12.0.0");
88-
89-
OtlpConfig otlpConfig = createOtlpConfig(lgtm);
90-
MeterRegistry meterRegistry = SystemStubs
91-
.withEnvironmentVariable("OTEL_SERVICE_NAME", "testcontainers")
92-
.execute(() -> new OtlpMeterRegistry(otlpConfig, Clock.SYSTEM));
93-
Counter.builder("test.counter").register(meterRegistry).increment(2);
94-
95-
Awaitility
96-
.given()
97-
.pollInterval(Duration.ofSeconds(2))
98-
.atMost(Duration.ofSeconds(5))
99-
.ignoreExceptions()
100-
.untilAsserted(() -> {
101-
Response response = RestAssured
102-
.given()
103-
.queryParam("query", "test_counter_total{job=\"testcontainers\"}")
104-
.get(String.format("%s/api/v1/query", lgtm.getPrometheusHttpUrl()))
105-
.prettyPeek()
106-
.thenReturn();
107-
assertThat(response.getStatusCode()).isEqualTo(200);
108-
assertThat(response.body().jsonPath().getList("data.result[0].value")).contains("2");
109-
});
110-
}
111-
112-
@Test
113-
void shouldPublishLog() {
114-
Logger logger = openTelemetry.getSdkLoggerProvider().loggerBuilder("test").build();
115-
logger.logRecordBuilder().setBody("Test log!").setAttribute(AttributeKey.stringKey("job"), "test-job").emit();
116-
117-
Awaitility
118-
.given()
119-
.pollInterval(Duration.ofSeconds(2))
120-
.atMost(Duration.ofSeconds(5))
121-
.ignoreExceptions()
122-
.untilAsserted(() -> {
123-
Response response = RestAssured
124-
.given()
125-
.queryParam("query", "{service_name=\"unknown_service:java\"}")
126-
.get(String.format("%s/loki/api/v1/query_range", lgtm.getLokiUrl()))
127-
.prettyPeek()
128-
.thenReturn();
129-
assertThat(response.getStatusCode()).isEqualTo(200);
130-
assertThat(response.body().jsonPath().getString("data.result[0].values[0][1]")).isEqualTo("Test log!");
131-
});
132-
}
133-
13434
@Test
135-
void shouldPublishTrace() {
136-
Tracer tracer = openTelemetry.getTracer("test");
137-
Span span = tracer.spanBuilder("test").startSpan();
138-
span.end();
139-
140-
Awaitility
141-
.given()
142-
.pollInterval(Duration.ofSeconds(2))
143-
.atMost(Duration.ofSeconds(5))
144-
.ignoreExceptions()
145-
.untilAsserted(() -> {
146-
Response response = RestAssured
147-
.given()
148-
.get(String.format("%s/api/search", lgtm.getTempoUrl()))
149-
.prettyPeek()
150-
.thenReturn();
151-
assertThat(response.getStatusCode()).isEqualTo(200);
152-
assertThat(response.body().jsonPath().getString("traces[0].rootServiceName")).isEqualTo("test-service");
153-
});
35+
public void shouldPublishMetricsTracesAndLogs() throws Exception {
36+
try ( // container {
37+
LgtmStackContainer lgtm = new LgtmStackContainer("grafana/otel-lgtm:0.11.1")
38+
// }
39+
) {
40+
lgtm.start();
41+
42+
OtlpGrpcSpanExporter spanExporter = OtlpGrpcSpanExporter
43+
.builder()
44+
.setTimeout(Duration.ofSeconds(1))
45+
.setEndpoint(lgtm.getOtlpGrpcUrl())
46+
.build();
47+
48+
OtlpGrpcLogRecordExporter logExporter = OtlpGrpcLogRecordExporter
49+
.builder()
50+
.setTimeout(Duration.ofSeconds(1))
51+
.setEndpoint(lgtm.getOtlpGrpcUrl())
52+
.build();
53+
54+
BatchSpanProcessor spanProcessor = BatchSpanProcessor
55+
.builder(spanExporter)
56+
.setScheduleDelay(500, TimeUnit.MILLISECONDS)
57+
.build();
58+
59+
SdkTracerProvider tracerProvider = SdkTracerProvider
60+
.builder()
61+
.addSpanProcessor(spanProcessor)
62+
.setResource(Resource.create(Attributes.of(AttributeKey.stringKey("service.name"), "test-service")))
63+
.build();
64+
65+
SdkLoggerProvider loggerProvider = SdkLoggerProvider
66+
.builder()
67+
.addLogRecordProcessor(SimpleLogRecordProcessor.create(logExporter))
68+
.build();
69+
70+
OpenTelemetrySdk openTelemetry = OpenTelemetrySdk
71+
.builder()
72+
.setTracerProvider(tracerProvider)
73+
.setLoggerProvider(loggerProvider)
74+
.build();
75+
76+
// Metrics
77+
String version = RestAssured
78+
.get(String.format("http://%s:%s/api/health", lgtm.getHost(), lgtm.getMappedPort(3000)))
79+
.jsonPath()
80+
.get("version");
81+
assertThat(version).isEqualTo("12.0.0");
82+
83+
OtlpConfig otlpConfig = createOtlpConfig(lgtm);
84+
MeterRegistry meterRegistry = SystemStubs
85+
.withEnvironmentVariable("OTEL_SERVICE_NAME", "testcontainers")
86+
.execute(() -> new OtlpMeterRegistry(otlpConfig, Clock.SYSTEM));
87+
Counter.builder("test.counter").register(meterRegistry).increment(2);
88+
89+
Awaitility
90+
.given()
91+
.pollInterval(Duration.ofSeconds(2))
92+
.atMost(Duration.ofSeconds(5))
93+
.ignoreExceptions()
94+
.untilAsserted(() -> {
95+
Response response = RestAssured
96+
.given()
97+
.queryParam("query", "test_counter_total{job=\"testcontainers\"}")
98+
.get(String.format("%s/api/v1/query", lgtm.getPrometheusHttpUrl()))
99+
.prettyPeek()
100+
.thenReturn();
101+
assertThat(response.getStatusCode()).isEqualTo(200);
102+
assertThat(response.body().jsonPath().getList("data.result[0].value")).contains("2");
103+
});
104+
105+
// Logs
106+
Logger logger = openTelemetry.getSdkLoggerProvider().loggerBuilder("test").build();
107+
logger
108+
.logRecordBuilder()
109+
.setBody("Test log!")
110+
.setAttribute(AttributeKey.stringKey("job"), "test-job")
111+
.emit();
112+
113+
Awaitility
114+
.given()
115+
.pollInterval(Duration.ofSeconds(2))
116+
.atMost(Duration.ofSeconds(5))
117+
.ignoreExceptions()
118+
.untilAsserted(() -> {
119+
Response response = RestAssured
120+
.given()
121+
.queryParam("query", "{service_name=\"unknown_service:java\"}")
122+
.get(String.format("%s/loki/api/v1/query_range", lgtm.getLokiUrl()))
123+
.prettyPeek()
124+
.thenReturn();
125+
assertThat(response.getStatusCode()).isEqualTo(200);
126+
assertThat(response.body().jsonPath().getString("data.result[0].values[0][1]"))
127+
.isEqualTo("Test log!");
128+
});
129+
130+
// Traces
131+
Tracer tracer = openTelemetry.getTracer("test");
132+
Span span = tracer.spanBuilder("test").startSpan();
133+
span.end();
134+
135+
Awaitility
136+
.given()
137+
.pollInterval(Duration.ofSeconds(2))
138+
.atMost(Duration.ofSeconds(5))
139+
.ignoreExceptions()
140+
.untilAsserted(() -> {
141+
Response response = RestAssured
142+
.given()
143+
.get(String.format("%s/api/search", lgtm.getTempoUrl()))
144+
.prettyPeek()
145+
.thenReturn();
146+
assertThat(response.getStatusCode()).isEqualTo(200);
147+
assertThat(response.body().jsonPath().getString("traces[0].rootServiceName"))
148+
.isEqualTo("test-service");
149+
});
150+
151+
openTelemetry.close();
152+
}
154153
}
155154

156155
private static OtlpConfig createOtlpConfig(LgtmStackContainer lgtm) {

0 commit comments

Comments
 (0)