Exemple #1
0
            public void Visit(CpuHistoryTraceDatum cpuHistoryTraceDatum)
            {
                this.jsonWriter.WriteObjectStart();

                this.jsonWriter.WriteFieldName("CPU History");
                this.jsonWriter.WriteStringValue(cpuHistoryTraceDatum.Value.ToString());

                this.jsonWriter.WriteObjectEnd();
            }
                public void Visit(CpuHistoryTraceDatum cpuHistoryTraceDatum)
                {
                    StringBuilder stringBuilder = new StringBuilder();

                    stringBuilder.AppendLine(cpuHistoryTraceDatum.Value.ToString());

                    // TODO: Expose the raw data so we can custom format the string.

                    this.toStringValue = stringBuilder.ToString();
                }
Exemple #3
0
 public void Visit(CpuHistoryTraceDatum cpuHistoryTraceDatum)
 {
     if (this.jsonWriter is IJsonTextWriterExtensions jsonTextWriter)
     {
         jsonTextWriter.WriteRawJsonValue(Encoding.UTF8.GetBytes(cpuHistoryTraceDatum.Value.ToString()),
                                          isFieldName: false);
     }
     else
     {
         throw new NotImplementedException("Writing Raw Json directly to the buffer is currently only supported for text and not for binary, hybridrow");
     }
 }
 public void Visit(CpuHistoryTraceDatum cpuHistoryTraceDatum)
 {
     Debug.Fail("QueryStatisticsDatumVisitor Assert", "CpuHistoryTraceDatum is not supported");
 }
        public void TraceData()
        {
            List <Input> inputs = new List <Input>();

            int startLineNumber;
            int endLineNumber;

            //----------------------------------------------------------------
            //  Point Operation Statistics
            //----------------------------------------------------------------
            {
                startLineNumber = GetLineNumber();
                TraceForBaselineTesting rootTrace;
                using (rootTrace = TraceForBaselineTesting.GetRootTrace())
                {
                    PointOperationStatisticsTraceDatum datum = new PointOperationStatisticsTraceDatum(
                        activityId: Guid.Empty.ToString(),
                        responseTimeUtc: new DateTime(2020, 1, 2, 3, 4, 5, 6),
                        statusCode: System.Net.HttpStatusCode.OK,
                        subStatusCode: Documents.SubStatusCodes.WriteForbidden,
                        requestCharge: 4,
                        errorMessage: null,
                        method: HttpMethod.Post,
                        requestUri: "http://localhost.com",
                        requestSessionToken: nameof(PointOperationStatisticsTraceDatum.RequestSessionToken),
                        responseSessionToken: nameof(PointOperationStatisticsTraceDatum.ResponseSessionToken));
                    rootTrace.AddDatum("Point Operation Statistics", datum);
                }
                endLineNumber = GetLineNumber();

                inputs.Add(new Input("Point Operation Statistics", rootTrace, startLineNumber, endLineNumber));
            }
            //----------------------------------------------------------------

            //----------------------------------------------------------------
            //  Query Metrics
            //----------------------------------------------------------------
            {
                startLineNumber = GetLineNumber();
                TraceForBaselineTesting rootTrace;
                using (rootTrace = TraceForBaselineTesting.GetRootTrace())
                {
                    QueryMetricsTraceDatum datum = new QueryMetricsTraceDatum(
                        new QueryMetrics(
                            BackendMetricsTests.MockBackendMetrics,
                            IndexUtilizationInfoTests.MockIndexUtilizationInfo,
                            ClientSideMetricsTests.MockClientSideMetrics));
                    rootTrace.AddDatum("Query Metrics", datum);
                }
                endLineNumber = GetLineNumber();

                inputs.Add(new Input("Query Metrics", rootTrace, startLineNumber, endLineNumber));
            }
            //----------------------------------------------------------------

            //----------------------------------------------------------------
            //  Client Side Request Stats
            //----------------------------------------------------------------
            {
                startLineNumber = GetLineNumber();
                TraceForBaselineTesting rootTrace;
                using (rootTrace = TraceForBaselineTesting.GetRootTrace())
                {
                    ClientSideRequestStatisticsTraceDatum datum = new ClientSideRequestStatisticsTraceDatum(DateTime.MinValue);

                    Uri uri1 = new Uri("http://someUri1.com");
                    Uri uri2 = new Uri("http://someUri2.com");

                    datum.ContactedReplicas.Add(uri1);
                    datum.ContactedReplicas.Add(uri2);

                    ClientSideRequestStatisticsTraceDatum.AddressResolutionStatistics mockStatistics = new ClientSideRequestStatisticsTraceDatum.AddressResolutionStatistics(
                        DateTime.MinValue,
                        DateTime.MaxValue,
                        "http://localhost.com");
                    datum.EndpointToAddressResolutionStatistics["asdf"]  = mockStatistics;
                    datum.EndpointToAddressResolutionStatistics["asdf2"] = mockStatistics;

                    datum.FailedReplicas.Add(uri1);
                    datum.FailedReplicas.Add(uri2);

                    datum.RegionsContacted.Add(uri1);
                    datum.RegionsContacted.Add(uri2);

                    datum.RequestEndTimeUtc = DateTime.MaxValue;

                    StoreResponseStatistics storeResponseStatistics = new StoreResponseStatistics(
                        DateTime.MinValue,
                        DateTime.MaxValue,
                        new Documents.StoreResult(
                            storeResponse: new StoreResponse(),
                            exception: null,
                            partitionKeyRangeId: 42.ToString(),
                            lsn: 1337,
                            quorumAckedLsn: 23,
                            requestCharge: 3.14,
                            currentReplicaSetSize: 4,
                            currentWriteQuorum: 3,
                            isValid: true,
                            storePhysicalAddress: new Uri("http://storephysicaladdress.com"),
                            globalCommittedLSN: 1234,
                            numberOfReadRegions: 13,
                            itemLSN: 15,
                            sessionToken: new SimpleSessionToken(42),
                            usingLocalLSN: true,
                            activityId: Guid.Empty.ToString()),
                        ResourceType.Document,
                        OperationType.Query,
                        uri1);
                    datum.StoreResponseStatisticsList.Add(storeResponseStatistics);
                    rootTrace.AddDatum("Client Side Request Stats", datum);
                }
                endLineNumber = GetLineNumber();

                inputs.Add(new Input("Client Side Request Stats", rootTrace, startLineNumber, endLineNumber));
            }
            //----------------------------------------------------------------

            //----------------------------------------------------------------
            //  CPU History
            //----------------------------------------------------------------
            {
                startLineNumber = GetLineNumber();
                TraceForBaselineTesting rootTrace;
                using (rootTrace = TraceForBaselineTesting.GetRootTrace())
                {
                    CpuHistoryTraceDatum datum = new CpuHistoryTraceDatum(
                        new Documents.Rntbd.CpuLoadHistory(
                            new ReadOnlyCollection <Documents.Rntbd.CpuLoad>(
                                new List <Documents.Rntbd.CpuLoad>()
                    {
                        new Documents.Rntbd.CpuLoad(DateTime.MinValue, 42),
                        new Documents.Rntbd.CpuLoad(DateTime.MinValue, 23),
                    }),
                            monitoringInterval: TimeSpan.MaxValue));
                    rootTrace.AddDatum("CPU History", datum);
                }
                endLineNumber = GetLineNumber();

                inputs.Add(new Input("CPU History", rootTrace, startLineNumber, endLineNumber));
            }
            //----------------------------------------------------------------

            this.ExecuteTestSuite(inputs);
        }