Skip to content

Commit 26095c6

Browse files
authored
Improved container logging information (#1409)
Signed-off-by: dhoard <doug.hoard@gmail.com>
1 parent 0960936 commit 26095c6

File tree

4 files changed

+21
-27
lines changed

4 files changed

+21
-27
lines changed

integration_test_suite/integration_tests/src/main/java/io/prometheus/jmx/test/support/environment/IsolatorExporterTestEnvironment.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,8 @@ private GenericContainer<?> createJavaAgentApplicationContainer() {
152152
.withCreateContainerCmdModifier(ContainerCmdModifier.getInstance())
153153
.withCommand("/bin/sh application.sh")
154154
.withExposedPorts(BASE_PORT, BASE_PORT + 1, BASE_PORT + 2)
155-
.withLogConsumer(TestContainerLogger.getInstance())
155+
.withLogConsumer(
156+
new TestContainerLogger("JMX_EXPORTER_ISOLATOR_JAVAAGENT", javaDockerImage))
156157
.withNetwork(network)
157158
.withNetworkAliases("application")
158159
.waitingFor(Wait.forLogMessage(".*JmxExampleApplication \\| Running.*\\n", 1))

integration_test_suite/integration_tests/src/main/java/io/prometheus/jmx/test/support/environment/JmxExporterTestEnvironment.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ private GenericContainer<?> createJavaAgentApplicationContainer() {
204204
.withCreateContainerCmdModifier(ContainerCmdModifier.getInstance())
205205
.withCommand("/bin/sh application.sh")
206206
.withExposedPorts(8888)
207-
.withLogConsumer(TestContainerLogger.getInstance())
207+
.withLogConsumer(new TestContainerLogger("JMX_EXPORTER_JAVAAGENT", javaDockerImage))
208208
.withNetwork(network)
209209
.withNetworkAliases("application")
210210
.waitingFor(Wait.forLogMessage(".*JmxExampleApplication \\| Running.*", 1))
@@ -228,7 +228,7 @@ private GenericContainer<?> createStandaloneApplicationContainer() {
228228
.withCreateContainerCmdModifier(ContainerCmdModifier.getInstance())
229229
.withCommand("/bin/sh application.sh")
230230
.withExposedPorts(9999)
231-
.withLogConsumer(TestContainerLogger.getInstance())
231+
.withLogConsumer(new TestContainerLogger("EXAMPLE_APPLICATION", javaDockerImage))
232232
.withNetwork(network)
233233
.withNetworkAliases("application")
234234
.waitingFor(Wait.forLogMessage(".*JmxExampleApplication \\| Running.*", 1))
@@ -252,7 +252,8 @@ private GenericContainer<?> createStandaloneExporterContainer() {
252252
.withCreateContainerCmdModifier(ContainerCmdModifier.getInstance())
253253
.withCommand("/bin/sh exporter.sh")
254254
.withExposedPorts(8888)
255-
.withLogConsumer(TestContainerLogger.getInstance())
255+
.withLogConsumer(
256+
new TestContainerLogger("JMX_EXPORTER_STANDALONE", javaDockerImage))
256257
.withNetwork(network)
257258
.withNetworkAliases("exporter")
258259
.waitingFor(Wait.forLogMessage(".*Standalone \\| Running.*", 1))

integration_test_suite/integration_tests/src/main/java/io/prometheus/jmx/test/support/environment/PrometheusTestEnvironment.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import io.prometheus.jmx.test.support.http.HttpResponse;
2525
import io.prometheus.jmx.test.support.throttle.ExponentialBackoffThrottle;
2626
import io.prometheus.jmx.test.support.throttle.Throttle;
27+
import io.prometheus.jmx.test.support.util.TestContainerLogger;
2728
import java.time.Duration;
2829
import java.util.ArrayList;
2930
import java.util.List;
@@ -225,13 +226,7 @@ private GenericContainer<?> createPrometheusContainer() {
225226
.withCreateContainerCmdModifier(ContainerCmdModifier.getInstance())
226227
.withExposedPorts(9090)
227228
.withLogConsumer(
228-
outputFrame -> {
229-
String string =
230-
outputFrame.getUtf8StringWithoutLineEnding().trim();
231-
if (!string.isBlank()) {
232-
System.out.println("> " + string);
233-
}
234-
})
229+
new TestContainerLogger("PROMETHEUS", prometheusDockerImage))
235230
.withNetwork(network)
236231
.withNetworkAliases("prometheus")
237232
.waitingFor(

integration_test_suite/integration_tests/src/main/java/io/prometheus/jmx/test/support/util/TestContainerLogger.java

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,33 +19,30 @@
1919
import java.util.function.Consumer;
2020
import org.testcontainers.containers.output.OutputFrame;
2121

22-
/** Class to implement SystemOutOutputFrameLogger */
22+
/** Class to implement TestContainerLogger */
2323
public class TestContainerLogger implements Consumer<OutputFrame> {
2424

25-
/** Singleton instance */
26-
private static final TestContainerLogger SINGLETON = new TestContainerLogger();
25+
private final String prefix;
26+
private final String dockerImage;
2727

28-
/** Constructor */
29-
private TestContainerLogger() {
30-
// INTENTIONALLY BLANK
28+
/**
29+
* Constructor
30+
*
31+
* @param prefix the prefix to use for the log messages
32+
* @param dockerImage the docker image to use for the log messages
33+
*/
34+
public TestContainerLogger(String prefix, String dockerImage) {
35+
this.prefix = prefix;
36+
this.dockerImage = dockerImage;
3137
}
3238

3339
@Override
3440
public void accept(OutputFrame outputFrame) {
3541
if (outputFrame != null) {
3642
String string = outputFrame.getUtf8StringWithoutLineEnding().trim();
3743
if (!string.isBlank()) {
38-
System.out.println("> " + string);
44+
System.out.println("[" + prefix + "] " + dockerImage + " | " + string);
3945
}
4046
}
4147
}
42-
43-
/**
44-
* Method to get the singleton instance of SystemOutOutputFrameLogger
45-
*
46-
* @return the singleton instance of SystemOutOutputFrameLogger
47-
*/
48-
public static TestContainerLogger getInstance() {
49-
return SINGLETON;
50-
}
5148
}

0 commit comments

Comments
 (0)