diff --git a/Microsoft.Azure.Cosmos/src/Tracing/TraceData/ClientConfigurationTraceDatum.cs b/Microsoft.Azure.Cosmos/src/Tracing/TraceData/ClientConfigurationTraceDatum.cs index 6485c2a9eb..c70de6e958 100644 --- a/Microsoft.Azure.Cosmos/src/Tracing/TraceData/ClientConfigurationTraceDatum.cs +++ b/Microsoft.Azure.Cosmos/src/Tracing/TraceData/ClientConfigurationTraceDatum.cs @@ -26,7 +26,7 @@ public ClientConfigurationTraceDatum(CosmosClientContext cosmosClientContext, Da cosmosClientContext.ClientOptions.AllowBulkExecution); this.ConsistencyConfig = new ConsistencyConfig(cosmosClientContext.ClientOptions.ConsistencyLevel, - cosmosClientContext.ClientOptions.ApplicationPreferredRegions); + cosmosClientContext.ClientOptions.ApplicationPreferredRegions, cosmosClientContext.ClientOptions.ApplicationRegion); this.cachedNumberOfClientCreated = CosmosClient.numberOfClientsCreated; this.cachedNumberOfActiveClient = CosmosClient.NumberOfActiveClients; diff --git a/Microsoft.Azure.Cosmos/src/Tracing/TraceData/ConsistencyConfig.cs b/Microsoft.Azure.Cosmos/src/Tracing/TraceData/ConsistencyConfig.cs index ae1dd7b740..2bd0657224 100644 --- a/Microsoft.Azure.Cosmos/src/Tracing/TraceData/ConsistencyConfig.cs +++ b/Microsoft.Azure.Cosmos/src/Tracing/TraceData/ConsistencyConfig.cs @@ -12,19 +12,23 @@ internal class ConsistencyConfig { public ConsistencyConfig( ConsistencyLevel? consistencyLevel, - IReadOnlyList preferredRegions) + IReadOnlyList preferredRegions, + string applicationRegion) { this.ConsistencyLevel = consistencyLevel; this.PreferredRegions = preferredRegions; + this.ApplicationRegion = applicationRegion; this.lazyString = new Lazy(() => string.Format(CultureInfo.InvariantCulture, - "(consistency: {0}, prgns:[{1}])", + "(consistency: {0}, prgns:[{1}], apprgn: {2})", consistencyLevel?.ToString() ?? "NotSet", - ConsistencyConfig.PreferredRegionsInternal(preferredRegions))); + ConsistencyConfig.PreferredRegionsInternal(preferredRegions), + applicationRegion)); this.lazyJsonString = new Lazy(() => Newtonsoft.Json.JsonConvert.SerializeObject(this)); } public ConsistencyLevel? ConsistencyLevel { get; } public IReadOnlyList PreferredRegions { get; } + public string ApplicationRegion { get; } private readonly Lazy lazyString; private readonly Lazy lazyJsonString; diff --git a/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/ClientConfigurationDiagnosticTest.cs b/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/ClientConfigurationDiagnosticTest.cs index 9ae367ebed..eb2d99489b 100644 --- a/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/ClientConfigurationDiagnosticTest.cs +++ b/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/ClientConfigurationDiagnosticTest.cs @@ -74,6 +74,20 @@ public void ClientConfigWithOptionsTest() ConsistencyConfig consistencyConfig = cosmosClient.ClientConfigurationTraceDatum.ConsistencyConfig; Assert.AreEqual(consistencyConfig.ConsistencyLevel.Value, ConsistencyLevel.Session); + + CosmosClientOptions clientOptions = new CosmosClientOptions + { + ApplicationRegion = "East US" + }; + + CosmosClientContext context = ClientContextCore.Create( + cosmosClient, + clientOptions); + + ClientConfigurationTraceDatum clientConfig = new ClientConfigurationTraceDatum(context, DateTime.UtcNow); + Assert.AreEqual(clientConfig.ConsistencyConfig.ApplicationRegion, "East US"); + Assert.IsNull(clientConfig.ConsistencyConfig.PreferredRegions); + } [TestMethod] @@ -81,14 +95,16 @@ public void ConsistencyConfigSerializationTest() { List preferredRegions = new List { "EastUS", "WestUs" }; ConsistencyLevel consistencyLevel = ConsistencyLevel.Session; + string appRegion = "EastUS"; - ConsistencyConfig consistencyConfig = new ConsistencyConfig(consistencyLevel, preferredRegions); - Assert.AreEqual(consistencyConfig.ToString(), "(consistency: Session, prgns:[EastUS, WestUs])"); + ConsistencyConfig consistencyConfig = new ConsistencyConfig(consistencyLevel, preferredRegions, appRegion); + Assert.AreEqual(consistencyConfig.ToString(), "(consistency: Session, prgns:[EastUS, WestUs], apprgn: EastUS)"); ConsistencyConfig consistencyConfigWithNull = new ConsistencyConfig(consistencyLevel: null, - preferredRegions: null); + preferredRegions: null, + applicationRegion: null); - Assert.AreEqual(consistencyConfigWithNull.ToString(), "(consistency: NotSet, prgns:[])"); + Assert.AreEqual(consistencyConfigWithNull.ToString(), "(consistency: NotSet, prgns:[], apprgn: )"); } [TestMethod]