Updating tests to support using non-localhost Docker runtimes (#11106)

This commit is contained in:
Zachary Sistrunk 2024-04-24 17:18:06 -05:00 committed by GitHub
parent 4dae82c715
commit d4237fc01a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
45 changed files with 335 additions and 252 deletions

View File

@ -61,7 +61,7 @@ If you want to run a specific smoke test:
./gradlew :smoke-tests:test --tests '*SpringBootSmokeTest*'
```
# Smoke OpenTelemetry starter tests
## Smoke OpenTelemetry starter tests
Smoke tests for the [OpenTelemetry Spring starter](../../instrumentation/spring/starters/spring-boot-starter/README.md).
@ -83,6 +83,14 @@ Some of the instrumentation tests (and all of the smoke tests) spin up docker co
[testcontainers](https://www.testcontainers.org/). If you run out of space, you may wish to prune
old containers, images and volumes using `docker system prune --volumes`.
## Configuring Docker alternative
For some container environments, such as rootless Podman or a remotely hosted Docker,
testcontainers may need additional configuration to successfully run the tests.
The following environment variables can be used for configuration:
- `TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE` - The location of the Docker socket on the host. Default is `/var/run/docker.sock`
- `TESTCONTAINERS_HOST_OVERRIDE` - The hostname used for container-to-container communication. Default Docker is `localhost`, but rootless Podman uses `host.containers.internal`
# Troubleshooting CI Test Failures
CI test logs are pretty big around 75MB. To make it easier to troubleshoot test failures, you can download the raw logs from the CI job and then look for

View File

@ -96,7 +96,9 @@ abstract class SmokeTest {
client
.newCall(
new Request.Builder()
.url(String.format("http://localhost:%d/clear", backend.getMappedPort(8080)))
.url(
String.format(
"http://%s:%d/clear", backend.getHost(), backend.getMappedPort(8080)))
.build())
.execute()
.close();
@ -176,7 +178,9 @@ abstract class SmokeTest {
Request request =
new Request.Builder()
.url(String.format("http://localhost:%d/get-traces", backend.getMappedPort(8080)))
.url(
String.format(
"http://%s:%d/get-traces", backend.getHost(), backend.getMappedPort(8080)))
.build();
try (ResponseBody body = client.newCall(request).execute().body()) {

View File

@ -123,7 +123,9 @@ abstract class IntegrationTest {
client
.newCall(
new Request.Builder()
.url(String.format("http://localhost:%d/clear", backend.getMappedPort(8080)))
.url(
String.format(
"http://%s:%d/clear", backend.getHost(), backend.getMappedPort(8080)))
.build())
.execute()
.close();
@ -201,7 +203,9 @@ abstract class IntegrationTest {
Request request =
new Request.Builder()
.url(String.format("http://localhost:%d/get-traces", backend.getMappedPort(8080)))
.url(
String.format(
"http://%s:%d/get-traces", backend.getHost(), backend.getMappedPort(8080)))
.build();
try (ResponseBody body = client.newCall(request).execute().body()) {

View File

@ -15,7 +15,9 @@ import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
import io.opentelemetry.semconv.NetworkAttributes;
import io.opentelemetry.semconv.ServerAttributes;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.time.Duration;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
@ -44,11 +46,14 @@ public class CassandraClientTest {
@SuppressWarnings("rawtypes")
private static GenericContainer cassandra;
protected static String cassandraHost;
protected static String cassandraIp;
private static int cassandraPort;
private static Cluster cluster;
@BeforeAll
static void beforeAll() {
static void beforeAll() throws UnknownHostException {
cassandra =
new GenericContainer<>("cassandra:3")
.withEnv("JVM_OPTS", "-Xmx128m -Xms128m")
@ -57,10 +62,12 @@ public class CassandraClientTest {
.withStartupTimeout(Duration.ofMinutes(2));
cassandra.start();
cassandraHost = cassandra.getHost();
cassandraIp = InetAddress.getByName(cassandra.getHost()).getHostAddress();
cassandraPort = cassandra.getMappedPort(9042);
cluster =
Cluster.builder()
.addContactPointsWithPorts(new InetSocketAddress("localhost", cassandraPort))
.addContactPointsWithPorts(new InetSocketAddress(cassandra.getHost(), cassandraPort))
.build();
}
@ -87,9 +94,9 @@ public class CassandraClientTest {
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, cassandraHost),
equalTo(ServerAttributes.SERVER_PORT, cassandraPort),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, cassandraPort),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "cassandra"),
equalTo(
@ -103,9 +110,9 @@ public class CassandraClientTest {
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, cassandraHost),
equalTo(ServerAttributes.SERVER_PORT, cassandraPort),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, cassandraPort),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "cassandra"),
equalTo(DbIncubatingAttributes.DB_NAME, parameter.keyspace),
@ -124,9 +131,9 @@ public class CassandraClientTest {
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, cassandraHost),
equalTo(ServerAttributes.SERVER_PORT, cassandraPort),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, cassandraPort),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "cassandra"),
equalTo(
@ -165,9 +172,9 @@ public class CassandraClientTest {
.hasNoParent()
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, cassandraHost),
equalTo(ServerAttributes.SERVER_PORT, cassandraPort),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, cassandraPort),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "cassandra"),
equalTo(
@ -182,9 +189,9 @@ public class CassandraClientTest {
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, cassandraHost),
equalTo(ServerAttributes.SERVER_PORT, cassandraPort),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, cassandraPort),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "cassandra"),
equalTo(DbIncubatingAttributes.DB_NAME, parameter.keyspace),
@ -207,9 +214,9 @@ public class CassandraClientTest {
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, cassandraHost),
equalTo(ServerAttributes.SERVER_PORT, cassandraPort),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, cassandraPort),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "cassandra"),
equalTo(

View File

@ -32,7 +32,9 @@ import com.datastax.oss.driver.internal.core.config.typesafe.DefaultDriverConfig
import io.opentelemetry.api.trace.SpanKind;
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
import io.opentelemetry.semconv.NetworkAttributes;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.time.Duration;
import java.util.stream.Stream;
import org.junit.jupiter.api.AfterAll;
@ -52,6 +54,10 @@ public abstract class AbstractCassandraTest {
@SuppressWarnings("rawtypes")
private static GenericContainer cassandra;
protected static String cassandraHost;
protected static String cassandraIp;
protected static int cassandraPort;
protected abstract InstrumentationExtension testing();
@ -61,7 +67,7 @@ public abstract class AbstractCassandraTest {
}
@BeforeAll
static void beforeAll() {
static void beforeAll() throws UnknownHostException {
cassandra =
new GenericContainer<>("cassandra:4.0")
.withEnv("JVM_OPTS", "-Xmx128m -Xms128m")
@ -70,6 +76,8 @@ public abstract class AbstractCassandraTest {
.withStartupTimeout(Duration.ofMinutes(2));
cassandra.start();
cassandraHost = cassandra.getHost();
cassandraIp = InetAddress.getByName(cassandra.getHost()).getHostAddress();
cassandraPort = cassandra.getMappedPort(9042);
}
@ -100,14 +108,9 @@ public abstract class AbstractCassandraTest {
val.satisfiesAnyOf(
v -> assertThat(v).isEqualTo("ipv4"),
v -> assertThat(v).isEqualTo("ipv6"))),
equalTo(SERVER_ADDRESS, "localhost"),
equalTo(SERVER_ADDRESS, cassandraHost),
equalTo(SERVER_PORT, cassandraPort),
satisfies(
NetworkAttributes.NETWORK_PEER_ADDRESS,
val ->
val.satisfiesAnyOf(
v -> assertThat(v).isEqualTo("127.0.0.1"),
v -> assertThat(v).isEqualTo("0:0:0:0:0:0:0:1"))),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, cassandraPort),
equalTo(DB_SYSTEM, "cassandra"),
equalTo(DB_NAME, parameter.keyspace),
@ -159,14 +162,9 @@ public abstract class AbstractCassandraTest {
val.satisfiesAnyOf(
v -> assertThat(v).isEqualTo("ipv4"),
v -> assertThat(v).isEqualTo("ipv6"))),
equalTo(SERVER_ADDRESS, "localhost"),
equalTo(SERVER_ADDRESS, cassandraHost),
equalTo(SERVER_PORT, cassandraPort),
satisfies(
NetworkAttributes.NETWORK_PEER_ADDRESS,
val ->
val.satisfiesAnyOf(
v -> assertThat(v).isEqualTo("127.0.0.1"),
v -> assertThat(v).isEqualTo("0:0:0:0:0:0:0:1"))),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, cassandraPort),
equalTo(DB_SYSTEM, "cassandra"),
equalTo(DB_NAME, parameter.keyspace),
@ -338,7 +336,7 @@ public abstract class AbstractCassandraTest {
}
protected CqlSessionBuilder addContactPoint(CqlSessionBuilder sessionBuilder) {
sessionBuilder.addContactPoint(new InetSocketAddress("localhost", cassandraPort));
sessionBuilder.addContactPoint(new InetSocketAddress(cassandra.getHost(), cassandraPort));
return sessionBuilder;
}
}

View File

@ -65,14 +65,9 @@ public abstract class AbstractCassandra44Test extends AbstractCassandraTest {
val.satisfiesAnyOf(
v -> assertThat(v).isEqualTo("ipv4"),
v -> assertThat(v).isEqualTo("ipv6"))),
equalTo(SERVER_ADDRESS, "localhost"),
equalTo(SERVER_ADDRESS, cassandraHost),
equalTo(SERVER_PORT, cassandraPort),
satisfies(
NetworkAttributes.NETWORK_PEER_ADDRESS,
val ->
val.satisfiesAnyOf(
v -> assertThat(v).isEqualTo("127.0.0.1"),
v -> assertThat(v).isEqualTo("0:0:0:0:0:0:0:1"))),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, cassandraIp),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, cassandraPort),
equalTo(DB_SYSTEM, "cassandra"),
equalTo(DB_NAME, parameter.keyspace),

View File

@ -47,6 +47,7 @@ class HibernateReactiveTest {
private static final Vertx vertx = Vertx.vertx();
private static GenericContainer<?> container;
private static String host;
private static int port;
private static EntityManagerFactory entityManagerFactory;
private static Mutiny.SessionFactory mutinySessionFactory;
@ -64,7 +65,9 @@ class HibernateReactiveTest {
.withStartupTimeout(Duration.ofMinutes(2));
container.start();
host = container.getHost();
port = container.getMappedPort(5432);
System.setProperty("db.host", host);
System.setProperty("db.port", String.valueOf(port));
entityManagerFactory =
@ -308,7 +311,7 @@ class HibernateReactiveTest {
"select value0_.id as id1_0_0_, value0_.name as name2_0_0_ from Value value0_ where value0_.id=$?"),
equalTo(DB_OPERATION, "SELECT"),
equalTo(DB_SQL_TABLE, "Value"),
equalTo(SERVER_ADDRESS, "localhost"),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port)),
span ->
span.hasName("callback")

View File

@ -10,7 +10,7 @@
<properties>
<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
<property name="jakarta.persistence.jdbc.url" value="jdbc:postgresql://localhost:${db.port}/tempdb"/>
<property name="jakarta.persistence.jdbc.url" value="jdbc:postgresql://${db.host}:${db.port}/tempdb"/>
<property name="jakarta.persistence.jdbc.user" value="SA"/>
<property name="jakarta.persistence.jdbc.password" value="password123"/>
<property name="hibernate.connection.pool_size" value="10"/>

View File

@ -47,6 +47,7 @@ class HibernateReactiveTest {
private static final Vertx vertx = Vertx.vertx();
private static GenericContainer<?> container;
private static String host;
private static int port;
private static EntityManagerFactory entityManagerFactory;
private static Mutiny.SessionFactory mutinySessionFactory;
@ -64,7 +65,9 @@ class HibernateReactiveTest {
.withStartupTimeout(Duration.ofMinutes(2));
container.start();
host = container.getHost();
port = container.getMappedPort(5432);
System.setProperty("db.host", host);
System.setProperty("db.port", String.valueOf(port));
entityManagerFactory =
@ -300,7 +303,7 @@ class HibernateReactiveTest {
"select v1_0.id,v1_0.name from Value v1_0 where v1_0.id=$?"),
equalTo(DB_OPERATION, "SELECT"),
equalTo(DB_SQL_TABLE, "Value"),
equalTo(SERVER_ADDRESS, "localhost"),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port)),
span ->
span.hasName("callback")

View File

@ -10,7 +10,7 @@
<properties>
<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
<property name="jakarta.persistence.jdbc.url" value="jdbc:postgresql://localhost:${db.port}/tempdb"/>
<property name="jakarta.persistence.jdbc.url" value="jdbc:postgresql://${db.host}:${db.port}/tempdb"/>
<property name="jakarta.persistence.jdbc.user" value="SA"/>
<property name="jakarta.persistence.jdbc.password" value="password123"/>
<property name="hibernate.connection.pool_size" value="10"/>

View File

@ -28,6 +28,8 @@ public abstract class AbstractJedisTest {
private static final GenericContainer<?> REDIS_SERVER =
new GenericContainer<>("redis:6.2.3-alpine").withExposedPorts(6379);
private static String host;
private static int port;
private static Jedis jedis;
@ -35,8 +37,9 @@ public abstract class AbstractJedisTest {
@BeforeAll
static void setup() {
REDIS_SERVER.start();
host = REDIS_SERVER.getHost();
port = REDIS_SERVER.getMappedPort(6379);
jedis = new Jedis("localhost", port);
jedis = new Jedis(host, port);
}
@AfterAll
@ -64,7 +67,7 @@ public abstract class AbstractJedisTest {
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET foo ?"),
equalTo(DbIncubatingAttributes.DB_OPERATION, "SET"),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port))));
}
@ -85,7 +88,7 @@ public abstract class AbstractJedisTest {
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET foo ?"),
equalTo(DbIncubatingAttributes.DB_OPERATION, "SET"),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port))),
trace ->
trace.hasSpansSatisfyingExactly(
@ -96,7 +99,7 @@ public abstract class AbstractJedisTest {
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "GET foo"),
equalTo(DbIncubatingAttributes.DB_OPERATION, "GET"),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port))));
}
@ -117,7 +120,7 @@ public abstract class AbstractJedisTest {
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET foo ?"),
equalTo(DbIncubatingAttributes.DB_OPERATION, "SET"),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port))),
trace ->
trace.hasSpansSatisfyingExactly(
@ -128,7 +131,7 @@ public abstract class AbstractJedisTest {
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "RANDOMKEY"),
equalTo(DbIncubatingAttributes.DB_OPERATION, "RANDOMKEY"),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port))));
}
}

View File

@ -15,6 +15,8 @@ import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
import io.opentelemetry.semconv.NetworkAttributes;
import io.opentelemetry.semconv.ServerAttributes;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.assertj.core.api.AbstractLongAssert;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
@ -31,15 +33,21 @@ class Jedis30ClientTest {
static GenericContainer<?> redisServer =
new GenericContainer<>("redis:6.2.3-alpine").withExposedPorts(6379);
static String host;
static String ip;
static int port;
static Jedis jedis;
@BeforeAll
static void setup() {
static void setup() throws UnknownHostException {
redisServer.start();
host = redisServer.getHost();
ip = InetAddress.getByName(host).getHostAddress();
port = redisServer.getMappedPort(6379);
jedis = new Jedis("localhost", port);
jedis = new Jedis(host, port);
}
@AfterAll
@ -68,10 +76,10 @@ class Jedis30ClientTest {
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET foo ?"),
equalTo(DbIncubatingAttributes.DB_OPERATION, "SET"),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
satisfies(
NetworkAttributes.NETWORK_PEER_PORT,
AbstractLongAssert::isNotNegative))));
@ -94,10 +102,10 @@ class Jedis30ClientTest {
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET foo ?"),
equalTo(DbIncubatingAttributes.DB_OPERATION, "SET"),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
satisfies(
NetworkAttributes.NETWORK_PEER_PORT,
AbstractLongAssert::isNotNegative))),
@ -110,10 +118,10 @@ class Jedis30ClientTest {
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "GET foo"),
equalTo(DbIncubatingAttributes.DB_OPERATION, "GET"),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
satisfies(
NetworkAttributes.NETWORK_PEER_PORT,
AbstractLongAssert::isNotNegative))));
@ -136,10 +144,10 @@ class Jedis30ClientTest {
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET foo ?"),
equalTo(DbIncubatingAttributes.DB_OPERATION, "SET"),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
satisfies(
NetworkAttributes.NETWORK_PEER_PORT,
AbstractLongAssert::isNotNegative))),
@ -152,10 +160,10 @@ class Jedis30ClientTest {
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "RANDOMKEY"),
equalTo(DbIncubatingAttributes.DB_OPERATION, "RANDOMKEY"),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
satisfies(
NetworkAttributes.NETWORK_PEER_PORT,
AbstractLongAssert::isNotNegative))));

View File

@ -13,6 +13,8 @@ import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtens
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
import io.opentelemetry.semconv.NetworkAttributes;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
@ -28,15 +30,18 @@ class Jedis40ClientTest {
static GenericContainer<?> redisServer =
new GenericContainer<>("redis:6.2.3-alpine").withExposedPorts(6379);
static String ip;
static int port;
static Jedis jedis;
@BeforeAll
static void setup() {
static void setup() throws UnknownHostException {
redisServer.start();
port = redisServer.getMappedPort(6379);
jedis = new Jedis("localhost", port);
ip = InetAddress.getByName(redisServer.getHost()).getHostAddress();
jedis = new Jedis(redisServer.getHost(), port);
}
@AfterAll
@ -67,7 +72,7 @@ class Jedis40ClientTest {
equalTo(DbIncubatingAttributes.DB_OPERATION, "SET"),
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"))));
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip))));
}
@Test
@ -89,7 +94,7 @@ class Jedis40ClientTest {
equalTo(DbIncubatingAttributes.DB_OPERATION, "SET"),
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"))),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip))),
trace ->
trace.hasSpansSatisfyingExactly(
span ->
@ -101,7 +106,7 @@ class Jedis40ClientTest {
equalTo(DbIncubatingAttributes.DB_OPERATION, "GET"),
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"))));
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip))));
}
@Test
@ -123,7 +128,7 @@ class Jedis40ClientTest {
equalTo(DbIncubatingAttributes.DB_OPERATION, "SET"),
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"))),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip))),
trace ->
trace.hasSpansSatisfyingExactly(
span ->
@ -135,6 +140,6 @@ class Jedis40ClientTest {
equalTo(DbIncubatingAttributes.DB_OPERATION, "RANDOMKEY"),
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"))));
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip))));
}
}

View File

@ -68,7 +68,8 @@ abstract class AbstractJms1Test {
broker.start();
connectionFactory =
new ActiveMQConnectionFactory("tcp://localhost:" + broker.getMappedPort(61616));
new ActiveMQConnectionFactory(
"tcp://" + broker.getHost() + ":" + broker.getMappedPort(61616));
Connection connection = connectionFactory.createConnection();
connection.start();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

View File

@ -75,7 +75,8 @@ abstract class AbstractJms3Test {
broker.start();
connectionFactory =
new ActiveMQConnectionFactory("tcp://localhost:" + broker.getMappedPort(61616));
new ActiveMQConnectionFactory(
"tcp://" + broker.getHost() + ":" + broker.getMappedPort(61616));
connectionFactory.setUser("test");
connectionFactory.setPassword("test");

View File

@ -46,7 +46,10 @@ abstract class AbstractLettuceClientTest {
protected static StatefulRedisConnection<String, String> connection;
protected static String ip;
protected static String host;
protected static int port;
protected static String embeddedDbUri;

View File

@ -30,6 +30,8 @@ import io.opentelemetry.instrumentation.test.utils.PortUtils;
import io.opentelemetry.sdk.trace.data.StatusData;
import io.opentelemetry.semconv.ServerAttributes;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Map;
import java.util.concurrent.CancellationException;
import java.util.concurrent.CompletableFuture;
@ -58,9 +60,11 @@ class LettuceAsyncClientTest extends AbstractLettuceClientTest {
private static RedisAsyncCommands<String, String> asyncCommands;
@BeforeAll
static void setUp() {
static void setUp() throws UnknownHostException {
redisServer.start();
host = redisServer.getHost();
ip = InetAddress.getByName(host).getHostAddress();
port = redisServer.getMappedPort(6379);
embeddedDbUri = "redis://" + host + ":" + port + "/" + DB_INDEX;
@ -154,7 +158,11 @@ class LettuceAsyncClientTest extends AbstractLettuceClientTest {
"io.netty.channel.AbstractChannel.AnnotatedConnectException"),
equalTo(
AttributeKey.stringKey("exception.message"),
"Connection refused: localhost/127.0.0.1:"
"Connection refused: "
+ host
+ "/"
+ ip
+ ":"
+ incorrectPort),
satisfies(
AttributeKey.stringKey("exception.stacktrace"),

View File

@ -17,6 +17,8 @@ import io.opentelemetry.api.common.AttributeKey;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.trace.SpanKind;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
@ -32,10 +34,11 @@ class LettuceReactiveClientTest extends AbstractLettuceClientTest {
private static RedisReactiveCommands<String, String> reactiveCommands;
@BeforeAll
static void setUp() {
static void setUp() throws UnknownHostException {
redisServer.start();
host = redisServer.getHost();
ip = InetAddress.getByName(host).getHostAddress();
port = redisServer.getMappedPort(6379);
embeddedDbUri = "redis://" + host + ":" + port + "/" + DB_INDEX;

View File

@ -21,6 +21,8 @@ import io.opentelemetry.instrumentation.test.utils.PortUtils;
import io.opentelemetry.sdk.trace.data.StatusData;
import io.opentelemetry.semconv.ServerAttributes;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Map;
import org.assertj.core.api.AbstractAssert;
import org.junit.jupiter.api.AfterAll;
@ -40,9 +42,10 @@ class LettuceSyncClientTest extends AbstractLettuceClientTest {
private static RedisCommands<String, String> syncCommands;
@BeforeAll
static void setUp() {
static void setUp() throws UnknownHostException {
redisServer.start();
host = redisServer.getHost();
ip = InetAddress.getByName(host).getHostAddress();
port = redisServer.getMappedPort(6379);
embeddedDbUri = "redis://" + host + ":" + port + "/" + DB_INDEX;
@ -121,7 +124,11 @@ class LettuceSyncClientTest extends AbstractLettuceClientTest {
"io.netty.channel.AbstractChannel.AnnotatedConnectException"),
equalTo(
AttributeKey.stringKey("exception.message"),
"Connection refused: localhost/127.0.0.1:"
"Connection refused: "
+ host
+ "/"
+ ip
+ ":"
+ incorrectPort),
satisfies(
AttributeKey.stringKey("exception.stacktrace"),

View File

@ -53,9 +53,9 @@ class LettuceReactiveClientTest extends AbstractLettuceReactiveClientTest {
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET a ?"))
@ -68,9 +68,9 @@ class LettuceReactiveClientTest extends AbstractLettuceReactiveClientTest {
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "GET a"))

View File

@ -24,6 +24,8 @@ import io.opentelemetry.sdk.testing.assertj.SpanDataAssert;
import io.opentelemetry.semconv.NetworkAttributes;
import io.opentelemetry.semconv.ServerAttributes;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@ -53,9 +55,10 @@ public abstract class AbstractLettuceAsyncClientTest extends AbstractLettuceClie
private static RedisAsyncCommands<String, String> asyncCommands;
@BeforeAll
void setUp() {
void setUp() throws UnknownHostException {
redisServer.start();
host = redisServer.getHost();
ip = InetAddress.getByName(host).getHostAddress();
port = redisServer.getMappedPort(6379);
embeddedDbUri = "redis://" + host + ":" + port + "/" + DB_INDEX;
@ -144,9 +147,9 @@ public abstract class AbstractLettuceAsyncClientTest extends AbstractLettuceClie
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET TESTSETKEY ?"))
@ -190,9 +193,9 @@ public abstract class AbstractLettuceAsyncClientTest extends AbstractLettuceClie
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "GET TESTKEY"))
@ -268,9 +271,9 @@ public abstract class AbstractLettuceAsyncClientTest extends AbstractLettuceClie
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(
@ -335,9 +338,9 @@ public abstract class AbstractLettuceAsyncClientTest extends AbstractLettuceClie
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "RANDOMKEY"))
@ -394,9 +397,9 @@ public abstract class AbstractLettuceAsyncClientTest extends AbstractLettuceClie
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(
@ -412,9 +415,9 @@ public abstract class AbstractLettuceAsyncClientTest extends AbstractLettuceClie
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "HGETALL TESTHM"))

View File

@ -46,7 +46,11 @@ abstract class AbstractLettuceClientTest {
protected abstract RedisClient createClient(String uri);
protected static String host;
protected static String ip;
protected static int port;
protected static String embeddedDbUri;
protected ContainerConnection newContainerConnection() {

View File

@ -15,6 +15,8 @@ import io.opentelemetry.api.trace.SpanKind;
import io.opentelemetry.semconv.NetworkAttributes;
import io.opentelemetry.semconv.ServerAttributes;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
@ -31,10 +33,11 @@ public abstract class AbstractLettuceReactiveClientTest extends AbstractLettuceC
protected static RedisReactiveCommands<String, String> reactiveCommands;
@BeforeAll
void setUp() {
void setUp() throws UnknownHostException {
redisServer.start();
host = redisServer.getHost();
ip = InetAddress.getByName(host).getHostAddress();
port = redisServer.getMappedPort(6379);
embeddedDbUri = "redis://" + host + ":" + port + "/" + DB_INDEX;
expectedHostAttributeValue = Objects.equals(host, "127.0.0.1") ? null : host;
@ -91,9 +94,9 @@ public abstract class AbstractLettuceReactiveClientTest extends AbstractLettuceC
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET TESTSETKEY ?"))
@ -129,9 +132,9 @@ public abstract class AbstractLettuceReactiveClientTest extends AbstractLettuceC
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "GET TESTKEY"))
@ -178,9 +181,9 @@ public abstract class AbstractLettuceReactiveClientTest extends AbstractLettuceC
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(
@ -216,9 +219,9 @@ public abstract class AbstractLettuceReactiveClientTest extends AbstractLettuceC
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "RANDOMKEY"))
@ -240,9 +243,9 @@ public abstract class AbstractLettuceReactiveClientTest extends AbstractLettuceC
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "COMMAND"))
@ -285,9 +288,9 @@ public abstract class AbstractLettuceReactiveClientTest extends AbstractLettuceC
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET a ?"))
@ -300,9 +303,9 @@ public abstract class AbstractLettuceReactiveClientTest extends AbstractLettuceC
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "GET a"))
@ -329,9 +332,9 @@ public abstract class AbstractLettuceReactiveClientTest extends AbstractLettuceC
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET a ?"))
@ -344,9 +347,9 @@ public abstract class AbstractLettuceReactiveClientTest extends AbstractLettuceC
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "GET a"))

View File

@ -13,6 +13,8 @@ import io.opentelemetry.api.trace.SpanKind;
import io.opentelemetry.semconv.NetworkAttributes;
import io.opentelemetry.semconv.ServerAttributes;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@ -20,11 +22,12 @@ import org.junit.jupiter.api.Test;
public abstract class AbstractLettuceSyncClientAuthTest extends AbstractLettuceClientTest {
@BeforeAll
void setUp() {
void setUp() throws UnknownHostException {
redisServer = redisServer.withCommand("redis-server", "--requirepass password");
redisServer.start();
host = redisServer.getHost();
ip = InetAddress.getByName(host).getHostAddress();
port = redisServer.getMappedPort(6379);
embeddedDbUri = "redis://" + host + ":" + port + "/" + DB_INDEX;
@ -65,9 +68,9 @@ public abstract class AbstractLettuceSyncClientAuthTest extends AbstractLettuceC
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "AUTH ?"))

View File

@ -23,6 +23,8 @@ import io.opentelemetry.instrumentation.test.utils.PortUtils;
import io.opentelemetry.semconv.NetworkAttributes;
import io.opentelemetry.semconv.ServerAttributes;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Base64;
import java.util.Map;
import org.junit.jupiter.api.AfterAll;
@ -32,7 +34,6 @@ import org.junit.jupiter.api.Test;
public abstract class AbstractLettuceSyncClientTest extends AbstractLettuceClientTest {
private static String dbUriNonExistent;
private static String embeddedDbLocalhostUri;
private static final ImmutableMap<String, String> testHashMap =
ImmutableMap.of(
@ -43,13 +44,13 @@ public abstract class AbstractLettuceSyncClientTest extends AbstractLettuceClien
private static RedisCommands<String, String> syncCommands;
@BeforeAll
void setUp() {
void setUp() throws UnknownHostException {
redisServer.start();
host = redisServer.getHost();
ip = InetAddress.getByName(host).getHostAddress();
port = redisServer.getMappedPort(6379);
embeddedDbUri = "redis://" + host + ":" + port + "/" + DB_INDEX;
embeddedDbLocalhostUri = "redis://localhost:" + port + "/" + DB_INDEX;
int incorrectPort = PortUtils.findOpenPort();
dbUriNonExistent = "redis://" + host + ":" + incorrectPort + "/" + DB_INDEX;
@ -112,41 +113,9 @@ public abstract class AbstractLettuceSyncClientTest extends AbstractLettuceClien
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET TESTSETKEY ?"))
.hasEventsSatisfyingExactly(
event -> event.hasName("redis.encode.start"),
event -> event.hasName("redis.encode.end"))));
}
@Test
void testSetCommandLocalhost() {
RedisClient testConnectionClient = createClient(embeddedDbLocalhostUri);
testConnectionClient.setOptions(LettuceTestUtil.CLIENT_OPTIONS);
cleanup.deferCleanup(testConnectionClient::shutdown);
StatefulRedisConnection<String, String> testConnection = testConnectionClient.connect();
cleanup.deferCleanup(testConnection);
String res = testConnection.sync().set("TESTSETKEY", "TESTSETVAL");
assertThat(res).isEqualTo("OK");
getInstrumentationExtension()
.waitAndAssertTraces(
trace ->
trace.hasSpansSatisfyingExactly(
span ->
span.hasName("SET")
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET TESTSETKEY ?"))
@ -169,9 +138,9 @@ public abstract class AbstractLettuceSyncClientTest extends AbstractLettuceClien
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "GET TESTKEY"))
@ -194,9 +163,9 @@ public abstract class AbstractLettuceSyncClientTest extends AbstractLettuceClien
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(
@ -220,9 +189,9 @@ public abstract class AbstractLettuceSyncClientTest extends AbstractLettuceClien
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "RANDOMKEY"))
@ -249,10 +218,10 @@ public abstract class AbstractLettuceSyncClientTest extends AbstractLettuceClien
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(
NetworkAttributes.NETWORK_PEER_PORT, containerConnection.port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, containerConnection.port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "LPUSH TESTLIST ?"))
@ -275,9 +244,9 @@ public abstract class AbstractLettuceSyncClientTest extends AbstractLettuceClien
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(
@ -302,9 +271,9 @@ public abstract class AbstractLettuceSyncClientTest extends AbstractLettuceClien
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "HGETALL TESTHM"))
@ -334,9 +303,9 @@ public abstract class AbstractLettuceSyncClientTest extends AbstractLettuceClien
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(
@ -362,9 +331,9 @@ public abstract class AbstractLettuceSyncClientTest extends AbstractLettuceClien
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "MSET key1 ? key2 ?"))
@ -391,10 +360,10 @@ public abstract class AbstractLettuceSyncClientTest extends AbstractLettuceClien
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(
NetworkAttributes.NETWORK_PEER_PORT, containerConnection.port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, containerConnection.port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "DEBUG SEGFAULT")));
@ -405,10 +374,10 @@ public abstract class AbstractLettuceSyncClientTest extends AbstractLettuceClien
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(
NetworkAttributes.NETWORK_PEER_PORT, containerConnection.port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, containerConnection.port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "DEBUG SEGFAULT"))
@ -440,10 +409,10 @@ public abstract class AbstractLettuceSyncClientTest extends AbstractLettuceClien
.hasException(new RedisException("Connection disconnected"))
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(
NetworkAttributes.NETWORK_PEER_PORT, containerConnection.port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, containerConnection.port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SHUTDOWN NOSAVE")));
@ -455,10 +424,10 @@ public abstract class AbstractLettuceSyncClientTest extends AbstractLettuceClien
.hasAttributesSatisfyingExactly(
equalTo(AttributeKey.stringKey("error"), "Connection disconnected"),
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(
NetworkAttributes.NETWORK_PEER_PORT, containerConnection.port),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, containerConnection.port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SHUTDOWN NOSAVE"))

View File

@ -29,7 +29,7 @@ abstract class AbstractMongo31ClientTest extends AbstractMongoClientTest<MongoCo
def setupSpec() throws Exception {
def options = MongoClientOptions.builder().description("some-description")
configureMongoClientOptions(options)
client = new MongoClient(new ServerAddress("localhost", port), options.build())
client = new MongoClient(new ServerAddress(host, port), options.build())
}
def cleanupSpec() throws Exception {
@ -47,7 +47,7 @@ abstract class AbstractMongo31ClientTest extends AbstractMongoClientTest<MongoCo
void createCollectionNoDescription(String dbName, String collectionName) {
def options = MongoClientOptions.builder()
configureMongoClientOptions(options)
MongoDatabase db = new MongoClient(new ServerAddress("localhost", port), options.build()).getDatabase(dbName)
MongoDatabase db = new MongoClient(new ServerAddress(host, port), options.build()).getDatabase(dbName)
db.createCollection(collectionName)
}
@ -55,7 +55,7 @@ abstract class AbstractMongo31ClientTest extends AbstractMongoClientTest<MongoCo
void createCollectionWithAlreadyBuiltClientOptions(String dbName, String collectionName) {
def clientOptions = client.mongoClientOptions
def newClientOptions = MongoClientOptions.builder(clientOptions).build()
MongoDatabase db = new MongoClient(new ServerAddress("localhost", port), newClientOptions).getDatabase(dbName)
MongoDatabase db = new MongoClient(new ServerAddress(host, port), newClientOptions).getDatabase(dbName)
db.createCollection(collectionName)
}
@ -64,7 +64,7 @@ abstract class AbstractMongo31ClientTest extends AbstractMongoClientTest<MongoCo
def options = MongoClientOptions.builder().description("some-description")
configureMongoClientOptions(options)
options.build()
MongoDatabase db = new MongoClient(new ServerAddress("localhost", port), options.build()).getDatabase(dbName)
MongoDatabase db = new MongoClient(new ServerAddress(host, port), options.build()).getDatabase(dbName)
db.createCollection(collectionName)
}
@ -165,7 +165,7 @@ abstract class AbstractMongo31ClientTest extends AbstractMongoClientTest<MongoCo
def "test client failure"() {
setup:
def options = MongoClientOptions.builder().serverSelectionTimeout(10).build()
def client = new MongoClient(new ServerAddress("localhost", PortUtils.UNUSABLE_PORT), [], options)
def client = new MongoClient(new ServerAddress(host, PortUtils.UNUSABLE_PORT), [], options)
when:
MongoDatabase db = client.getDatabase(dbName)

View File

@ -28,7 +28,7 @@ class MongoClientTest extends AbstractMongoClientTest<MongoCollection<Document>>
client = MongoClients.create(MongoClientSettings.builder()
.applyToClusterSettings({ builder ->
builder.hosts(Arrays.asList(
new ServerAddress("localhost", port)))
new ServerAddress(host, port)))
.description("some-description")
})
.build())
@ -47,7 +47,7 @@ class MongoClientTest extends AbstractMongoClientTest<MongoCollection<Document>>
@Override
void createCollectionNoDescription(String dbName, String collectionName) {
MongoDatabase db = MongoClients.create("mongodb://localhost:${port}").getDatabase(dbName)
MongoDatabase db = MongoClients.create("mongodb://$host:${port}").getDatabase(dbName)
db.createCollection(collectionName)
}
@ -56,7 +56,7 @@ class MongoClientTest extends AbstractMongoClientTest<MongoCollection<Document>>
def clientSettings = MongoClientSettings.builder()
.applyToClusterSettings({ builder ->
builder.hosts(Arrays.asList(
new ServerAddress("localhost", port)))
new ServerAddress(host, port)))
.description("some-description")
})
.build()
@ -70,7 +70,7 @@ class MongoClientTest extends AbstractMongoClientTest<MongoCollection<Document>>
def clientSettings = MongoClientSettings.builder()
.applyToClusterSettings({ builder ->
builder.hosts(Arrays.asList(
new ServerAddress("localhost", port)))
new ServerAddress(host, port)))
.description("some-description")
})
clientSettings.build()
@ -174,7 +174,7 @@ class MongoClientTest extends AbstractMongoClientTest<MongoCollection<Document>>
def "test client failure"() {
setup:
def client = MongoClients.create("mongodb://localhost:" + UNUSABLE_PORT + "/?connectTimeoutMS=10")
def client = MongoClients.create("mongodb://" + host + ":" + UNUSABLE_PORT + "/?connectTimeoutMS=10")
when:
MongoDatabase db = client.getDatabase(dbName)

View File

@ -33,7 +33,7 @@ class Mongo4ReactiveClientTest extends AbstractMongoClientTest<MongoCollection<D
List<Closeable> cleanup = []
def setupSpec() throws Exception {
client = MongoClients.create("mongodb://localhost:$port")
client = MongoClients.create("mongodb://$host:$port")
}
def cleanupSpec() throws Exception {
@ -54,7 +54,7 @@ class Mongo4ReactiveClientTest extends AbstractMongoClientTest<MongoCollection<D
@Override
void createCollectionNoDescription(String dbName, String collectionName) {
def tmpClient = MongoClients.create("mongodb://localhost:${port}")
def tmpClient = MongoClients.create("mongodb://$host:${port}")
cleanup.add(tmpClient)
MongoDatabase db = tmpClient.getDatabase(dbName)
def latch = new CountDownLatch(1)
@ -72,7 +72,7 @@ class Mongo4ReactiveClientTest extends AbstractMongoClientTest<MongoCollection<D
def settings = MongoClientSettings.builder()
.applyToClusterSettings({ builder ->
builder.hosts(Arrays.asList(
new ServerAddress("localhost", port)))
new ServerAddress(host, port)))
})
settings.build()
def tmpClient = MongoClients.create(settings.build())

View File

@ -23,7 +23,7 @@ class MongoClientTest extends AbstractMongoClientTest<MongoCollection<Document>>
MongoClient client
def setupSpec() throws Exception {
client = MongoClients.create("mongodb://localhost:$port")
client = MongoClients.create("mongodb://$host:$port")
}
def cleanupSpec() throws Exception {
@ -39,7 +39,7 @@ class MongoClientTest extends AbstractMongoClientTest<MongoCollection<Document>>
@Override
void createCollectionNoDescription(String dbName, String collectionName) {
MongoDatabase db = MongoClients.create("mongodb://localhost:${port}").getDatabase(dbName)
MongoDatabase db = MongoClients.create("mongodb://$host:${port}").getDatabase(dbName)
db.createCollection(collectionName)
}
@ -53,7 +53,7 @@ class MongoClientTest extends AbstractMongoClientTest<MongoCollection<Document>>
def settings = MongoClientSettings.builder()
.applyToClusterSettings({ builder ->
builder.hosts(Arrays.asList(
new ServerAddress("localhost", port)))
new ServerAddress(host, port)))
})
settings.build()
MongoDatabase db = MongoClients.create(settings.build()).getDatabase(dbName)

View File

@ -35,7 +35,7 @@ class MongoAsyncClientTest extends AbstractMongoClientTest<MongoCollection<Docum
.clusterSettings(
ClusterSettings.builder()
.description("some-description")
.applyConnectionString(new ConnectionString("mongodb://localhost:$port"))
.applyConnectionString(new ConnectionString("mongodb://$host:$port"))
.build())
.build())
}
@ -53,7 +53,7 @@ class MongoAsyncClientTest extends AbstractMongoClientTest<MongoCollection<Docum
@Override
void createCollectionNoDescription(String dbName, String collectionName) {
MongoDatabase db = MongoClients.create("mongodb://localhost:$port").getDatabase(dbName)
MongoDatabase db = MongoClients.create("mongodb://$host:$port").getDatabase(dbName)
db.createCollection(collectionName, toCallback {})
}
@ -71,7 +71,7 @@ class MongoAsyncClientTest extends AbstractMongoClientTest<MongoCollection<Docum
.clusterSettings(
ClusterSettings.builder()
.description("some-description")
.applyConnectionString(new ConnectionString("mongodb://localhost:$port"))
.applyConnectionString(new ConnectionString("mongodb://$host:$port"))
.build())
settings.build()
MongoDatabase db = MongoClients.create(settings.build()).getDatabase(dbName)

View File

@ -25,6 +25,9 @@ abstract class AbstractMongoClientTest<T> extends InstrumentationSpecification {
@Shared
GenericContainer mongodb
@Shared
String host
@Shared
int port
@ -33,7 +36,7 @@ abstract class AbstractMongoClientTest<T> extends InstrumentationSpecification {
.withExposedPorts(27017)
.withLogConsumer(new Slf4jLogConsumer(LoggerFactory.getLogger("mongodb")))
mongodb.start()
host = mongodb.getHost()
port = mongodb.getMappedPort(27017)
}
@ -77,7 +80,7 @@ abstract class AbstractMongoClientTest<T> extends InstrumentationSpecification {
def "test port open"() {
when:
new Socket("localhost", port)
new Socket(host, port)
then:
noExceptionThrown()
@ -412,7 +415,7 @@ abstract class AbstractMongoClientTest<T> extends InstrumentationSpecification {
childOf((SpanData) parentSpan)
}
attributes {
"$ServerAttributes.SERVER_ADDRESS" "localhost"
"$ServerAttributes.SERVER_ADDRESS" host
"$ServerAttributes.SERVER_PORT" port
"$DbIncubatingAttributes.DB_STATEMENT" {
statementEval.call(it.replaceAll(" ", ""))

View File

@ -23,6 +23,7 @@ import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.TrustAllStrategy;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.ssl.SSLContextBuilder;
@ -72,6 +73,9 @@ public class OpenSearchRestTest {
httpClientBuilder ->
httpClientBuilder
.setSSLContext(sslContext)
// Required for non-localhost Docker runtimes, the SSL cert in the
// OpenSearch image is registered to "localhost"
.setSSLHostnameVerifier(new NoopHostnameVerifier())
.setDefaultCredentialsProvider(credentialsProvider))
.build();
}

View File

@ -132,7 +132,7 @@ public abstract class AbstractR2dbcStatementTest {
createProxyConnectionFactory(
ConnectionFactoryOptions.builder()
.option(DRIVER, props.system)
.option(HOST, "localhost")
.option(HOST, container.getHost())
.option(PORT, port)
.option(USER, USER_DB)
.option(PASSWORD, PW_DB)
@ -170,7 +170,7 @@ public abstract class AbstractR2dbcStatementTest {
equalTo(DB_STATEMENT, parameter.expectedStatement),
equalTo(DB_OPERATION, parameter.operation),
equalTo(DB_SQL_TABLE, parameter.table),
equalTo(SERVER_ADDRESS, "localhost"),
equalTo(SERVER_ADDRESS, container.getHost()),
equalTo(SERVER_PORT, port)),
span ->
span.hasName("child")

View File

@ -6,6 +6,8 @@
package io.opentelemetry.javaagent.instrumentation.rabbitmq;
import com.rabbitmq.client.ConnectionFactory;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.time.Duration;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
@ -22,8 +24,14 @@ public abstract class AbstractRabbitMqTest {
private static GenericContainer<?> rabbitMqContainer;
protected static ConnectionFactory connectionFactory;
protected static String rabbitMqHost;
protected static String rabbitMqIp;
protected static int rabbitMqPort;
@BeforeAll
static void startRabbit() {
static void startRabbit() throws UnknownHostException {
rabbitMqContainer =
new GenericContainer<>("rabbitmq:latest")
.withExposedPorts(5672)
@ -36,6 +44,10 @@ public abstract class AbstractRabbitMqTest {
connectionFactory.setHost(rabbitMqContainer.getHost());
connectionFactory.setPort(rabbitMqContainer.getMappedPort(5672));
connectionFactory.setAutomaticRecoveryEnabled(false);
rabbitMqHost = rabbitMqContainer.getHost();
rabbitMqIp = InetAddress.getByName(rabbitMqContainer.getHost()).getHostAddress();
rabbitMqPort = rabbitMqContainer.getMappedPort(5672);
}
@AfterAll

View File

@ -870,10 +870,7 @@ class RabbitMqTest extends AbstractRabbitMqTest {
.satisfies(
attrs -> {
String peerAddr = attrs.get(NetworkAttributes.NETWORK_PEER_ADDRESS);
assertTrue(
"127.0.0.1".equals(peerAddr)
|| "0:0:0:0:0:0:0:1".equals(peerAddr)
|| peerAddr == null);
assertThat(peerAddr).isIn(rabbitMqIp, null);
String networkType = attrs.get(NetworkAttributes.NETWORK_TYPE);
assertThat(networkType).isIn("ipv4", "ipv6", null);

View File

@ -52,8 +52,7 @@ class ReactorRabbitMqTest extends AbstractRabbitMqTest {
attrs -> {
String peerAddr =
attrs.get(NetworkAttributes.NETWORK_PEER_ADDRESS);
assertThat(peerAddr)
.isIn("127.0.0.1", "0:0:0:0:0:0:0:1", null);
assertThat(peerAddr).isIn(rabbitMqIp, null);
String networkType =
attrs.get(NetworkAttributes.NETWORK_TYPE);

View File

@ -32,6 +32,7 @@ class RediscalaClientTest extends AgentInstrumentationSpecification {
def setupSpec() {
redisServer.start()
String host = redisServer.getHost()
port = redisServer.getMappedPort(6379)
// latest has separate artifacts for akka an pekko, currently latestDepTestLibrary picks the
// pekko one
@ -44,7 +45,7 @@ class RediscalaClientTest extends AgentInstrumentationSpecification {
}
// latest RedisClient constructor takes username as argument
if (RedisClient.metaClass.getMetaMethod("username") != null) {
redisClient = new RedisClient("localhost",
redisClient = new RedisClient(host,
port,
Option.apply(null),
Option.apply(null),
@ -54,7 +55,7 @@ class RediscalaClientTest extends AgentInstrumentationSpecification {
system,
new RedisDispatcher("rediscala.rediscala-client-worker-dispatcher"))
} else {
redisClient = new RedisClient("localhost",
redisClient = new RedisClient(host,
port,
Option.apply(null),
Option.apply(null),

View File

@ -20,6 +20,8 @@ import io.opentelemetry.semconv.NetworkAttributes;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.ExecutionException;
@ -54,16 +56,19 @@ public abstract class AbstractRedissonAsyncClientTest {
private static final GenericContainer<?> redisServer =
new GenericContainer<>("redis:6.2.3-alpine").withExposedPorts(6379);
private static String ip;
private static int port;
private static String address;
private static RedissonClient redisson;
@BeforeAll
static void setupAll() {
static void setupAll() throws UnknownHostException {
redisServer.start();
ip = InetAddress.getByName(redisServer.getHost()).getHostAddress();
port = redisServer.getMappedPort(6379);
address = "localhost:" + port;
address = redisServer.getHost() + ":" + port;
}
@AfterAll
@ -110,7 +115,7 @@ public abstract class AbstractRedissonAsyncClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET foo ?"),
@ -143,7 +148,7 @@ public abstract class AbstractRedissonAsyncClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SADD set1 ?"),
@ -217,7 +222,7 @@ public abstract class AbstractRedissonAsyncClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "MULTI;SET batch1 ?"))
@ -227,7 +232,7 @@ public abstract class AbstractRedissonAsyncClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET batch2 ?"),
@ -238,7 +243,7 @@ public abstract class AbstractRedissonAsyncClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "EXEC"),

View File

@ -20,6 +20,8 @@ import io.opentelemetry.sdk.testing.assertj.TraceAssert;
import io.opentelemetry.semconv.NetworkAttributes;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import java.lang.reflect.InvocationTargetException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -60,15 +62,18 @@ public abstract class AbstractRedissonClientTest {
private static final GenericContainer<?> redisServer =
new GenericContainer<>("redis:6.2.3-alpine").withExposedPorts(6379);
private static String ip;
private static int port;
private static String address;
private RedissonClient redisson;
@BeforeAll
static void setupAll() {
static void setupAll() throws UnknownHostException {
redisServer.start();
ip = InetAddress.getByName(redisServer.getHost()).getHostAddress();
port = redisServer.getMappedPort(6379);
address = "localhost:" + port;
address = redisServer.getHost() + ":" + port;
}
@AfterAll
@ -113,7 +118,7 @@ public abstract class AbstractRedissonClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET foo ?"),
@ -125,7 +130,7 @@ public abstract class AbstractRedissonClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "GET foo"),
@ -151,7 +156,7 @@ public abstract class AbstractRedissonClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(
@ -193,7 +198,7 @@ public abstract class AbstractRedissonClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "MULTI;SET batch1 ?"))
@ -203,7 +208,7 @@ public abstract class AbstractRedissonClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SET batch2 ?"),
@ -214,7 +219,7 @@ public abstract class AbstractRedissonClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "EXEC"),
@ -236,7 +241,7 @@ public abstract class AbstractRedissonClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "RPUSH list1 ?"),
@ -261,7 +266,7 @@ public abstract class AbstractRedissonClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(
@ -275,7 +280,7 @@ public abstract class AbstractRedissonClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "HGET map1 key1"),
@ -296,7 +301,7 @@ public abstract class AbstractRedissonClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SADD set1 ?"),
@ -324,7 +329,7 @@ public abstract class AbstractRedissonClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(
@ -351,7 +356,7 @@ public abstract class AbstractRedissonClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_STATEMENT, "INCR AtomicLong"),
@ -377,7 +382,7 @@ public abstract class AbstractRedissonClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_OPERATION, "EVAL"),
@ -392,7 +397,7 @@ public abstract class AbstractRedissonClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_OPERATION, "EVAL"),
@ -408,7 +413,7 @@ public abstract class AbstractRedissonClientTest {
.hasKind(CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, (long) port),
equalTo(DbIncubatingAttributes.DB_SYSTEM, "redis"),
equalTo(DbIncubatingAttributes.DB_OPERATION, "DEL"),

View File

@ -67,6 +67,7 @@ public abstract class AbstractRocketMqClientTest {
private static final String consumerGroup = "group-0";
private static final RocketMqProxyContainer container = new RocketMqProxyContainer();
private final ClientServiceProvider provider = ClientServiceProvider.loadService();
private PushConsumer consumer;
private Producer producer;

View File

@ -9,6 +9,8 @@ import io.opentelemetry.instrumentation.test.utils.PortUtils;
import org.testcontainers.containers.FixedHostPortGenericContainer;
import org.testcontainers.containers.GenericContainer;
// TODO - Tests using this container will currently fail if TESTCONTAINERS_HOST_OVERRIDE is set to
// anything other than "localhost".
public class RocketMqProxyContainer {
// TODO(aaron-ai): replace it by the official image.
private static final String IMAGE_NAME = "aaronai/rocketmq-proxy-it:v1.0.1";

View File

@ -99,7 +99,7 @@ abstract class AbstractSpringJmsListenerTest {
Map<String, Object> props = new HashMap<>();
props.put("spring.jmx.enabled", false);
props.put("spring.main.web-application-type", "none");
props.put("test.broker-url", "tcp://localhost:" + broker.getMappedPort(61616));
props.put("test.broker-url", "tcp://" + broker.getHost() + ":" + broker.getMappedPort(61616));
return props;
}

View File

@ -20,6 +20,8 @@ import io.opentelemetry.sdk.testing.assertj.AttributeAssertion;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentelemetry.semconv.NetworkAttributes;
import io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Arrays;
@ -56,8 +58,10 @@ public class SpringRabbitMqTest {
private static ConfigurableApplicationContext applicationContext;
private static ConnectionFactory connectionFactory;
private static String ip;
@BeforeAll
static void setUp() {
static void setUp() throws UnknownHostException {
rabbitMqContainer =
new GenericContainer<>("rabbitmq:latest")
.withExposedPorts(5672)
@ -78,6 +82,7 @@ public class SpringRabbitMqTest {
connectionFactory = new ConnectionFactory();
connectionFactory.setHost(rabbitMqContainer.getHost());
connectionFactory.setPort(rabbitMqContainer.getMappedPort(5672));
ip = InetAddress.getByName(rabbitMqContainer.getHost()).getHostAddress();
}
@AfterAll
@ -161,8 +166,7 @@ public class SpringRabbitMqTest {
.hasKind(SpanKind.PRODUCER)
.hasParent(trace.getSpan(0))
.hasAttributesSatisfyingExactly(
getAssertions(
"<default>", "publish", "127.0.0.1", true, testHeaders)),
getAssertions("<default>", "publish", ip, true, testHeaders)),
// spring-cloud-stream-binder-rabbit listener puts all messages into a
// BlockingQueue immediately after receiving
// that's why the rabbitmq CONSUMER span will never have any child span (and
@ -172,8 +176,7 @@ public class SpringRabbitMqTest {
.hasKind(SpanKind.CONSUMER)
.hasParent(trace.getSpan(1))
.hasAttributesSatisfyingExactly(
getAssertions(
"<default>", "process", "127.0.0.1", true, testHeaders)),
getAssertions("<default>", "process", ip, true, testHeaders)),
// created by spring-rabbit instrumentation
span ->
span.hasName("testQueue process")
@ -210,7 +213,7 @@ public class SpringRabbitMqTest {
.hasKind(SpanKind.CLIENT)
.hasAttributesSatisfyingExactly(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip),
satisfies(
NetworkAttributes.NETWORK_PEER_PORT,
AbstractLongAssert::isNotNegative),

View File

@ -19,6 +19,7 @@ import io.vertx.core.Vertx;
import io.vertx.redis.client.Redis;
import io.vertx.redis.client.RedisAPI;
import io.vertx.redis.client.RedisConnection;
import java.net.InetAddress;
import java.util.Arrays;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
@ -34,6 +35,8 @@ class VertxRedisClientTest {
private static final GenericContainer<?> redisServer =
new GenericContainer<>("redis:6.2.3-alpine").withExposedPorts(6379);
private static String host;
private static String ip;
private static int port;
private static Vertx vertx;
private static Redis client;
@ -42,10 +45,13 @@ class VertxRedisClientTest {
@BeforeAll
static void setup() throws Exception {
redisServer.start();
host = redisServer.getHost();
ip = InetAddress.getByName(host).getHostAddress();
port = redisServer.getMappedPort(6379);
vertx = Vertx.vertx();
client = Redis.createClient(vertx, "redis://localhost:" + port + "/1");
client = Redis.createClient(vertx, "redis://" + host + ":" + port + "/1");
RedisConnection connection =
client.connect().toCompletionStage().toCompletableFuture().get(30, TimeUnit.SECONDS);
redis = RedisAPI.api(connection);
@ -199,10 +205,10 @@ class VertxRedisClientTest {
equalTo(DbIncubatingAttributes.DB_STATEMENT, statement),
equalTo(DbIncubatingAttributes.DB_OPERATION, operation),
equalTo(DbIncubatingAttributes.DB_REDIS_DATABASE_INDEX, 1),
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"),
equalTo(ServerAttributes.SERVER_ADDRESS, host),
equalTo(ServerAttributes.SERVER_PORT, port),
equalTo(NetworkAttributes.NETWORK_PEER_PORT, port),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1")
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, ip)
};
}
}

View File

@ -66,6 +66,7 @@ class VertxSqlClientTest {
private static GenericContainer<?> container;
private static Vertx vertx;
private static Pool pool;
private static String host;
private static int port;
@BeforeAll
@ -80,11 +81,12 @@ class VertxSqlClientTest {
.withStartupTimeout(Duration.ofMinutes(2));
container.start();
vertx = Vertx.vertx();
host = container.getHost();
port = container.getMappedPort(5432);
PgConnectOptions options =
new PgConnectOptions()
.setPort(port)
.setHost(container.getHost())
.setHost(host)
.setDatabase(DB)
.setUser(USER_DB)
.setPassword(PW_DB);
@ -140,7 +142,7 @@ class VertxSqlClientTest {
equalTo(DB_STATEMENT, "select * from test"),
equalTo(DB_OPERATION, "SELECT"),
equalTo(DB_SQL_TABLE, "test"),
equalTo(SERVER_ADDRESS, "localhost"),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port)),
span ->
span.hasName("callback")
@ -194,7 +196,7 @@ class VertxSqlClientTest {
equalTo(DB_NAME, DB),
equalTo(DB_USER, USER_DB),
equalTo(DB_STATEMENT, "invalid"),
equalTo(SERVER_ADDRESS, "localhost"),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port)),
span ->
span.hasName("callback")
@ -230,7 +232,7 @@ class VertxSqlClientTest {
equalTo(DB_STATEMENT, "select * from test where id = $?"),
equalTo(DB_OPERATION, "SELECT"),
equalTo(DB_SQL_TABLE, "test"),
equalTo(SERVER_ADDRESS, "localhost"),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port))));
}
@ -260,7 +262,7 @@ class VertxSqlClientTest {
equalTo(DB_STATEMENT, "insert into test values ($?, $?) returning *"),
equalTo(DB_OPERATION, "INSERT"),
equalTo(DB_SQL_TABLE, "test"),
equalTo(SERVER_ADDRESS, "localhost"),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port))));
}
@ -346,7 +348,7 @@ class VertxSqlClientTest {
equalTo(DB_STATEMENT, "select * from test"),
equalTo(DB_OPERATION, "SELECT"),
equalTo(DB_SQL_TABLE, "test"),
equalTo(SERVER_ADDRESS, "localhost"),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port)),
span ->
span.hasName("callback")
@ -411,7 +413,7 @@ class VertxSqlClientTest {
equalTo(DB_STATEMENT, "select * from test where id = $?"),
equalTo(DB_OPERATION, "SELECT"),
equalTo(DB_SQL_TABLE, "test"),
equalTo(SERVER_ADDRESS, "localhost"),
equalTo(SERVER_ADDRESS, host),
equalTo(SERVER_PORT, port)),
span ->
span.hasName("callback")