Beispiel #1
0
        private void TestMultipleViews_DifferentMeasures(IMeasure measure1, IMeasure measure2, double value1, double value2)
        {
            IView view1 = CreateCumulativeView(VIEW_NAME, measure1, DISTRIBUTION, new List <ITagKey>()
            {
                KEY
            });
            IView view2 =
                CreateCumulativeView(VIEW_NAME_2, measure2, DISTRIBUTION, new List <ITagKey>()
            {
                KEY
            });

            clock.Time = Timestamp.Create(1, 0);
            viewManager.RegisterView(view1);
            clock.Time = Timestamp.Create(2, 0);
            viewManager.RegisterView(view2);
            ITagContext tags       = tagger.EmptyBuilder.Put(KEY, VALUE).Build();
            IMeasureMap measureMap = statsRecorder.NewMeasureMap();

            PutToMeasureMap(measureMap, measure1, value1);
            PutToMeasureMap(measureMap, measure2, value2);
            measureMap.Record(tags);
            clock.Time = Timestamp.Create(3, 0);
            IViewData viewData1 = viewManager.GetView(VIEW_NAME);

            clock.Time = Timestamp.Create(4, 0);
            IViewData viewData2 = viewManager.GetView(VIEW_NAME_2);
            var       tv        = TagValues.Create(new List <ITagValue>()
            {
                VALUE
            });

            StatsTestUtil.AssertAggregationMapEquals(
                viewData1.AggregationMap,
                new Dictionary <TagValues, IAggregationData>()
            {
                { tv, StatsTestUtil.CreateAggregationData(DISTRIBUTION, measure1, value1) },
            },
                EPSILON);

            StatsTestUtil.AssertAggregationMapEquals(
                viewData2.AggregationMap,
                new Dictionary <TagValues, IAggregationData>()
            {
                { tv, StatsTestUtil.CreateAggregationData(DISTRIBUTION, measure2, value2) },
            },
                EPSILON);
        }
Beispiel #2
0
 private static IMeasureMap PutToMeasureMap(IMeasureMap measureMap, IMeasure measure, double value)
 {
     if (measure is MeasureDouble)
     {
         return(measureMap.Put((IMeasureDouble)measure, value));
     }
     else if (measure is MeasureLong)
     {
         return(measureMap.Put((IMeasureLong)measure, (long)Math.Round(value)));
     }
     else
     {
         // Future measures.
         throw new Exception();
     }
 }
        public void RecordTwice()
        {
            Stats.State = StatsCollectionState.ENABLED;

            IViewName viewName = CreateRandomViewName();

            IView view =
                View.Create(
                    viewName,
                    "description",
                    MEASURE_DOUBLE,
                    Sum.Create(),
                    new List <string>()
            {
                KEY
            });

            viewManager.RegisterView(view);
            IMeasureMap statsRecord = statsRecorder.NewMeasureMap().Put(MEASURE_DOUBLE, 1.0);

            statsRecord.Record(new SimpleTagContext(new DistributedContextEntry(KEY, VALUE)));
            statsRecord.Record(new SimpleTagContext(new DistributedContextEntry(KEY, VALUE_2)));
            IViewData viewData = viewManager.GetView(viewName);

            // There should be two entries.
            var tv = TagValues.Create(new List <string>()
            {
                VALUE
            });
            var tv2 = TagValues.Create(new List <string>()
            {
                VALUE_2
            });

            StatsTestUtil.AssertAggregationMapEquals(
                viewData.AggregationMap,
                new Dictionary <TagValues, IAggregationData>()
            {
                { tv, StatsTestUtil.CreateAggregationData(Sum.Create(), MEASURE_DOUBLE, 1.0) },
                { tv2, StatsTestUtil.CreateAggregationData(Sum.Create(), MEASURE_DOUBLE, 1.0) },
            },
                1e-6);
        }
Beispiel #4
0
        private void TestMultipleViews_DifferentMeasures(IMeasure measure1, IMeasure measure2, double value1, double value2)
        {
            IView view1 = CreateCumulativeView(CreateRandomViewName(), measure1, Distribution, new List <string>()
            {
                Key
            });
            IView view2 = CreateCumulativeView(CreateRandomViewName(), measure2, Distribution, new List <string>()
            {
                Key
            });

            viewManager.RegisterView(view1);
            viewManager.RegisterView(view2);
            ITagContext tags       = tagger.EmptyBuilder.Put(Key, Value).Build();
            IMeasureMap measureMap = statsRecorder.NewMeasureMap();

            PutToMeasureMap(measureMap, measure1, value1);
            PutToMeasureMap(measureMap, measure2, value2);
            measureMap.Record(tags);
            IViewData viewData1 = viewManager.GetView(view1.Name);
            IViewData viewData2 = viewManager.GetView(view2.Name);
            var       tv        = TagValues.Create(new List <string>()
            {
                Value
            });

            StatsTestUtil.AssertAggregationMapEquals(
                viewData1.AggregationMap,
                new Dictionary <TagValues, IAggregationData>()
            {
                { tv, StatsTestUtil.CreateAggregationData(Distribution, measure1, value1) },
            },
                Epsilon);

            StatsTestUtil.AssertAggregationMapEquals(
                viewData2.AggregationMap,
                new Dictionary <TagValues, IAggregationData>()
            {
                { tv, StatsTestUtil.CreateAggregationData(Distribution, measure2, value2) },
            },
                Epsilon);
        }
        public void RecordTwice()
        {
            IView view =
                View.Create(
                    VIEW_NAME,
                    "description",
                    MEASURE_DOUBLE,
                    Sum.Create(),
                    new List <ITagKey>()
            {
                KEY
            });

            viewManager.RegisterView(view);
            IMeasureMap statsRecord = statsRecorder.NewMeasureMap().Put(MEASURE_DOUBLE, 1.0);

            statsRecord.Record(new SimpleTagContext(Tag.Create(KEY, VALUE)));
            statsRecord.Record(new SimpleTagContext(Tag.Create(KEY, VALUE_2)));
            IViewData viewData = viewManager.GetView(VIEW_NAME);

            // There should be two entries.
            var tv = TagValues.Create(new List <ITagValue>()
            {
                VALUE
            });
            var tv2 = TagValues.Create(new List <ITagValue>()
            {
                VALUE_2
            });

            Dictionary <TagValues, IAggregationData> expected = new Dictionary <TagValues, IAggregationData>()
            {
                { tv, StatsTestUtil.CreateAggregationData(Sum.Create(), MEASURE_DOUBLE, 1.0) },
                { tv2, StatsTestUtil.CreateAggregationData(Sum.Create(), MEASURE_DOUBLE, 1.0) }
            };

            StatsTestUtil.AssertAggregationMapEquals(
                viewData.AggregationMap,
                expected,
                1e-6);
        }
        public void NoopStatsRecorder_Record_DisallowNullTagContext()
        {
            IMeasureMap measureMap = NoopStats.NoopStatsRecorder.NewMeasureMap();

            Assert.Throws <ArgumentNullException>(() => measureMap.Record(null));
        }