From d3f30621d4374a9fb3d7620d66171292cb3e5993 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 16 Oct 2025 23:21:48 +0200 Subject: [PATCH 1/5] Disable jmx in opensearch test containers --- .../opensearch/v3_0/AbstractOpenSearchTest.java | 3 ++- .../opensearch/rest/AbstractOpenSearchRestTest.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/instrumentation/opensearch/opensearch-java-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opensearch/v3_0/AbstractOpenSearchTest.java b/instrumentation/opensearch/opensearch-java-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opensearch/v3_0/AbstractOpenSearchTest.java index 3a98f1646458..ccd5e5bad1d9 100644 --- a/instrumentation/opensearch/opensearch-java-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opensearch/v3_0/AbstractOpenSearchTest.java +++ b/instrumentation/opensearch/opensearch-java-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opensearch/v3_0/AbstractOpenSearchTest.java @@ -64,7 +64,8 @@ void setUp() throws Exception { opensearch = new OpensearchContainer(DockerImageName.parse("opensearchproject/opensearch:1.3.6")) .withSecurityEnabled(); - opensearch.withEnv("OPENSEARCH_JAVA_OPTS", "-Xmx256m -Xms256m"); + opensearch.withEnv( + "OPENSEARCH_JAVA_OPTS", "-Xmx256m -Xms256m -Dcom.sun.management.jmxremote=false"); opensearch.start(); httpHost = URI.create(opensearch.getHttpHostAddress()); openSearchClient = buildOpenSearchClient(); diff --git a/instrumentation/opensearch/opensearch-rest-common/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/opensearch/rest/AbstractOpenSearchRestTest.java b/instrumentation/opensearch/opensearch-rest-common/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/opensearch/rest/AbstractOpenSearchRestTest.java index 4c51f14290a3..060f4676e67c 100644 --- a/instrumentation/opensearch/opensearch-rest-common/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/opensearch/rest/AbstractOpenSearchRestTest.java +++ b/instrumentation/opensearch/opensearch-rest-common/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/opensearch/rest/AbstractOpenSearchRestTest.java @@ -60,7 +60,8 @@ void setUp() throws Exception { new OpensearchContainer(DockerImageName.parse("opensearchproject/opensearch:1.3.6")) .withSecurityEnabled(); // limit memory usage - opensearch.withEnv("OPENSEARCH_JAVA_OPTS", "-Xmx256m -Xms256m"); + opensearch.withEnv( + "OPENSEARCH_JAVA_OPTS", "-Xmx256m -Xms256m -Dcom.sun.management.jmxremote=false"); opensearch.start(); httpHost = URI.create(opensearch.getHttpHostAddress()); From 822b2cdfb873c6c89449c1f3c4bb7c17541583d1 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 16 Oct 2025 23:31:42 +0200 Subject: [PATCH 2/5] Disable jmx in opensearch test containers --- .../opensearch/v3_0/AbstractOpenSearchTest.java | 4 +++- .../opensearch/rest/AbstractOpenSearchRestTest.java | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/instrumentation/opensearch/opensearch-java-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opensearch/v3_0/AbstractOpenSearchTest.java b/instrumentation/opensearch/opensearch-java-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opensearch/v3_0/AbstractOpenSearchTest.java index ccd5e5bad1d9..2dd524e1ac96 100644 --- a/instrumentation/opensearch/opensearch-java-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opensearch/v3_0/AbstractOpenSearchTest.java +++ b/instrumentation/opensearch/opensearch-java-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opensearch/v3_0/AbstractOpenSearchTest.java @@ -64,8 +64,10 @@ void setUp() throws Exception { opensearch = new OpensearchContainer(DockerImageName.parse("opensearchproject/opensearch:1.3.6")) .withSecurityEnabled(); + // limit memory usage and disable Log4j JMX to avoid cgroup detection issues in containers opensearch.withEnv( - "OPENSEARCH_JAVA_OPTS", "-Xmx256m -Xms256m -Dcom.sun.management.jmxremote=false"); + "OPENSEARCH_JAVA_OPTS", + "-Xmx256m -Xms256m -Dlog4j2.disableJmx=true -Dlog4j2.disable.jmx=true -XX:-UseContainerSupport"); opensearch.start(); httpHost = URI.create(opensearch.getHttpHostAddress()); openSearchClient = buildOpenSearchClient(); diff --git a/instrumentation/opensearch/opensearch-rest-common/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/opensearch/rest/AbstractOpenSearchRestTest.java b/instrumentation/opensearch/opensearch-rest-common/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/opensearch/rest/AbstractOpenSearchRestTest.java index 060f4676e67c..e86b67342630 100644 --- a/instrumentation/opensearch/opensearch-rest-common/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/opensearch/rest/AbstractOpenSearchRestTest.java +++ b/instrumentation/opensearch/opensearch-rest-common/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/opensearch/rest/AbstractOpenSearchRestTest.java @@ -59,9 +59,10 @@ void setUp() throws Exception { opensearch = new OpensearchContainer(DockerImageName.parse("opensearchproject/opensearch:1.3.6")) .withSecurityEnabled(); - // limit memory usage + // limit memory usage and disable Log4j JMX to avoid cgroup detection issues in containers opensearch.withEnv( - "OPENSEARCH_JAVA_OPTS", "-Xmx256m -Xms256m -Dcom.sun.management.jmxremote=false"); + "OPENSEARCH_JAVA_OPTS", + "-Xmx256m -Xms256m -Dlog4j2.disableJmx=true -Dlog4j2.disable.jmx=true -XX:-UseContainerSupport"); opensearch.start(); httpHost = URI.create(opensearch.getHttpHostAddress()); From aac81e6e4cdee47160e88549872f2ca07abd015f Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Fri, 17 Oct 2025 07:24:54 +0200 Subject: [PATCH 3/5] apply to elasticsearch too --- .../elasticsearch/apiclient/ElasticsearchClientTest.java | 4 +++- .../elasticsearch/rest/v5_0/ElasticsearchRest5Test.java | 4 +++- .../elasticsearch/rest/v6_4/ElasticsearchRest6Test.java | 4 +++- .../elasticsearch/rest/v7_0/ElasticsearchRest7Test.java | 4 +++- .../elasticsearch/rest/v7_0/ElasticsearchRest7Test.java | 4 +++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/instrumentation/elasticsearch/elasticsearch-api-client-7.16/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/apiclient/ElasticsearchClientTest.java b/instrumentation/elasticsearch/elasticsearch-api-client-7.16/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/apiclient/ElasticsearchClientTest.java index 284c41a820e6..e02cffa94dd2 100644 --- a/instrumentation/elasticsearch/elasticsearch-api-client-7.16/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/apiclient/ElasticsearchClientTest.java +++ b/instrumentation/elasticsearch/elasticsearch-api-client-7.16/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/apiclient/ElasticsearchClientTest.java @@ -59,7 +59,9 @@ static void setUp() { elasticsearch = new ElasticsearchContainer("docker.elastic.co/elasticsearch/elasticsearch:7.17.2"); // limit memory usage - elasticsearch.withEnv("ES_JAVA_OPTS", "-Xmx256m -Xms256m"); + elasticsearch.withEnv( + "ES_JAVA_OPTS", + "-Xmx256m -Xms256m -Dlog4j2.disableJmx=true -Dlog4j2.disable.jmx=true -XX:-UseContainerSupport"); elasticsearch.start(); httpHost = HttpHost.create(elasticsearch.getHttpHostAddress()); diff --git a/instrumentation/elasticsearch/elasticsearch-rest-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/v5_0/ElasticsearchRest5Test.java b/instrumentation/elasticsearch/elasticsearch-rest-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/v5_0/ElasticsearchRest5Test.java index 9617787c383b..aee8594e8f2d 100644 --- a/instrumentation/elasticsearch/elasticsearch-rest-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/v5_0/ElasticsearchRest5Test.java +++ b/instrumentation/elasticsearch/elasticsearch-rest-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/v5_0/ElasticsearchRest5Test.java @@ -61,7 +61,9 @@ static void setup() { new ElasticsearchContainer("docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.16"); } // limit memory usage - elasticsearch.withEnv("ES_JAVA_OPTS", "-Xmx256m -Xms256m"); + elasticsearch.withEnv( + "ES_JAVA_OPTS", + "-Xmx256m -Xms256m -Dlog4j2.disableJmx=true -Dlog4j2.disable.jmx=true -XX:-UseContainerSupport"); elasticsearch.start(); httpHost = HttpHost.create(elasticsearch.getHttpHostAddress()); diff --git a/instrumentation/elasticsearch/elasticsearch-rest-6.4/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/v6_4/ElasticsearchRest6Test.java b/instrumentation/elasticsearch/elasticsearch-rest-6.4/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/v6_4/ElasticsearchRest6Test.java index 35ba08f6d115..4acf889233a2 100644 --- a/instrumentation/elasticsearch/elasticsearch-rest-6.4/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/v6_4/ElasticsearchRest6Test.java +++ b/instrumentation/elasticsearch/elasticsearch-rest-6.4/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/v6_4/ElasticsearchRest6Test.java @@ -52,7 +52,9 @@ static void setUp() { elasticsearch = new ElasticsearchContainer("docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.16"); // limit memory usage - elasticsearch.withEnv("ES_JAVA_OPTS", "-Xmx256m -Xms256m"); + elasticsearch.withEnv( + "ES_JAVA_OPTS", + "-Xmx256m -Xms256m -Dlog4j2.disableJmx=true -Dlog4j2.disable.jmx=true -XX:-UseContainerSupport"); elasticsearch.start(); httpHost = HttpHost.create(elasticsearch.getHttpHostAddress()); diff --git a/instrumentation/elasticsearch/elasticsearch-rest-7.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/v7_0/ElasticsearchRest7Test.java b/instrumentation/elasticsearch/elasticsearch-rest-7.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/v7_0/ElasticsearchRest7Test.java index 8b0c091655df..c4747bf7568a 100644 --- a/instrumentation/elasticsearch/elasticsearch-rest-7.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/v7_0/ElasticsearchRest7Test.java +++ b/instrumentation/elasticsearch/elasticsearch-rest-7.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/rest/v7_0/ElasticsearchRest7Test.java @@ -55,7 +55,9 @@ static void setUp() { elasticsearch = new ElasticsearchContainer("docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2"); // limit memory usage - elasticsearch.withEnv("ES_JAVA_OPTS", "-Xmx256m -Xms256m"); + elasticsearch.withEnv( + "ES_JAVA_OPTS", + "-Xmx256m -Xms256m -Dlog4j2.disableJmx=true -Dlog4j2.disable.jmx=true -XX:-UseContainerSupport"); elasticsearch.start(); httpHost = HttpHost.create(elasticsearch.getHttpHostAddress()); diff --git a/instrumentation/elasticsearch/elasticsearch-rest-7.0/library/src/test/java/io/opentelemetry/instrumentation/elasticsearch/rest/v7_0/ElasticsearchRest7Test.java b/instrumentation/elasticsearch/elasticsearch-rest-7.0/library/src/test/java/io/opentelemetry/instrumentation/elasticsearch/rest/v7_0/ElasticsearchRest7Test.java index 0df2dd405521..1011fc02a5e3 100644 --- a/instrumentation/elasticsearch/elasticsearch-rest-7.0/library/src/test/java/io/opentelemetry/instrumentation/elasticsearch/rest/v7_0/ElasticsearchRest7Test.java +++ b/instrumentation/elasticsearch/elasticsearch-rest-7.0/library/src/test/java/io/opentelemetry/instrumentation/elasticsearch/rest/v7_0/ElasticsearchRest7Test.java @@ -51,7 +51,9 @@ static void setUp() { elasticsearch = new ElasticsearchContainer("docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2"); // limit memory usage - elasticsearch.withEnv("ES_JAVA_OPTS", "-Xmx256m -Xms256m"); + elasticsearch.withEnv( + "ES_JAVA_OPTS", + "-Xmx256m -Xms256m -Dlog4j2.disableJmx=true -Dlog4j2.disable.jmx=true -XX:-UseContainerSupport"); elasticsearch.start(); httpHost = HttpHost.create(elasticsearch.getHttpHostAddress()); From 5394500456f5d56a196ce24fa928e81efc692626 Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Fri, 17 Oct 2025 10:53:58 +0300 Subject: [PATCH 4/5] add logging --- .../elasticsearch/apiclient/ElasticsearchClientTest.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/instrumentation/elasticsearch/elasticsearch-api-client-7.16/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/apiclient/ElasticsearchClientTest.java b/instrumentation/elasticsearch/elasticsearch-api-client-7.16/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/apiclient/ElasticsearchClientTest.java index e02cffa94dd2..e78a249a24c3 100644 --- a/instrumentation/elasticsearch/elasticsearch-api-client-7.16/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/apiclient/ElasticsearchClientTest.java +++ b/instrumentation/elasticsearch/elasticsearch-api-client-7.16/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/apiclient/ElasticsearchClientTest.java @@ -40,10 +40,15 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testcontainers.containers.output.Slf4jLogConsumer; import org.testcontainers.elasticsearch.ElasticsearchContainer; @SuppressWarnings("deprecation") // using deprecated semconv class ElasticsearchClientTest { + private static final Logger logger = LoggerFactory.getLogger(ElasticsearchClientTest.class); + @RegisterExtension static final InstrumentationExtension testing = AgentInstrumentationExtension.create(); @@ -62,6 +67,7 @@ static void setUp() { elasticsearch.withEnv( "ES_JAVA_OPTS", "-Xmx256m -Xms256m -Dlog4j2.disableJmx=true -Dlog4j2.disable.jmx=true -XX:-UseContainerSupport"); + elasticsearch.withLogConsumer(new Slf4jLogConsumer(logger)); elasticsearch.start(); httpHost = HttpHost.create(elasticsearch.getHttpHostAddress()); From 51da3aba3fcbe0253da74752d553238dc95e1cbb Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Fri, 17 Oct 2025 11:24:44 +0300 Subject: [PATCH 5/5] update image version --- .../apiclient/ElasticsearchClientTest.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/instrumentation/elasticsearch/elasticsearch-api-client-7.16/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/apiclient/ElasticsearchClientTest.java b/instrumentation/elasticsearch/elasticsearch-api-client-7.16/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/apiclient/ElasticsearchClientTest.java index e78a249a24c3..686b55101a40 100644 --- a/instrumentation/elasticsearch/elasticsearch-api-client-7.16/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/apiclient/ElasticsearchClientTest.java +++ b/instrumentation/elasticsearch/elasticsearch-api-client-7.16/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/apiclient/ElasticsearchClientTest.java @@ -62,11 +62,9 @@ class ElasticsearchClientTest { @BeforeAll static void setUp() { elasticsearch = - new ElasticsearchContainer("docker.elastic.co/elasticsearch/elasticsearch:7.17.2"); + new ElasticsearchContainer("docker.elastic.co/elasticsearch/elasticsearch:7.17.28"); // limit memory usage - elasticsearch.withEnv( - "ES_JAVA_OPTS", - "-Xmx256m -Xms256m -Dlog4j2.disableJmx=true -Dlog4j2.disable.jmx=true -XX:-UseContainerSupport"); + elasticsearch.withEnv("ES_JAVA_OPTS", "-Xmx256m -Xms256m"); elasticsearch.withLogConsumer(new Slf4jLogConsumer(logger)); elasticsearch.start(); @@ -95,7 +93,7 @@ static void cleanUp() { @Test void elasticsearchStatus() throws IOException { InfoResponse response = client.info(); - assertThat(response.version().number()).isEqualTo("7.17.2"); + assertThat(response.version().number()).isEqualTo("7.17.28"); testing.waitAndAssertTraces( trace -> @@ -196,7 +194,7 @@ void elasticsearchStatusAsync() throws Exception { //noinspection ResultOfMethodCallIgnored countDownLatch.await(10, TimeUnit.SECONDS); - assertThat(request.getResponse().version().number()).isEqualTo("7.17.2"); + assertThat(request.getResponse().version().number()).isEqualTo("7.17.28"); testing.waitAndAssertTraces( trace ->