diff --git a/instrumentation/lettuce/lettuce-4.0/javaagent/src/test/groovy/LettuceAsyncClientTest.groovy b/instrumentation/lettuce/lettuce-4.0/javaagent/src/test/groovy/LettuceAsyncClientTest.groovy index 989136b54c..ccdacaa0fa 100644 --- a/instrumentation/lettuce/lettuce-4.0/javaagent/src/test/groovy/LettuceAsyncClientTest.groovy +++ b/instrumentation/lettuce/lettuce-4.0/javaagent/src/test/groovy/LettuceAsyncClientTest.groovy @@ -16,7 +16,7 @@ import com.lambdaworks.redis.protocol.AsyncCommand import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification import io.opentelemetry.instrumentation.test.utils.PortUtils import io.opentelemetry.semconv.trace.attributes.SemanticAttributes -import org.testcontainers.containers.FixedHostPortGenericContainer +import org.testcontainers.containers.GenericContainer import spock.lang.Shared import spock.util.concurrent.AsyncConditions @@ -32,13 +32,14 @@ import static io.opentelemetry.api.trace.SpanKind.INTERNAL import static io.opentelemetry.api.trace.StatusCode.ERROR class LettuceAsyncClientTest extends AgentInstrumentationSpecification { - public static final String HOST = "localhost" public static final int DB_INDEX = 0 // Disable autoreconnect so we do not get stray traces popping up on server shutdown public static final ClientOptions CLIENT_OPTIONS = new ClientOptions.Builder().autoReconnect(false).build() - private static FixedHostPortGenericContainer redisServer = new FixedHostPortGenericContainer<>("redis:6.2.3-alpine") + private static GenericContainer redisServer = new GenericContainer<>("redis:6.2.3-alpine").withExposedPorts(6379) + @Shared + String host @Shared int port @Shared @@ -64,21 +65,18 @@ class LettuceAsyncClientTest extends AgentInstrumentationSpecification { RedisAsyncCommands asyncCommands RedisCommands syncCommands - def setupSpec() { - port = PortUtils.findOpenPort() - incorrectPort = PortUtils.findOpenPort() - dbAddr = HOST + ":" + port + "/" + DB_INDEX - dbAddrNonExistent = HOST + ":" + incorrectPort + "/" + DB_INDEX - dbUriNonExistent = "redis://" + dbAddrNonExistent + def setup() { + redisServer.start() + host = redisServer.getHost() + port = redisServer.getMappedPort(6379) + dbAddr = host + ":" + port + "/" + DB_INDEX embeddedDbUri = "redis://" + dbAddr - redisServer = redisServer.withFixedExposedPort(port, 6379) - } + incorrectPort = PortUtils.findOpenPort() + dbAddrNonExistent = host + incorrectPort + "/" + DB_INDEX + dbUriNonExistent = "redis://" + dbAddrNonExistent - def setup() { redisClient = RedisClient.create(embeddedDbUri) - - redisServer.start() redisClient.setOptions(CLIENT_OPTIONS) connection = redisClient.connect() @@ -103,7 +101,7 @@ class LettuceAsyncClientTest extends AgentInstrumentationSpecification { when: StatefulConnection connection = testConnectionClient.connect(new Utf8StringCodec(), - new RedisURI(HOST, port, 3, TimeUnit.SECONDS)) + new RedisURI(host, port, 3, TimeUnit.SECONDS)) then: connection != null @@ -113,7 +111,7 @@ class LettuceAsyncClientTest extends AgentInstrumentationSpecification { name "CONNECT" kind CLIENT attributes { - "${SemanticAttributes.NET_PEER_NAME.key}" HOST + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" } @@ -132,7 +130,7 @@ class LettuceAsyncClientTest extends AgentInstrumentationSpecification { when: StatefulConnection connection = testConnectionClient.connect(new Utf8StringCodec(), - new RedisURI(HOST, incorrectPort, 3, TimeUnit.SECONDS)) + new RedisURI(host, incorrectPort, 3, TimeUnit.SECONDS)) then: connection == null @@ -145,7 +143,7 @@ class LettuceAsyncClientTest extends AgentInstrumentationSpecification { status ERROR errorEvent RedisConnectionException, String attributes { - "${SemanticAttributes.NET_PEER_NAME.key}" HOST + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_PORT.key}" incorrectPort "${SemanticAttributes.DB_SYSTEM.key}" "redis" } diff --git a/instrumentation/lettuce/lettuce-4.0/javaagent/src/test/groovy/LettuceSyncClientTest.groovy b/instrumentation/lettuce/lettuce-4.0/javaagent/src/test/groovy/LettuceSyncClientTest.groovy index 7d7845adc6..c32b3334d8 100644 --- a/instrumentation/lettuce/lettuce-4.0/javaagent/src/test/groovy/LettuceSyncClientTest.groovy +++ b/instrumentation/lettuce/lettuce-4.0/javaagent/src/test/groovy/LettuceSyncClientTest.groovy @@ -11,20 +11,21 @@ import com.lambdaworks.redis.api.sync.RedisCommands import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification import io.opentelemetry.instrumentation.test.utils.PortUtils import io.opentelemetry.semconv.trace.attributes.SemanticAttributes -import org.testcontainers.containers.FixedHostPortGenericContainer +import org.testcontainers.containers.GenericContainer import spock.lang.Shared import static io.opentelemetry.api.trace.SpanKind.CLIENT import static io.opentelemetry.api.trace.StatusCode.ERROR class LettuceSyncClientTest extends AgentInstrumentationSpecification { - public static final String HOST = "localhost" public static final int DB_INDEX = 0 // Disable autoreconnect so we do not get stray traces popping up on server shutdown public static final ClientOptions CLIENT_OPTIONS = new ClientOptions.Builder().autoReconnect(false).build() - private static FixedHostPortGenericContainer redis = new FixedHostPortGenericContainer<>("redis:6.2.3-alpine") + private static GenericContainer redisServer = new GenericContainer<>("redis:6.2.3-alpine").withExposedPorts(6379) + @Shared + String host @Shared int port @Shared @@ -49,20 +50,18 @@ class LettuceSyncClientTest extends AgentInstrumentationSpecification { StatefulConnection connection RedisCommands syncCommands - def setupSpec() { - port = PortUtils.findOpenPort() - incorrectPort = PortUtils.findOpenPort() - dbAddr = HOST + ":" + port + "/" + DB_INDEX - dbAddrNonExistent = HOST + ":" + incorrectPort + "/" + DB_INDEX - dbUriNonExistent = "redis://" + dbAddrNonExistent - embeddedDbUri = "redis://" + dbAddr - - redis = redis.withFixedExposedPort(port, 6379) - } - def setup() { //TODO do not restart server for every test - redis.start() + redisServer.start() + + host = redisServer.getHost() + port = redisServer.getMappedPort(6379) + dbAddr = host + ":" + port + "/" + DB_INDEX + embeddedDbUri = "redis://" + dbAddr + + incorrectPort = PortUtils.findOpenPort() + dbAddrNonExistent = host + ":" + incorrectPort + "/" + DB_INDEX + dbUriNonExistent = "redis://" + dbAddrNonExistent redisClient = RedisClient.create(embeddedDbUri) @@ -78,7 +77,7 @@ class LettuceSyncClientTest extends AgentInstrumentationSpecification { def cleanup() { connection.close() - redis.stop() + redisServer.stop() } def "connect"() { @@ -96,7 +95,7 @@ class LettuceSyncClientTest extends AgentInstrumentationSpecification { name "CONNECT" kind CLIENT attributes { - "${SemanticAttributes.NET_PEER_NAME.key}" HOST + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" } @@ -126,7 +125,7 @@ class LettuceSyncClientTest extends AgentInstrumentationSpecification { status ERROR errorEvent RedisConnectionException, String attributes { - "${SemanticAttributes.NET_PEER_NAME.key}" HOST + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_PORT.key}" incorrectPort "${SemanticAttributes.DB_SYSTEM.key}" "redis" } diff --git a/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceAsyncClientTest.groovy b/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceAsyncClientTest.groovy index 23c57773ae..d148021b16 100644 --- a/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceAsyncClientTest.groovy +++ b/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceAsyncClientTest.groovy @@ -17,7 +17,7 @@ import io.netty.channel.AbstractChannel import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification import io.opentelemetry.instrumentation.test.utils.PortUtils import io.opentelemetry.semconv.trace.attributes.SemanticAttributes -import org.testcontainers.containers.FixedHostPortGenericContainer +import org.testcontainers.containers.GenericContainer import spock.lang.Shared import spock.util.concurrent.AsyncConditions @@ -34,14 +34,14 @@ import static io.opentelemetry.api.trace.SpanKind.INTERNAL import static io.opentelemetry.api.trace.StatusCode.ERROR class LettuceAsyncClientTest extends AgentInstrumentationSpecification { - public static final String PEER_NAME = "localhost" - public static final String PEER_IP = "127.0.0.1" public static final int DB_INDEX = 0 // Disable autoreconnect so we do not get stray traces popping up on server shutdown public static final ClientOptions CLIENT_OPTIONS = ClientOptions.builder().autoReconnect(false).build() - private static FixedHostPortGenericContainer redisServer = new FixedHostPortGenericContainer<>("redis:6.2.3-alpine") + private static GenericContainer redisServer = new GenericContainer<>("redis:6.2.3-alpine").withExposedPorts(6379) + @Shared + String host @Shared int port @Shared @@ -67,21 +67,20 @@ class LettuceAsyncClientTest extends AgentInstrumentationSpecification { RedisAsyncCommands asyncCommands RedisCommands syncCommands - def setupSpec() { - port = PortUtils.findOpenPort() - incorrectPort = PortUtils.findOpenPort() - dbAddr = PEER_NAME + ":" + port + "/" + DB_INDEX - dbAddrNonExistent = PEER_NAME + ":" + incorrectPort + "/" + DB_INDEX - dbUriNonExistent = "redis://" + dbAddrNonExistent + def setup() { + redisServer.start() + + host = redisServer.getHost() + port = redisServer.getMappedPort(6379) + dbAddr = host + ":" + port + "/" + DB_INDEX embeddedDbUri = "redis://" + dbAddr - redisServer = redisServer.withFixedExposedPort(port, 6379) - } + incorrectPort = PortUtils.findOpenPort() + dbAddrNonExistent = host + ":" + incorrectPort + "/" + DB_INDEX + dbUriNonExistent = "redis://" + dbAddrNonExistent - def setup() { redisClient = RedisClient.create(embeddedDbUri) - redisServer.start() redisClient.setOptions(CLIENT_OPTIONS) connection = redisClient.connect() @@ -106,7 +105,7 @@ class LettuceAsyncClientTest extends AgentInstrumentationSpecification { when: ConnectionFuture connectionFuture = testConnectionClient.connectAsync(StringCodec.UTF8, - new RedisURI(PEER_NAME, port, 3, TimeUnit.SECONDS)) + new RedisURI(host, port, 3, TimeUnit.SECONDS)) StatefulConnection connection = connectionFuture.get() then: @@ -117,7 +116,7 @@ class LettuceAsyncClientTest extends AgentInstrumentationSpecification { name "CONNECT" kind CLIENT attributes { - "$SemanticAttributes.NET_PEER_NAME.key" PEER_NAME + "$SemanticAttributes.NET_PEER_NAME.key" host "$SemanticAttributes.NET_PEER_PORT.key" port "$SemanticAttributes.DB_SYSTEM.key" "redis" } @@ -136,7 +135,7 @@ class LettuceAsyncClientTest extends AgentInstrumentationSpecification { when: ConnectionFuture connectionFuture = testConnectionClient.connectAsync(StringCodec.UTF8, - new RedisURI(PEER_NAME, incorrectPort, 3, TimeUnit.SECONDS)) + new RedisURI(host, incorrectPort, 3, TimeUnit.SECONDS)) StatefulConnection connection = connectionFuture.get() then: @@ -150,7 +149,7 @@ class LettuceAsyncClientTest extends AgentInstrumentationSpecification { status ERROR errorEvent AbstractChannel.AnnotatedConnectException, String attributes { - "$SemanticAttributes.NET_PEER_NAME.key" PEER_NAME + "$SemanticAttributes.NET_PEER_NAME.key" host "$SemanticAttributes.NET_PEER_PORT.key" incorrectPort "$SemanticAttributes.DB_SYSTEM.key" "redis" } diff --git a/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceReactiveClientTest.groovy b/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceReactiveClientTest.groovy index 1966c37ef8..0176b2d266 100644 --- a/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceReactiveClientTest.groovy +++ b/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceReactiveClientTest.groovy @@ -9,9 +9,8 @@ import io.lettuce.core.api.StatefulConnection import io.lettuce.core.api.reactive.RedisReactiveCommands import io.lettuce.core.api.sync.RedisCommands import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification -import io.opentelemetry.instrumentation.test.utils.PortUtils import io.opentelemetry.semconv.trace.attributes.SemanticAttributes -import org.testcontainers.containers.FixedHostPortGenericContainer +import org.testcontainers.containers.GenericContainer import reactor.core.scheduler.Schedulers import spock.lang.Shared import spock.util.concurrent.AsyncConditions @@ -22,13 +21,11 @@ import static io.opentelemetry.api.trace.SpanKind.CLIENT import static io.opentelemetry.api.trace.SpanKind.INTERNAL class LettuceReactiveClientTest extends AgentInstrumentationSpecification { - public static final String PEER_HOST = "localhost" - public static final String PEER_IP = "127.0.0.1" public static final int DB_INDEX = 0 // Disable autoreconnect so we do not get stray traces popping up on server shutdown public static final ClientOptions CLIENT_OPTIONS = ClientOptions.builder().autoReconnect(false).build() - private static FixedHostPortGenericContainer redisServer = new FixedHostPortGenericContainer<>("redis:6.2.3-alpine") + private static GenericContainer redisServer = new GenericContainer<>("redis:6.2.3-alpine").withExposedPorts(6379) @Shared String embeddedDbUri @@ -40,17 +37,18 @@ class LettuceReactiveClientTest extends AgentInstrumentationSpecification { RedisCommands syncCommands def setupSpec() { - int port = PortUtils.findOpenPort() - String dbAddr = PEER_HOST + ":" + port + "/" + DB_INDEX - embeddedDbUri = "redis://" + dbAddr - - redisServer = redisServer.withFixedExposedPort(port, 6379) } def setup() { + redisServer.start() + + String host = redisServer.getHost() + int port = redisServer.getMappedPort(6379) + String dbAddr = host + ":" + port + "/" + DB_INDEX + embeddedDbUri = "redis://" + dbAddr + redisClient = RedisClient.create(embeddedDbUri) - redisServer.start() redisClient.setOptions(CLIENT_OPTIONS) connection = redisClient.connect() diff --git a/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceSyncClientTest.groovy b/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceSyncClientTest.groovy index 072ba30b67..f109373e81 100644 --- a/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceSyncClientTest.groovy +++ b/instrumentation/lettuce/lettuce-5.0/javaagent/src/test/groovy/LettuceSyncClientTest.groovy @@ -12,21 +12,21 @@ import io.netty.channel.AbstractChannel import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification import io.opentelemetry.instrumentation.test.utils.PortUtils import io.opentelemetry.semconv.trace.attributes.SemanticAttributes -import org.testcontainers.containers.FixedHostPortGenericContainer +import org.testcontainers.containers.GenericContainer import spock.lang.Shared import static io.opentelemetry.api.trace.SpanKind.CLIENT import static io.opentelemetry.api.trace.StatusCode.ERROR class LettuceSyncClientTest extends AgentInstrumentationSpecification { - public static final String PEER_NAME = "localhost" - public static final String PEER_IP = "127.0.0.1" public static final int DB_INDEX = 0 // Disable autoreconnect so we do not get stray traces popping up on server shutdown public static final ClientOptions CLIENT_OPTIONS = ClientOptions.builder().autoReconnect(false).build() - private static FixedHostPortGenericContainer redisServer = new FixedHostPortGenericContainer<>("redis:6.2.3-alpine") + private static GenericContainer redisServer = new GenericContainer<>("redis:6.2.3-alpine").withExposedPorts(6379) + @Shared + String host @Shared int port @Shared @@ -51,21 +51,20 @@ class LettuceSyncClientTest extends AgentInstrumentationSpecification { StatefulConnection connection RedisCommands syncCommands - def setupSpec() { - port = PortUtils.findOpenPort() - incorrectPort = PortUtils.findOpenPort() - dbAddr = PEER_NAME + ":" + port + "/" + DB_INDEX - dbAddrNonExistent = PEER_NAME + ":" + incorrectPort + "/" + DB_INDEX - dbUriNonExistent = "redis://" + dbAddrNonExistent + def setup() { + redisServer.start() + + host = redisServer.getHost() + port = redisServer.getMappedPort(6379) + dbAddr = host + ":" + port + "/" + DB_INDEX embeddedDbUri = "redis://" + dbAddr - redisServer = redisServer.withFixedExposedPort(port, 6379) - } + incorrectPort = PortUtils.findOpenPort() + dbAddrNonExistent = host + ":" + incorrectPort + "/" + DB_INDEX + dbUriNonExistent = "redis://" + dbAddrNonExistent - def setup() { redisClient = RedisClient.create(embeddedDbUri) - redisServer.start() connection = redisClient.connect() syncCommands = connection.sync() @@ -96,7 +95,7 @@ class LettuceSyncClientTest extends AgentInstrumentationSpecification { name "CONNECT" kind CLIENT attributes { - "$SemanticAttributes.NET_PEER_NAME.key" PEER_NAME + "$SemanticAttributes.NET_PEER_NAME.key" host "$SemanticAttributes.NET_PEER_PORT.key" port "$SemanticAttributes.DB_SYSTEM.key" "redis" } @@ -126,7 +125,7 @@ class LettuceSyncClientTest extends AgentInstrumentationSpecification { status ERROR errorEvent AbstractChannel.AnnotatedConnectException, String attributes { - "$SemanticAttributes.NET_PEER_NAME.key" PEER_NAME + "$SemanticAttributes.NET_PEER_NAME.key" host "$SemanticAttributes.NET_PEER_PORT.key" incorrectPort "$SemanticAttributes.DB_SYSTEM.key" "redis" } diff --git a/instrumentation/lettuce/lettuce-5.1/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/lettuce/v5_1/LettuceReactiveClientTest.groovy b/instrumentation/lettuce/lettuce-5.1/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/lettuce/v5_1/LettuceReactiveClientTest.groovy index 3f26e1ff6e..a7afb36b1c 100644 --- a/instrumentation/lettuce/lettuce-5.1/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/lettuce/v5_1/LettuceReactiveClientTest.groovy +++ b/instrumentation/lettuce/lettuce-5.1/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/lettuce/v5_1/LettuceReactiveClientTest.groovy @@ -45,6 +45,7 @@ class LettuceReactiveClientTest extends AbstractLettuceReactiveClientTest implem childOf span(0) attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -63,6 +64,7 @@ class LettuceReactiveClientTest extends AbstractLettuceReactiveClientTest implem childOf span(0) attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" diff --git a/instrumentation/lettuce/lettuce-5.1/testing/src/main/groovy/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceAsyncClientTest.groovy b/instrumentation/lettuce/lettuce-5.1/testing/src/main/groovy/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceAsyncClientTest.groovy index afb534531d..64ea323394 100644 --- a/instrumentation/lettuce/lettuce-5.1/testing/src/main/groovy/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceAsyncClientTest.groovy +++ b/instrumentation/lettuce/lettuce-5.1/testing/src/main/groovy/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceAsyncClientTest.groovy @@ -16,7 +16,7 @@ import io.lettuce.core.codec.StringCodec import io.opentelemetry.instrumentation.test.InstrumentationSpecification import io.opentelemetry.instrumentation.test.utils.PortUtils import io.opentelemetry.semconv.trace.attributes.SemanticAttributes -import org.testcontainers.containers.FixedHostPortGenericContainer +import org.testcontainers.containers.GenericContainer import spock.lang.Shared import spock.util.concurrent.AsyncConditions @@ -32,13 +32,14 @@ import static io.opentelemetry.api.trace.SpanKind.INTERNAL import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.NetTransportValues.IP_TCP abstract class AbstractLettuceAsyncClientTest extends InstrumentationSpecification { - public static final String HOST = "127.0.0.1" public static final int DB_INDEX = 0 - private static FixedHostPortGenericContainer redisServer = new FixedHostPortGenericContainer<>("redis:6.2.3-alpine") + private static GenericContainer redisServer = new GenericContainer<>("redis:6.2.3-alpine").withExposedPorts(6379) abstract RedisClient createClient(String uri) + @Shared + String host @Shared int port @Shared @@ -64,21 +65,20 @@ abstract class AbstractLettuceAsyncClientTest extends InstrumentationSpecificati RedisAsyncCommands asyncCommands RedisCommands syncCommands - def setupSpec() { - port = PortUtils.findOpenPort() - incorrectPort = PortUtils.findOpenPort() - dbAddr = HOST + ":" + port + "/" + DB_INDEX - dbAddrNonExistent = HOST + ":" + incorrectPort + "/" + DB_INDEX - dbUriNonExistent = "redis://" + dbAddrNonExistent + def setup() { + redisServer.start() + + host = redisServer.getHost() + port = redisServer.getMappedPort(6379) + dbAddr = host + ":" + port + "/" + DB_INDEX embeddedDbUri = "redis://" + dbAddr - redisServer = redisServer.withFixedExposedPort(port, 6379) - } + incorrectPort = PortUtils.findOpenPort() + dbAddrNonExistent = host + ":" + incorrectPort + "/" + DB_INDEX + dbUriNonExistent = "redis://" + dbAddrNonExistent - def setup() { redisClient = createClient(embeddedDbUri) - redisServer.start() redisClient.setOptions(LettuceTestUtil.CLIENT_OPTIONS) connection = redisClient.connect() @@ -115,7 +115,7 @@ abstract class AbstractLettuceAsyncClientTest extends InstrumentationSpecificati when: ConnectionFuture connectionFuture = testConnectionClient.connectAsync(StringCodec.UTF8, - RedisURI.create("redis://${HOST}:${port}?timeout=3s")) + RedisURI.create("redis://${host}:${port}?timeout=3s")) StatefulConnection connection = connectionFuture.get() then: @@ -135,7 +135,7 @@ abstract class AbstractLettuceAsyncClientTest extends InstrumentationSpecificati when: ConnectionFuture connectionFuture = testConnectionClient.connectAsync(StringCodec.UTF8, - RedisURI.create("redis://${HOST}:${incorrectPort}?timeout=3s")) + RedisURI.create("redis://${host}:${incorrectPort}?timeout=3s")) StatefulConnection connection = connectionFuture.get() then: @@ -162,6 +162,7 @@ abstract class AbstractLettuceAsyncClientTest extends InstrumentationSpecificati kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -212,6 +213,7 @@ abstract class AbstractLettuceAsyncClientTest extends InstrumentationSpecificati kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -286,6 +288,7 @@ abstract class AbstractLettuceAsyncClientTest extends InstrumentationSpecificati childOf(span(0)) attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -349,6 +352,7 @@ abstract class AbstractLettuceAsyncClientTest extends InstrumentationSpecificati childOf(span(0)) attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_STATEMENT.key}" "RANDOMKEY" @@ -415,6 +419,7 @@ abstract class AbstractLettuceAsyncClientTest extends InstrumentationSpecificati kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -434,6 +439,7 @@ abstract class AbstractLettuceAsyncClientTest extends InstrumentationSpecificati kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" diff --git a/instrumentation/lettuce/lettuce-5.1/testing/src/main/groovy/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceReactiveClientTest.groovy b/instrumentation/lettuce/lettuce-5.1/testing/src/main/groovy/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceReactiveClientTest.groovy index b36cd76510..754c3c123e 100644 --- a/instrumentation/lettuce/lettuce-5.1/testing/src/main/groovy/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceReactiveClientTest.groovy +++ b/instrumentation/lettuce/lettuce-5.1/testing/src/main/groovy/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceReactiveClientTest.groovy @@ -10,9 +10,8 @@ import io.lettuce.core.api.StatefulConnection import io.lettuce.core.api.reactive.RedisReactiveCommands import io.lettuce.core.api.sync.RedisCommands import io.opentelemetry.instrumentation.test.InstrumentationSpecification -import io.opentelemetry.instrumentation.test.utils.PortUtils import io.opentelemetry.semconv.trace.attributes.SemanticAttributes -import org.testcontainers.containers.FixedHostPortGenericContainer +import org.testcontainers.containers.GenericContainer import spock.lang.Shared import spock.util.concurrent.AsyncConditions @@ -23,13 +22,14 @@ import static io.opentelemetry.api.trace.SpanKind.INTERNAL import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.NetTransportValues.IP_TCP abstract class AbstractLettuceReactiveClientTest extends InstrumentationSpecification { - public static final String HOST = "127.0.0.1" public static final int DB_INDEX = 0 - private static FixedHostPortGenericContainer redisServer = new FixedHostPortGenericContainer<>("redis:6.2.3-alpine") + private static GenericContainer redisServer = new GenericContainer<>("redis:6.2.3-alpine").withExposedPorts(6379) abstract RedisClient createClient(String uri) + @Shared + String host @Shared int port @Shared @@ -40,18 +40,15 @@ abstract class AbstractLettuceReactiveClientTest extends InstrumentationSpecific RedisReactiveCommands reactiveCommands RedisCommands syncCommands - def setupSpec() { - port = PortUtils.findOpenPort() - String dbAddr = HOST + ":" + port + "/" + DB_INDEX - embeddedDbUri = "redis://" + dbAddr - - redisServer = redisServer.withFixedExposedPort(port, 6379) - } - def setup() { + redisServer.start() + + host = redisServer.getHost() + port = redisServer.getMappedPort(6379) + String dbAddr = host + ":" + port + "/" + DB_INDEX + embeddedDbUri = "redis://" + dbAddr redisClient = createClient(embeddedDbUri) - redisServer.start() redisClient.setOptions(LettuceTestUtil.CLIENT_OPTIONS) connection = redisClient.connect() @@ -104,6 +101,7 @@ abstract class AbstractLettuceReactiveClientTest extends InstrumentationSpecific childOf(span(0)) attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -141,6 +139,7 @@ abstract class AbstractLettuceReactiveClientTest extends InstrumentationSpecific kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -191,6 +190,7 @@ abstract class AbstractLettuceReactiveClientTest extends InstrumentationSpecific childOf(span(0)) attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -234,6 +234,7 @@ abstract class AbstractLettuceReactiveClientTest extends InstrumentationSpecific kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_STATEMENT.key}" "RANDOMKEY" @@ -262,6 +263,7 @@ abstract class AbstractLettuceReactiveClientTest extends InstrumentationSpecific kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_STATEMENT.key}" "COMMAND" @@ -309,6 +311,7 @@ abstract class AbstractLettuceReactiveClientTest extends InstrumentationSpecific childOf span(0) attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -327,6 +330,7 @@ abstract class AbstractLettuceReactiveClientTest extends InstrumentationSpecific childOf span(0) attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -365,6 +369,7 @@ abstract class AbstractLettuceReactiveClientTest extends InstrumentationSpecific childOf span(0) attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -383,6 +388,7 @@ abstract class AbstractLettuceReactiveClientTest extends InstrumentationSpecific childOf span(0) attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" diff --git a/instrumentation/lettuce/lettuce-5.1/testing/src/main/groovy/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceSyncClientAuthTest.groovy b/instrumentation/lettuce/lettuce-5.1/testing/src/main/groovy/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceSyncClientAuthTest.groovy index 65f49d013c..3dc69d5f44 100644 --- a/instrumentation/lettuce/lettuce-5.1/testing/src/main/groovy/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceSyncClientAuthTest.groovy +++ b/instrumentation/lettuce/lettuce-5.1/testing/src/main/groovy/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceSyncClientAuthTest.groovy @@ -7,22 +7,22 @@ package io.opentelemetry.instrumentation.lettuce.v5_1 import io.lettuce.core.RedisClient import io.opentelemetry.instrumentation.test.InstrumentationSpecification -import io.opentelemetry.instrumentation.test.utils.PortUtils import io.opentelemetry.semconv.trace.attributes.SemanticAttributes -import org.testcontainers.containers.FixedHostPortGenericContainer +import org.testcontainers.containers.GenericContainer import spock.lang.Shared import static io.opentelemetry.api.trace.SpanKind.CLIENT import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.NetTransportValues.IP_TCP abstract class AbstractLettuceSyncClientAuthTest extends InstrumentationSpecification { - public static final String HOST = "127.0.0.1" public static final int DB_INDEX = 0 - private static FixedHostPortGenericContainer redisServer = new FixedHostPortGenericContainer<>("redis:6.2.3-alpine") + private static GenericContainer redisServer = new GenericContainer<>("redis:6.2.3-alpine").withExposedPorts(6379) abstract RedisClient createClient(String uri) + @Shared + String host @Shared int port @Shared @@ -35,20 +35,21 @@ abstract class AbstractLettuceSyncClientAuthTest extends InstrumentationSpecific RedisClient redisClient def setupSpec() { - port = PortUtils.findOpenPort() - dbAddr = HOST + ":" + port + "/" + DB_INDEX - embeddedDbUri = "redis://" + dbAddr password = "password" redisServer = redisServer - .withFixedExposedPort(port, 6379) .withCommand("redis-server", "--requirepass $password") } def setup() { + redisServer.start() + host = redisServer.getHost() + port = redisServer.getMappedPort(6379) + dbAddr = host + ":" + port + "/" + DB_INDEX + embeddedDbUri = "redis://" + dbAddr + redisClient = createClient(embeddedDbUri) redisClient.setOptions(LettuceTestUtil.CLIENT_OPTIONS) - redisServer.start() } def cleanup() { @@ -69,6 +70,7 @@ abstract class AbstractLettuceSyncClientAuthTest extends InstrumentationSpecific kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" diff --git a/instrumentation/lettuce/lettuce-5.1/testing/src/main/groovy/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceSyncClientTest.groovy b/instrumentation/lettuce/lettuce-5.1/testing/src/main/groovy/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceSyncClientTest.groovy index 1a405c57ad..aa094d1eec 100644 --- a/instrumentation/lettuce/lettuce-5.1/testing/src/main/groovy/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceSyncClientTest.groovy +++ b/instrumentation/lettuce/lettuce-5.1/testing/src/main/groovy/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceSyncClientTest.groovy @@ -14,7 +14,7 @@ import io.lettuce.core.api.sync.RedisCommands import io.opentelemetry.instrumentation.test.InstrumentationSpecification import io.opentelemetry.instrumentation.test.utils.PortUtils import io.opentelemetry.semconv.trace.attributes.SemanticAttributes -import org.testcontainers.containers.FixedHostPortGenericContainer +import org.testcontainers.containers.GenericContainer import spock.lang.Shared import static io.opentelemetry.api.trace.SpanKind.CLIENT @@ -23,13 +23,14 @@ import static io.opentelemetry.semconv.trace.attributes.SemanticAttributes.NetTr import static java.nio.charset.StandardCharsets.UTF_8 abstract class AbstractLettuceSyncClientTest extends InstrumentationSpecification { - public static final String HOST = "127.0.0.1" public static final int DB_INDEX = 0 - private static FixedHostPortGenericContainer redisServer = new FixedHostPortGenericContainer<>("redis:6.2.3-alpine") + private static GenericContainer redisServer = new GenericContainer<>("redis:6.2.3-alpine").withExposedPorts(6379) abstract RedisClient createClient(String uri) + @Shared + String host @Shared int port @Shared @@ -56,23 +57,22 @@ abstract class AbstractLettuceSyncClientTest extends InstrumentationSpecificatio StatefulConnection connection RedisCommands syncCommands - def setupSpec() { - port = PortUtils.findOpenPort() - incorrectPort = PortUtils.findOpenPort() - dbAddr = HOST + ":" + port + "/" + DB_INDEX - dbAddrNonExistent = HOST + ":" + incorrectPort + "/" + DB_INDEX - dbUriNonExistent = "redis://" + dbAddrNonExistent + def setup() { + redisServer.start() + + host = redisServer.getHost() + port = redisServer.getMappedPort(6379) + dbAddr = host + ":" + port + "/" + DB_INDEX embeddedDbUri = "redis://" + dbAddr embeddedDbLocalhostUri = "redis://localhost:" + port + "/" + DB_INDEX - redisServer = redisServer.withFixedExposedPort(port, 6379) - } + incorrectPort = PortUtils.findOpenPort() + dbAddrNonExistent = host + ":" + incorrectPort + "/" + DB_INDEX + dbUriNonExistent = "redis://" + dbAddrNonExistent - def setup() { redisClient = createClient(embeddedDbUri) redisClient.setOptions(LettuceTestUtil.CLIENT_OPTIONS) - redisServer.start() connection = redisClient.connect() syncCommands = connection.sync() @@ -136,6 +136,7 @@ abstract class AbstractLettuceSyncClientTest extends InstrumentationSpecificatio kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -202,6 +203,7 @@ abstract class AbstractLettuceSyncClientTest extends InstrumentationSpecificatio kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -231,6 +233,7 @@ abstract class AbstractLettuceSyncClientTest extends InstrumentationSpecificatio kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -260,6 +263,7 @@ abstract class AbstractLettuceSyncClientTest extends InstrumentationSpecificatio kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_STATEMENT.key}" "RANDOMKEY" @@ -289,6 +293,7 @@ abstract class AbstractLettuceSyncClientTest extends InstrumentationSpecificatio kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -318,6 +323,7 @@ abstract class AbstractLettuceSyncClientTest extends InstrumentationSpecificatio kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -347,6 +353,7 @@ abstract class AbstractLettuceSyncClientTest extends InstrumentationSpecificatio kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -381,6 +388,7 @@ abstract class AbstractLettuceSyncClientTest extends InstrumentationSpecificatio kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -414,6 +422,7 @@ abstract class AbstractLettuceSyncClientTest extends InstrumentationSpecificatio kind CLIENT attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -443,6 +452,7 @@ abstract class AbstractLettuceSyncClientTest extends InstrumentationSpecificatio // Disconnect not an actual error even though an exception is recorded. attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis" @@ -479,6 +489,7 @@ abstract class AbstractLettuceSyncClientTest extends InstrumentationSpecificatio } attributes { "${SemanticAttributes.NET_TRANSPORT.key}" IP_TCP + "${SemanticAttributes.NET_PEER_NAME.key}" host "${SemanticAttributes.NET_PEER_IP.key}" "127.0.0.1" "${SemanticAttributes.NET_PEER_PORT.key}" port "${SemanticAttributes.DB_SYSTEM.key}" "redis"