diff --git a/Microsoft.Azure.Cosmos/src/Tracing/TraceWriter.TraceJsonWriter.cs b/Microsoft.Azure.Cosmos/src/Tracing/TraceWriter.TraceJsonWriter.cs index a190f2e5e2..4710f00a2e 100644 --- a/Microsoft.Azure.Cosmos/src/Tracing/TraceWriter.TraceJsonWriter.cs +++ b/Microsoft.Azure.Cosmos/src/Tracing/TraceWriter.TraceJsonWriter.cs @@ -47,7 +47,7 @@ public static void WriteTrace( if (isRootTrace) { writer.WriteFieldName("start time"); - writer.WriteStringValue(trace.StartTime.ToString("hh:mm:ss:fff")); + writer.WriteStringValue(trace.StartTime.ToString(TraceWriter.HourTimeFormatString)); } writer.WriteFieldName("duration in milliseconds"); writer.WriteNumber64Value(trace.Duration.TotalMilliseconds); diff --git a/Microsoft.Azure.Cosmos/src/Tracing/TraceWriter.TraceTextWriter.cs b/Microsoft.Azure.Cosmos/src/Tracing/TraceWriter.TraceTextWriter.cs index a55860655c..f77307b359 100644 --- a/Microsoft.Azure.Cosmos/src/Tracing/TraceWriter.TraceTextWriter.cs +++ b/Microsoft.Azure.Cosmos/src/Tracing/TraceWriter.TraceTextWriter.cs @@ -17,6 +17,8 @@ namespace Microsoft.Azure.Cosmos.Tracing internal static partial class TraceWriter { + internal static readonly string HourTimeFormatString = "HH:mm:ss:fff"; + private static class TraceTextWriter { private const string space = " "; @@ -97,8 +99,8 @@ private static class Headers private static class HeaderLengths { - public static readonly int StartTime = Math.Max(Headers.StartTime.Length, DateTime.MaxValue.ToString("hh:mm:ss:fff", CultureInfo.InvariantCulture).Length); - public static readonly int EndTime = Math.Max(Headers.EndTime.Length, DateTime.MaxValue.ToString("hh:mm:ss:fff", CultureInfo.InvariantCulture).Length); + public static readonly int StartTime = Math.Max(Headers.StartTime.Length, DateTime.MaxValue.ToString(TraceWriter.HourTimeFormatString, CultureInfo.InvariantCulture).Length); + public static readonly int EndTime = Math.Max(Headers.EndTime.Length, DateTime.MaxValue.ToString(TraceWriter.HourTimeFormatString, CultureInfo.InvariantCulture).Length); public static readonly int Endpoint = 80 - (StartTime + EndTime); } @@ -177,7 +179,7 @@ private static void WriteTraceRecursive( writer.Write("Component"); writer.Write(space); - writer.Write(trace.StartTime.ToString("hh:mm:ss:fff", CultureInfo.InvariantCulture)); + writer.Write(trace.StartTime.ToString(TraceWriter.HourTimeFormatString, CultureInfo.InvariantCulture)); writer.Write(space); writer.Write(trace.Duration.TotalMilliseconds.ToString("0.00")); @@ -316,7 +318,7 @@ public void Visit(PointOperationStatisticsTraceDatum pointOperationStatisticsTra StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine($"Activity ID: {pointOperationStatisticsTraceDatum.ActivityId ?? ""}"); stringBuilder.AppendLine($"Status Code: {pointOperationStatisticsTraceDatum.StatusCode}/{pointOperationStatisticsTraceDatum.SubStatusCode}"); - stringBuilder.AppendLine($"Response Time: {pointOperationStatisticsTraceDatum.ResponseTimeUtc.ToString("hh:mm:ss:fff", CultureInfo.InvariantCulture)}"); + stringBuilder.AppendLine($"Response Time: {pointOperationStatisticsTraceDatum.ResponseTimeUtc.ToString(TraceWriter.HourTimeFormatString, CultureInfo.InvariantCulture)}"); stringBuilder.AppendLine($"Request Charge: {pointOperationStatisticsTraceDatum.RequestCharge}"); stringBuilder.AppendLine($"Request URI: {pointOperationStatisticsTraceDatum.RequestUri ?? ""}"); stringBuilder.AppendLine($"Session Tokens: {pointOperationStatisticsTraceDatum.RequestSessionToken ?? ""} / {pointOperationStatisticsTraceDatum.ResponseSessionToken ?? ""}"); @@ -331,10 +333,10 @@ public void Visit(PointOperationStatisticsTraceDatum pointOperationStatisticsTra public void Visit(ClientSideRequestStatisticsTraceDatum clientSideRequestStatisticsTraceDatum) { StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.AppendLine($"Start Time: {clientSideRequestStatisticsTraceDatum.RequestStartTimeUtc.ToString("hh:mm:ss:fff", CultureInfo.InvariantCulture)}"); + stringBuilder.AppendLine($"Start Time: {clientSideRequestStatisticsTraceDatum.RequestStartTimeUtc.ToString(TraceWriter.HourTimeFormatString, CultureInfo.InvariantCulture)}"); if (clientSideRequestStatisticsTraceDatum.RequestEndTimeUtc.HasValue) { - stringBuilder.AppendLine($"End Time: {clientSideRequestStatisticsTraceDatum.RequestEndTimeUtc.Value.ToString("hh:mm:ss:fff", CultureInfo.InvariantCulture)}"); + stringBuilder.AppendLine($"End Time: {clientSideRequestStatisticsTraceDatum.RequestEndTimeUtc.Value.ToString(TraceWriter.HourTimeFormatString, CultureInfo.InvariantCulture)}"); } stringBuilder.AppendLine("Contacted Replicas"); @@ -378,8 +380,8 @@ public void Visit(ClientSideRequestStatisticsTraceDatum clientSideRequestStatist foreach (KeyValuePair stat in clientSideRequestStatisticsTraceDatum.EndpointToAddressResolutionStatistics) { string row = AddressResolutionStatisticsTextTable.Singleton.GetRow( - stat.Value.StartTime.ToString("hh:mm:ss:fff", CultureInfo.InvariantCulture), - stat.Value.EndTime.HasValue ? stat.Value.EndTime.Value.ToString("hh:mm:ss:fff", CultureInfo.InvariantCulture) : "NO END TIME", + stat.Value.StartTime.ToString(TraceWriter.HourTimeFormatString, CultureInfo.InvariantCulture), + stat.Value.EndTime.HasValue ? stat.Value.EndTime.Value.ToString(TraceWriter.HourTimeFormatString, CultureInfo.InvariantCulture) : "NO END TIME", stat.Value.TargetEndpoint); stringBuilder.AppendLine(row); } @@ -391,14 +393,14 @@ public void Visit(ClientSideRequestStatisticsTraceDatum clientSideRequestStatist { if (stat.RequestStartTime.HasValue) { - stringBuilder.AppendLine($"{space}Start Time: {stat.RequestStartTime.Value.ToString("hh:mm:ss:fff", CultureInfo.InvariantCulture)}"); + stringBuilder.AppendLine($"{space}Start Time: {stat.RequestStartTime.Value.ToString(TraceWriter.HourTimeFormatString, CultureInfo.InvariantCulture)}"); } else { stringBuilder.AppendLine("{space}Start Time Not Found"); } - stringBuilder.AppendLine($"{space}End Time: {stat.RequestResponseTime.ToString("hh:mm:ss:fff", CultureInfo.InvariantCulture)}"); + stringBuilder.AppendLine($"{space}End Time: {stat.RequestResponseTime.ToString(TraceWriter.HourTimeFormatString, CultureInfo.InvariantCulture)}"); stringBuilder.AppendLine($"{space}Resource Type: {stat.RequestResourceType}"); stringBuilder.AppendLine($"{space}Operation Type: {stat.RequestOperationType}"); diff --git a/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.Tests/BaselineTest/TestBaseline/TraceWriterBaselineTests.ScenariosAsync.xml b/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.Tests/BaselineTest/TestBaseline/TraceWriterBaselineTests.ScenariosAsync.xml index 92d4a7344c..eecc33b72f 100644 --- a/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.Tests/BaselineTest/TestBaseline/TraceWriterBaselineTests.ScenariosAsync.xml +++ b/Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.Tests/BaselineTest/TestBaseline/TraceWriterBaselineTests.ScenariosAsync.xml @@ -26,108 +26,108 @@ @@ -34,7 +34,7 @@ Status Code: 0/Unknown - Response Time: 12:00:00:000 + Response Time: 00:00:00:000 Request Charge: 0 Request URI: Session Tokens: / @@ -97,7 +97,7 @@ @@ -484,12 +484,12 @@ ┌────────────────┬──────────────┬──────────────────────────────────────────────────┐ │Start Time (utc)│End Time (utc)│Endpoint │ ├────────────────┼──────────────┼──────────────────────────────────────────────────┤ - │ 12:00:00:000│ NO END TIME│ │ - │ 12:00:00:000│ NO END TIME│ │ + │ 00:00:00:000│ NO END TIME│ │ + │ 00:00:00:000│ NO END TIME│ │ └────────────────┴──────────────┴──────────────────────────────────────────────────┘ Store Response Statistics {space}Start Time Not Found - End Time: 12:00:00:000 + End Time: 00:00:00:000 Resource Type: Database Operation Type: Create Store Result @@ -518,7 +518,7 @@ "RegionsContacted": 1 }, "name": "Trace For Baseline Testing", - "start time": "12:00:00:000", + "start time": "00:00:00:000", "duration in milliseconds": 0, "data": { "Client Side Request Stats Default": { @@ -662,11 +662,11 @@