Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,9 @@ dependencies {

testImplementation(project(":instrumentation:couchbase:couchbase-common:testing"))

latestDepTestLibrary("org.springframework.data:spring-data-couchbase:3.+")
latestDepTestLibrary("com.couchbase.client:java-client:2.+")
// later versions are tested with couchbase-2.6 instrumentation
latestDepTestLibrary("org.springframework.data:spring-data-couchbase:2.+")
latestDepTestLibrary("com.couchbase.client:java-client:2.5.+")
}

tasks.withType<Test>().configureEach {
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.javaagent.instrumentation.couchbase.v2_0;

import com.couchbase.client.java.cluster.BucketSettings;
import com.couchbase.client.java.env.DefaultCouchbaseEnvironment;
import io.opentelemetry.instrumentation.couchbase.AbstractCouchbaseAsyncClientTest;

class CouchbaseAsyncClientTest extends AbstractCouchbaseAsyncClientTest {

@Override
protected DefaultCouchbaseEnvironment.Builder envBuilder(
BucketSettings bucketSettings, int carrierDirectPort, int httpDirectPort) {
return CouchbaseUtil.envBuilder(bucketSettings, carrierDirectPort, httpDirectPort);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.javaagent.instrumentation.couchbase.v2_0;

import com.couchbase.client.java.cluster.BucketSettings;
import com.couchbase.client.java.env.DefaultCouchbaseEnvironment;
import io.opentelemetry.instrumentation.couchbase.AbstractCouchbaseClientTest;

class CouchbaseClientTest extends AbstractCouchbaseClientTest {

@Override
protected DefaultCouchbaseEnvironment.Builder envBuilder(
BucketSettings bucketSettings, int carrierDirectPort, int httpDirectPort) {
return CouchbaseUtil.envBuilder(bucketSettings, carrierDirectPort, httpDirectPort);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.javaagent.instrumentation.couchbase.v2_0;

import com.couchbase.client.core.metrics.DefaultLatencyMetricsCollectorConfig;
import com.couchbase.client.core.metrics.DefaultMetricsCollectorConfig;
import com.couchbase.client.java.cluster.BucketSettings;
import com.couchbase.client.java.env.DefaultCouchbaseEnvironment;
import java.util.concurrent.TimeUnit;

public class CouchbaseUtil {

public static DefaultCouchbaseEnvironment.Builder envBuilder(
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this class is duplicated for 2.6 because the return types of methods in the builder class have changed, class compiled agains older version of the library won't work with newer version

BucketSettings bucketSettings, int carrierDirectPort, int httpDirectPort) {
// Couchbase seems to be really slow to start sometimes
long timeout = TimeUnit.SECONDS.toMillis(20);
return DefaultCouchbaseEnvironment.builder()
.bootstrapCarrierDirectPort(carrierDirectPort)
.bootstrapHttpDirectPort(httpDirectPort)
// settings to try to reduce variability in the tests:
.runtimeMetricsCollectorConfig(DefaultMetricsCollectorConfig.create(0, TimeUnit.DAYS))
.networkLatencyMetricsCollectorConfig(
DefaultLatencyMetricsCollectorConfig.create(0, TimeUnit.DAYS))
.computationPoolSize(1)
.connectTimeout(timeout)
.disconnectTimeout(timeout)
.kvTimeout(timeout)
.managementTimeout(timeout)
.queryTimeout(timeout)
.viewTimeout(timeout)
.keepAliveTimeout(timeout)
.searchTimeout(timeout)
.analyticsTimeout(timeout)
.socketConnectTimeout((int) timeout);
}

private CouchbaseUtil() {}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.javaagent.instrumentation.couchbase.v2_0.springdata;

import com.couchbase.client.java.cluster.BucketSettings;
import com.couchbase.client.java.env.DefaultCouchbaseEnvironment;
import io.opentelemetry.instrumentation.couchbase.springdata.AbstractCouchbaseSpringRepositoryTest;
import io.opentelemetry.instrumentation.couchbase.springdata.TestDocument;
import io.opentelemetry.instrumentation.couchbase.springdata.TestRepository;
import io.opentelemetry.javaagent.instrumentation.couchbase.v2_0.CouchbaseUtil;

class CouchbaseSpringRepositoryTest extends AbstractCouchbaseSpringRepositoryTest {

@Override
protected DefaultCouchbaseEnvironment.Builder envBuilder(
BucketSettings bucketSettings, int carrierDirectPort, int httpDirectPort) {
return CouchbaseUtil.envBuilder(bucketSettings, carrierDirectPort, httpDirectPort);
}

@Override
protected TestDocument findById(TestRepository repository, String id) {
return repository.findOne(id);
}

@Override
protected void deleteById(TestRepository repository, String id) {
repository.delete(id);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.javaagent.instrumentation.couchbase.v2_0.springdata;

import com.couchbase.client.java.cluster.BucketSettings;
import com.couchbase.client.java.env.DefaultCouchbaseEnvironment;
import io.opentelemetry.instrumentation.couchbase.springdata.AbstractCouchbaseSpringTemplateTest;
import io.opentelemetry.javaagent.instrumentation.couchbase.v2_0.CouchbaseUtil;

class CouchbaseSpringTemplateTest extends AbstractCouchbaseSpringTemplateTest {

@Override
protected DefaultCouchbaseEnvironment.Builder envBuilder(
BucketSettings bucketSettings, int carrierDirectPort, int httpDirectPort) {
return CouchbaseUtil.envBuilder(bucketSettings, carrierDirectPort, httpDirectPort);
}
}

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.javaagent.instrumentation.couchbase.v2_6;

import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
import static org.assertj.core.api.Assertions.assertThat;

import com.couchbase.client.core.metrics.DefaultLatencyMetricsCollectorConfig;
import com.couchbase.client.core.metrics.DefaultMetricsCollectorConfig;
import com.couchbase.client.java.cluster.BucketSettings;
import com.couchbase.client.java.env.DefaultCouchbaseEnvironment;
import io.opentelemetry.api.common.AttributeKey;
import io.opentelemetry.sdk.testing.assertj.AttributeAssertion;
import io.opentelemetry.semconv.NetworkAttributes;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.TimeUnit;

public class Couchbase26Util {

public static DefaultCouchbaseEnvironment.Builder envBuilder(
BucketSettings bucketSettings, int carrierDirectPort, int httpDirectPort) {
// Couchbase seems to be really slow to start sometimes
long timeout = TimeUnit.SECONDS.toMillis(20);
return DefaultCouchbaseEnvironment.builder()
.bootstrapCarrierDirectPort(carrierDirectPort)
.bootstrapHttpDirectPort(httpDirectPort)
// settings to try to reduce variability in the tests:
.runtimeMetricsCollectorConfig(DefaultMetricsCollectorConfig.create(0, TimeUnit.DAYS))
.networkLatencyMetricsCollectorConfig(
DefaultLatencyMetricsCollectorConfig.create(0, TimeUnit.DAYS))
.computationPoolSize(1)
.connectTimeout(timeout)
.disconnectTimeout(timeout)
.kvTimeout(timeout)
.managementTimeout(timeout)
.queryTimeout(timeout)
.viewTimeout(timeout)
.keepAliveTimeout(timeout)
.searchTimeout(timeout)
.analyticsTimeout(timeout)
.socketConnectTimeout((int) timeout);
}

public static List<AttributeAssertion> couchbaseAttributes() {
return Arrays.asList(
equalTo(NetworkAttributes.NETWORK_TYPE, "ipv4"),
equalTo(NetworkAttributes.NETWORK_PEER_ADDRESS, "127.0.0.1"),
satisfies(NetworkAttributes.NETWORK_PEER_PORT, val -> assertThat(val).isNotNull()),
satisfies(
AttributeKey.stringKey("couchbase.local.address"), val -> assertThat(val).isNotNull()),
satisfies(
AttributeKey.stringKey("couchbase.operation_id"), val -> assertThat(val).isNotNull()));
}

private Couchbase26Util() {}
}
Loading