diff --git a/eng/code-quality-reports/src/main/resources/spotbugs/spotbugs-exclude.xml b/eng/code-quality-reports/src/main/resources/spotbugs/spotbugs-exclude.xml
index 2c6af81d7e59..2f2d7958f43a 100755
--- a/eng/code-quality-reports/src/main/resources/spotbugs/spotbugs-exclude.xml
+++ b/eng/code-quality-reports/src/main/resources/spotbugs/spotbugs-exclude.xml
@@ -1967,7 +1967,7 @@
-
+
diff --git a/sdk/cosmos/azure-cosmos/pom.xml b/sdk/cosmos/azure-cosmos/pom.xml
index 1b5317aa5bbc..f34b717720c7 100644
--- a/sdk/cosmos/azure-cosmos/pom.xml
+++ b/sdk/cosmos/azure-cosmos/pom.xml
@@ -531,6 +531,7 @@ Licensed under the MIT License.
--add-opens com.azure.cosmos/com.azure.cosmos.rx.proxy=ALL-UNNAMED
--add-opens com.azure.cosmos/com.azure.cosmos.implementation.throughputControl=ALL-UNNAMED
--add-opens com.azure.cosmos/com.azure.cosmos.implementation.throughputControl.controller.request=ALL-UNNAMED
+ --add-opens com.azure.cosmos/com.azure.cosmos.implementation.clienttelemetry=ALL-UNNAMED
diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/AsyncDocumentClient.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/AsyncDocumentClient.java
index ed7ad5a515ba..b2746262d106 100644
--- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/AsyncDocumentClient.java
+++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/AsyncDocumentClient.java
@@ -9,12 +9,9 @@
import com.azure.cosmos.implementation.apachecommons.lang.StringUtils;
import com.azure.cosmos.implementation.batch.ServerBatchRequest;
import com.azure.cosmos.CosmosPatchOperations;
-import com.azure.cosmos.TransactionalBatchResponse;
-import com.azure.cosmos.implementation.apachecommons.lang.StringUtils;
-import com.azure.cosmos.implementation.batch.ServerBatchRequest;
import com.azure.cosmos.implementation.caches.RxClientCollectionCache;
import com.azure.cosmos.implementation.caches.RxPartitionKeyRangeCache;
-import com.azure.cosmos.implementation.clientTelemetry.ClientTelemetry;
+import com.azure.cosmos.implementation.clienttelemetry.ClientTelemetry;
import com.azure.cosmos.implementation.query.PartitionedQueryExecutionInfo;
import com.azure.cosmos.implementation.throughputControl.config.ThroughputControlGroupInternal;
import com.azure.cosmos.models.CosmosChangeFeedRequestOptions;
@@ -30,7 +27,6 @@
import java.net.URI;
import java.net.URISyntaxException;
import java.util.List;
-import java.util.Set;
import java.util.concurrent.ConcurrentMap;
/**
diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RxDocumentClientImpl.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RxDocumentClientImpl.java
index b84e5091775a..bc9a02deb705 100644
--- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RxDocumentClientImpl.java
+++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/RxDocumentClientImpl.java
@@ -21,7 +21,7 @@
import com.azure.cosmos.implementation.caches.RxClientCollectionCache;
import com.azure.cosmos.implementation.caches.RxCollectionCache;
import com.azure.cosmos.implementation.caches.RxPartitionKeyRangeCache;
-import com.azure.cosmos.implementation.clientTelemetry.ClientTelemetry;
+import com.azure.cosmos.implementation.clienttelemetry.ClientTelemetry;
import com.azure.cosmos.implementation.cpu.CpuMemoryListener;
import com.azure.cosmos.implementation.cpu.CpuMemoryMonitor;
import com.azure.cosmos.implementation.directconnectivity.GatewayServiceConfigurationReader;
diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/TracerProvider.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/TracerProvider.java
index 798fa91cc283..43da27585537 100644
--- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/TracerProvider.java
+++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/TracerProvider.java
@@ -10,8 +10,8 @@
import com.azure.cosmos.CosmosDiagnostics;
import com.azure.cosmos.CosmosException;
import com.azure.cosmos.TransactionalBatchResponse;
-import com.azure.cosmos.implementation.clientTelemetry.ClientTelemetry;
-import com.azure.cosmos.implementation.clientTelemetry.ReportPayload;
+import com.azure.cosmos.implementation.clienttelemetry.ClientTelemetry;
+import com.azure.cosmos.implementation.clienttelemetry.ReportPayload;
import com.azure.cosmos.implementation.directconnectivity.DirectBridgeInternal;
import com.azure.cosmos.models.CosmosItemResponse;
import com.azure.cosmos.models.CosmosResponse;
diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/AzureVMMetadata.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/AzureVMMetadata.java
similarity index 97%
rename from sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/AzureVMMetadata.java
rename to sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/AzureVMMetadata.java
index f37dbae35e6b..a94ea77720c2 100644
--- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/AzureVMMetadata.java
+++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/AzureVMMetadata.java
@@ -1,6 +1,6 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
-package com.azure.cosmos.implementation.clientTelemetry;
+package com.azure.cosmos.implementation.clienttelemetry;
import com.azure.cosmos.implementation.apachecommons.lang.StringUtils;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@@ -85,4 +85,4 @@ public void setVmSize(String vmSize) {
this.vmSize = vmSize;
}
}
-}
\ No newline at end of file
+}
diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/ClientTelemetry.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/ClientTelemetry.java
similarity index 98%
rename from sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/ClientTelemetry.java
rename to sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/ClientTelemetry.java
index e23bcafcefe8..5c4cc7af3cb0 100644
--- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/ClientTelemetry.java
+++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/ClientTelemetry.java
@@ -1,6 +1,6 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
-package com.azure.cosmos.implementation.clientTelemetry;
+package com.azure.cosmos.implementation.clienttelemetry;
import com.azure.cosmos.BridgeInternal;
import com.azure.cosmos.ConnectionMode;
@@ -200,7 +200,8 @@ private Mono sendClientTelemetry() {
HttpRequest httpRequest = new HttpRequest(HttpMethod.POST, targetEndpoint,
targetEndpoint.getPort(), httpHeaders, fluxBytes);
- Mono httpResponseMono = this.httpClient.send(httpRequest);
+ Mono httpResponseMono = this.httpClient.send(httpRequest,
+ Duration.ofSeconds(Configs.getHttpResponseTimeoutInSeconds()));
return httpResponseMono.flatMap(response -> {
if (response.statusCode() != HttpConstants.StatusCodes.OK) {
logger.error("Client telemetry request did not succeeded, status code {}",
diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/ClientTelemetryInfo.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/ClientTelemetryInfo.java
similarity index 98%
rename from sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/ClientTelemetryInfo.java
rename to sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/ClientTelemetryInfo.java
index a77a6e0e5735..764d84506c7d 100644
--- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/ClientTelemetryInfo.java
+++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/ClientTelemetryInfo.java
@@ -1,6 +1,6 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
-package com.azure.cosmos.implementation.clientTelemetry;
+package com.azure.cosmos.implementation.clienttelemetry;
import com.azure.cosmos.ConnectionMode;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/ClientTelemetrySerializer.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/ClientTelemetrySerializer.java
similarity index 97%
rename from sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/ClientTelemetrySerializer.java
rename to sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/ClientTelemetrySerializer.java
index fb1ffc3c189b..c3e846034548 100644
--- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/ClientTelemetrySerializer.java
+++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/ClientTelemetrySerializer.java
@@ -1,6 +1,6 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
-package com.azure.cosmos.implementation.clientTelemetry;
+package com.azure.cosmos.implementation.clienttelemetry;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider;
diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/MetricInfo.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/MetricInfo.java
similarity index 96%
rename from sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/MetricInfo.java
rename to sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/MetricInfo.java
index 18d7bf4ee262..5dd73c1d52fb 100644
--- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/MetricInfo.java
+++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/MetricInfo.java
@@ -1,6 +1,6 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
-package com.azure.cosmos.implementation.clientTelemetry;
+package com.azure.cosmos.implementation.clienttelemetry;
import com.fasterxml.jackson.annotation.JsonInclude;
diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/ReportPayload.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/ReportPayload.java
similarity index 98%
rename from sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/ReportPayload.java
rename to sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/ReportPayload.java
index 2c5705967692..89775ef2b9ab 100644
--- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clientTelemetry/ReportPayload.java
+++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/clienttelemetry/ReportPayload.java
@@ -1,6 +1,6 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
-package com.azure.cosmos.implementation.clientTelemetry;
+package com.azure.cosmos.implementation.clienttelemetry;
import com.azure.cosmos.ConsistencyLevel;
import com.azure.cosmos.implementation.OperationType;
diff --git a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/util/CosmosPagedFlux.java b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/util/CosmosPagedFlux.java
index 77b6dc8d9f34..3be7602c2f0a 100644
--- a/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/util/CosmosPagedFlux.java
+++ b/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/util/CosmosPagedFlux.java
@@ -23,9 +23,8 @@
import com.azure.cosmos.implementation.ResourceType;
import com.azure.cosmos.implementation.SerializationDiagnosticsContext;
import com.azure.cosmos.implementation.TracerProvider;
-import com.azure.cosmos.implementation.Utils;
-import com.azure.cosmos.implementation.clientTelemetry.ClientTelemetry;
-import com.azure.cosmos.implementation.clientTelemetry.ReportPayload;
+import com.azure.cosmos.implementation.clienttelemetry.ClientTelemetry;
+import com.azure.cosmos.implementation.clienttelemetry.ReportPayload;
import com.azure.cosmos.implementation.query.QueryInfo;
import com.azure.cosmos.models.FeedResponse;
import com.fasterxml.jackson.core.JsonProcessingException;
diff --git a/sdk/cosmos/azure-cosmos/src/main/java/module-info.java b/sdk/cosmos/azure-cosmos/src/main/java/module-info.java
index efbeda7edd17..a077b29c482e 100644
--- a/sdk/cosmos/azure-cosmos/src/main/java/module-info.java
+++ b/sdk/cosmos/azure-cosmos/src/main/java/module-info.java
@@ -50,7 +50,7 @@
opens com.azure.cosmos.implementation.query.metrics to com.fasterxml.jackson.databind;
opens com.azure.cosmos.implementation.query.orderbyquery to com.fasterxml.jackson.databind;
opens com.azure.cosmos.implementation.routing to com.fasterxml.jackson.databind;
- opens com.azure.cosmos.implementation.clientTelemetry to com.fasterxml.jackson.databind;
+ opens com.azure.cosmos.implementation.clienttelemetry to com.fasterxml.jackson.databind;
opens com.azure.cosmos.models to com.fasterxml.jackson.databind;
opens com.azure.cosmos.util to com.fasterxml.jackson.databind;
opens com.azure.cosmos.implementation.throughputControl to com.fasterxml.jackson.databind;
diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/ClientTelemetryTest.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/ClientTelemetryTest.java
index 24939ecf2925..1b1b97ab73f8 100644
--- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/ClientTelemetryTest.java
+++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/ClientTelemetryTest.java
@@ -5,23 +5,33 @@
import com.azure.cosmos.implementation.Configs;
import com.azure.cosmos.implementation.HttpConstants;
import com.azure.cosmos.implementation.InternalObjectNode;
+import com.azure.cosmos.implementation.RxDocumentClientImpl;
import com.azure.cosmos.implementation.TestConfigurations;
-import com.azure.cosmos.implementation.clientTelemetry.ClientTelemetry;
-import com.azure.cosmos.implementation.clientTelemetry.ReportPayload;
+import com.azure.cosmos.implementation.clienttelemetry.ClientTelemetry;
+import com.azure.cosmos.implementation.clienttelemetry.ReportPayload;
+import com.azure.cosmos.implementation.directconnectivity.ReflectionUtils;
+import com.azure.cosmos.implementation.http.HttpClient;
+import com.azure.cosmos.implementation.http.HttpResponse;
+import com.azure.cosmos.models.CosmosContainerProperties;
import com.azure.cosmos.models.CosmosItemRequestOptions;
import com.azure.cosmos.models.CosmosQueryRequestOptions;
import com.azure.cosmos.models.FeedResponse;
import com.azure.cosmos.models.PartitionKey;
import com.azure.cosmos.rx.TestSuiteBase;
+import org.mockito.ArgumentMatchers;
+import org.mockito.Mockito;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
+import reactor.core.publisher.Mono;
+import reactor.test.StepVerifier;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Iterator;
import java.util.UUID;
+import java.util.concurrent.atomic.AtomicReference;
import static org.assertj.core.api.Assertions.assertThat;
@@ -86,10 +96,7 @@ public void operationsList(CosmosClient cosmosClient) throws Exception {
cosmosClient.getDatabase(asyncContainer.getDatabase().getId()).getContainer(asyncContainer.getId());
ClientTelemetry clientTelemetry = cosmosClient.asyncClient().getContextClient().getClientTelemetry();
- Field backgroundRefreshLocationTimeIntervalInSecField = ClientTelemetry.class.getDeclaredField(
- "clientTelemetrySchedulingSec");
- backgroundRefreshLocationTimeIntervalInSecField.setAccessible(true);
- backgroundRefreshLocationTimeIntervalInSecField.setInt(clientTelemetry, 5);
+ setClientTelemetrySchedulingInSec(clientTelemetry, 5);
clientTelemetry.init();
InternalObjectNode internalObjectNode = getInternalObjectNode();
@@ -205,6 +212,70 @@ public void clientTelemetryScheduling() {
System.setProperty("COSMOS.CLIENT_TELEMETRY_SCHEDULING_IN_SECONDS", "600");// setting it back for other tests
}
+ @SuppressWarnings("unchecked")
+ @Test(groups = {"non-emulator"}, timeOut = TIMEOUT)
+ public void clientTelemetryWithStageJunoEndpoint() throws InterruptedException, NoSuchFieldException,
+ IllegalAccessException {
+ CosmosClient cosmosClient = null;
+ String databaseId = UUID.randomUUID().toString();
+ try {
+ String whiteListedAccountForTelemetry = System.getProperty("COSMOS.CLIENT_TELEMETRY_COSMOS_ACCOUNT");
+ String[] credentialList = whiteListedAccountForTelemetry.split(";");
+ String host = credentialList[0].substring("AccountEndpoint=".length());
+ String key = credentialList[1].substring("AccountKey=".length());
+
+ cosmosClient = new CosmosClientBuilder()
+ .endpoint(host)
+ .key(key)
+ .clientTelemetryEnabled(true)
+ .buildClient();
+ String containerId = UUID.randomUUID().toString();
+ cosmosClient.createDatabase(databaseId);
+
+ CosmosContainerProperties containerProperties =
+ new CosmosContainerProperties(containerId, "/id");
+ cosmosClient.getDatabase(databaseId).createContainer(containerProperties);
+ CosmosContainer cosmosContainer =
+ cosmosClient.getDatabase(databaseId).getContainer(containerId);
+ ClientTelemetry clientTelemetry = cosmosClient.asyncClient().getContextClient().getClientTelemetry();
+ setClientTelemetrySchedulingInSec(clientTelemetry, 5);
+ clientTelemetry.init();
+
+ // If this test need to run on local machine please add below env property,
+ // in test env we add the env property with cosmos-client-telemetry-endpoint variable in tests.yml,
+ // which gets its value from key vault TestSecrets-Cosmos
+
+ logger.info("clientTelemetryWithStageJunoEndpoint client telemetry endpoint {}", System.getProperty("COSMOS.CLIENT_TELEMETRY_ENDPOINT").split("/")[2]);
+ logger.info("clientTelemetryWithStageJunoEndpoint cosmos account name {}",
+ ReflectionUtils.getGlobalEndpointManager((RxDocumentClientImpl) CosmosBridgeInternal.getAsyncDocumentClient(cosmosClient)).getLatestDatabaseAccount().getResourceId());
+
+
+ HttpClient httpClient = ReflectionUtils.getHttpClient(clientTelemetry);
+ HttpClient spyHttpClient = Mockito.spy(httpClient);
+ ReflectionUtils.setHttpClient(clientTelemetry, spyHttpClient);
+
+ AtomicReference> httpResponseMono = new AtomicReference<>();
+ Mockito.doAnswer(invocationOnMock -> {
+ httpResponseMono.set((Mono) invocationOnMock.callRealMethod());
+ return httpResponseMono.get();
+ }).when(spyHttpClient).send(ArgumentMatchers.any(),
+ ArgumentMatchers.any());
+ InternalObjectNode internalObjectNode = getInternalObjectNode();
+ cosmosContainer.createItem(internalObjectNode);
+ cosmosContainer.readItem(internalObjectNode.getId(),
+ new PartitionKey(internalObjectNode.getId()),
+ InternalObjectNode.class);
+ Thread.sleep(5000);
+ StepVerifier.create(httpResponseMono.get()).expectNextMatches(httpResponse -> {
+ logger.info("clientTelemetryWithStageJunoEndpoint statusCode from juno {}", httpResponse.statusCode());
+ return httpResponse.statusCode() == HttpConstants.StatusCodes.OK;
+ }).verifyComplete();
+ } finally {
+ cosmosClient.getDatabase(databaseId).delete();
+ safeCloseSyncClient(cosmosClient);
+ }
+ }
+
private InternalObjectNode getInternalObjectNode() {
InternalObjectNode internalObjectNode = new InternalObjectNode();
String uuid = UUID.randomUUID().toString();
@@ -218,4 +289,11 @@ private void readClientTelemetry(ClientTelemetry telemetry) throws Exception {
readHistogram.setAccessible(true);
readHistogram.invoke(telemetry);
}
+
+ private void setClientTelemetrySchedulingInSec(ClientTelemetry clientTelemetry, int backgroundScheduling) throws IllegalAccessException, NoSuchFieldException {
+ Field backgroundRefreshLocationTimeIntervalInSecField = ClientTelemetry.class.getDeclaredField(
+ "clientTelemetrySchedulingSec");
+ backgroundRefreshLocationTimeIntervalInSecField.setAccessible(true);
+ backgroundRefreshLocationTimeIntervalInSecField.setInt(clientTelemetry, backgroundScheduling);
+ }
}
diff --git a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ReflectionUtils.java b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ReflectionUtils.java
index 651ed8fc4308..eb2d2500771a 100644
--- a/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ReflectionUtils.java
+++ b/sdk/cosmos/azure-cosmos/src/test/java/com/azure/cosmos/implementation/directconnectivity/ReflectionUtils.java
@@ -24,6 +24,7 @@
import com.azure.cosmos.implementation.caches.RxClientCollectionCache;
import com.azure.cosmos.implementation.caches.RxCollectionCache;
import com.azure.cosmos.implementation.caches.RxPartitionKeyRangeCache;
+import com.azure.cosmos.implementation.clienttelemetry.ClientTelemetry;
import com.azure.cosmos.implementation.cpu.CpuMemoryListener;
import com.azure.cosmos.implementation.cpu.CpuMemoryMonitor;
import com.azure.cosmos.implementation.directconnectivity.rntbd.RntbdEndpoint;
@@ -307,4 +308,12 @@ public static ConcurrentHashMap ge
ThroughputRequestThrottler requestThrottler) {
return get(ConcurrentHashMap.class, requestThrottler, "trackingDictionary");
}
+
+ public static HttpClient getHttpClient(ClientTelemetry telemetry) {
+ return get(HttpClient.class, telemetry, "httpClient");
+ }
+
+ public static void setHttpClient(ClientTelemetry telemetry, HttpClient httpClient) {
+ set(telemetry, httpClient, "httpClient");
+ }
}
diff --git a/sdk/cosmos/tests.yml b/sdk/cosmos/tests.yml
index 4f365498890d..427545455dc5 100644
--- a/sdk/cosmos/tests.yml
+++ b/sdk/cosmos/tests.yml
@@ -3,7 +3,7 @@ trigger: none
variables:
- template: ../../eng/pipelines/templates/variables/globals.yml
- name: AdditionalArgs
- value: ''
+ value: '-DCOSMOS.CLIENT_TELEMETRY_ENDPOINT=$(cosmos-client-telemetry-endpoint) -DCOSMOS.CLIENT_TELEMETRY_COSMOS_ACCOUNT=$(cosmos-client-telemetry-cosmos-account)'
stages:
- template: /eng/pipelines/templates/stages/archetype-sdk-tests.yml