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); }
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); }
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)); }