Пример #1
0
        public void BuildTracingResult()
        {
            // arrange
            var            builder   = new ApolloTracingResultBuilder();
            DateTimeOffset startTime = new DateTime(
                636824022698524527,
                DateTimeKind.Utc);
            const long startTimestamp      = 1113752384890500;
            Path       rootPath            = Path.New("root").Append("field");
            var        rosolverStatisticsA = new ApolloTracingResolverRecord
            {
                Path           = rootPath.Append(0).Append("value").ToFieldPathArray(),
                ParentType     = "ParentTypeA",
                FieldName      = "FieldNameA",
                ReturnType     = "ReturnTypeA",
                StartTimestamp = 1113752444890200,
                EndTimestamp   = 1113752454811100
            };
            var rosolverStatisticsB = new ApolloTracingResolverRecord
            {
                Path           = rootPath.Append(1).Append("value").ToFieldPathArray(),
                ParentType     = "ParentTypeB",
                FieldName      = "FieldNameB",
                ReturnType     = "ReturnTypeB",
                StartTimestamp = 1113752464890200,
                EndTimestamp   = 1113752484850000
            };
            TimeSpan duration = TimeSpan.FromMilliseconds(122);

            builder.SetRequestStartTime(startTime, startTimestamp);
            builder.SetParsingResult(1113752394890300, 1113752402820700);
            builder.SetValidationResult(1113752404890400, 1113752434898800);
            builder.AddResolverResult(rosolverStatisticsA);
            builder.AddResolverResult(rosolverStatisticsB);
            builder.SetRequestDuration(duration);

            // act
            OrderedDictionary result = builder.Build();

            // assert
            result.Snapshot();
        }
Пример #2
0
        private OrderedDictionary[] BuildResolverResults()
        {
            ApolloTracingResolverRecord[] records =
                _resolverRecords.ToArray();
            var resolvers = new OrderedDictionary[records.Length];

            for (var i = 0; i < records.Length; i++)
            {
                ApolloTracingResolverRecord record =
                    records[i];

                resolvers[i] = new OrderedDictionary
                {
                    {
                        ApolloTracingResultKeys.Path,
                        record.Path
                    },
                    {
                        ApolloTracingResultKeys.ParentType,
                        record.ParentType
                    },
                    {
                        ApolloTracingResultKeys.FieldName,
                        record.FieldName
                    },
                    {
                        ApolloTracingResultKeys.ReturnType,
                        record.ReturnType
                    },
                    {
                        ApolloTracingResultKeys.StartOffset,
                        record.StartTimestamp - _startTimestamp
                    },
                    {
                        ApolloTracingResultKeys.Duration,
                        record.EndTimestamp - record.StartTimestamp
                    }
                };
            }

            return(resolvers);
        }
Пример #3
0
 public void AddResolverResult(
     ApolloTracingResolverRecord record)
 {
     _resolverRecords.Enqueue(record);
 }