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