public void Main() { var statsComponent = new StatsComponent(); var viewManager = statsComponent.ViewManager; var statsRecorder = statsComponent.StatsRecorder; var tagsComponent = new TagsComponent(); var tagger = tagsComponent.Tagger; ITagKey FRONTEND_KEY = TagKey.Create("my.org/keys/frontend"); ITagKey FRONTEND_OS_KEY = TagKey.Create("my.org/keys/frontend/os"); ITagKey FRONTEND_OS_VERSION_KEY = TagKey.Create("my.org/keys/frontend/os/version"); IMeasureLong VIDEO_SIZE = MeasureLong.Create("my.org/measure/video_size", "size of processed videos", "MBy"); IViewName VIDEO_SIZE_BY_FRONTEND_VIEW_NAME = ViewName.Create("my.org/views/video_size_byfrontend"); IView VIDEO_SIZE_BY_FRONTEND_VIEW = View.Create( VIDEO_SIZE_BY_FRONTEND_VIEW_NAME, "processed video size over time", VIDEO_SIZE, Distribution.Create(BucketBoundaries.Create(new List <double>() { 0.0, 256.0, 65536.0 })), new List <ITagKey>() { FRONTEND_KEY }); IViewName VIDEO_SIZE_ALL_VIEW_NAME = ViewName.Create("my.org/views/video_size_all"); IView VIDEO_SIZE_VIEW_ALL = View.Create( VIDEO_SIZE_ALL_VIEW_NAME, "processed video size over time", VIDEO_SIZE, Distribution.Create(BucketBoundaries.Create(new List <double>() { 0.0, 256.0, 65536.0 })), new List <ITagKey>() { }); IViewName VIDEO_SIZE_TOTAL_VIEW_NAME = ViewName.Create("my.org/views/video_size_total"); IView VIDEO_SIZE_TOTAL = View.Create( VIDEO_SIZE_TOTAL_VIEW_NAME, "total video size over time", VIDEO_SIZE, Sum.Create(), new List <ITagKey>() { FRONTEND_KEY }); IViewName VIDEOS_PROCESSED_VIEW_NAME = ViewName.Create("my.org/views/videos_processed"); IView VIDEOS_PROCESSED = View.Create( VIDEOS_PROCESSED_VIEW_NAME, "total video processed", VIDEO_SIZE, Count.Create(), new List <ITagKey>() { FRONTEND_KEY }); viewManager.RegisterView(VIDEO_SIZE_VIEW_ALL); viewManager.RegisterView(VIDEO_SIZE_BY_FRONTEND_VIEW); viewManager.RegisterView(VIDEO_SIZE_TOTAL); viewManager.RegisterView(VIDEOS_PROCESSED); ITagContext context1 = tagger .EmptyBuilder .Put(FRONTEND_KEY, TagValue.Create("front1")) .Build(); ITagContext context2 = tagger .EmptyBuilder .Put(FRONTEND_KEY, TagValue.Create("front2")) .Build(); long sum = 0; for (int i = 0; i < 10; i++) { sum = sum + (25648 * i); if (i % 2 == 0) { statsRecorder.NewMeasureMap().Put(VIDEO_SIZE, 25648 * i).Record(context1); } else { statsRecorder.NewMeasureMap().Put(VIDEO_SIZE, 25648 * i).Record(context2); } } IViewData viewDataByFrontend = viewManager.GetView(VIDEO_SIZE_BY_FRONTEND_VIEW_NAME); var viewDataAggMap = viewDataByFrontend.AggregationMap.ToList(); output.WriteLine(viewDataByFrontend.ToString()); IViewData viewDataAll = viewManager.GetView(VIDEO_SIZE_ALL_VIEW_NAME); var viewDataAggMapAll = viewDataAll.AggregationMap.ToList(); output.WriteLine(viewDataAll.ToString()); IViewData viewData1 = viewManager.GetView(VIDEO_SIZE_TOTAL_VIEW_NAME); var viewData1AggMap = viewData1.AggregationMap.ToList(); output.WriteLine(viewData1.ToString()); IViewData viewData2 = viewManager.GetView(VIDEOS_PROCESSED_VIEW_NAME); var viewData2AggMap = viewData2.AggregationMap.ToList(); output.WriteLine(viewData2.ToString()); output.WriteLine(sum.ToString()); }
public void TestViewDataWithMultipleTagKeys() { ITagKey key1 = TagKey.Create("Key-1"); ITagKey key2 = TagKey.Create("Key-2"); viewManager.RegisterView( CreateCumulativeView(VIEW_NAME, MEASURE_DOUBLE, DISTRIBUTION, new List <ITagKey>() { key1, key2 })); statsRecorder .NewMeasureMap() .Put(MEASURE_DOUBLE, 1.1) .Record( tagger .EmptyBuilder .Put(key1, TagValue.Create("v1")) .Put(key2, TagValue.Create("v10")) .Build()); statsRecorder .NewMeasureMap() .Put(MEASURE_DOUBLE, 2.2) .Record( tagger .EmptyBuilder .Put(key1, TagValue.Create("v1")) .Put(key2, TagValue.Create("v20")) .Build()); statsRecorder .NewMeasureMap() .Put(MEASURE_DOUBLE, 3.3) .Record( tagger .EmptyBuilder .Put(key1, TagValue.Create("v2")) .Put(key2, TagValue.Create("v10")) .Build()); statsRecorder .NewMeasureMap() .Put(MEASURE_DOUBLE, 4.4) .Record( tagger .EmptyBuilder .Put(key1, TagValue.Create("v1")) .Put(key2, TagValue.Create("v10")) .Build()); IViewData viewData = viewManager.GetView(VIEW_NAME); var tv1 = TagValues.Create(new List <ITagValue>() { TagValue.Create("v1"), TagValue.Create("v10") }); var tv2 = TagValues.Create(new List <ITagValue>() { TagValue.Create("v1"), TagValue.Create("v20") }); var tv3 = TagValues.Create(new List <ITagValue>() { TagValue.Create("v2"), TagValue.Create("v10") }); StatsTestUtil.AssertAggregationMapEquals( viewData.AggregationMap, new Dictionary <TagValues, IAggregationData>() { { tv1, StatsTestUtil.CreateAggregationData(DISTRIBUTION, MEASURE_DOUBLE, 1.1, 4.4) }, { tv2, StatsTestUtil.CreateAggregationData(DISTRIBUTION, MEASURE_DOUBLE, 2.2) }, { tv3, StatsTestUtil.CreateAggregationData(DISTRIBUTION, MEASURE_DOUBLE, 3.3) } }, EPSILON); }
public void Main2() { var statsComponent = new StatsComponent(); var viewManager = statsComponent.ViewManager; var statsRecorder = statsComponent.StatsRecorder; var tagsComponent = new TagsComponent(); var tagger = tagsComponent.Tagger; ITagKey FRONTEND_KEY = TagKey.Create("my.org/keys/frontend"); ITagKey FRONTEND_OS_KEY = TagKey.Create("my.org/keys/frontend/os"); ITagKey FRONTEND_OS_VERSION_KEY = TagKey.Create("my.org/keys/frontend/os/version"); IMeasureLong VIDEO_SIZE = MeasureLong.Create("my.org/measure/video_size", "size of processed videos", "MBy"); IViewName VIDEO_SIZE_VIEW_NAME = ViewName.Create("my.org/views/video_size_byfrontend"); IView VIDEO_SIZE_VIEW = View.Create( VIDEO_SIZE_VIEW_NAME, "processed video size over time", VIDEO_SIZE, Distribution.Create(BucketBoundaries.Create(new List <double>() { 0.0, 256.0, 65536.0 })), new List <ITagKey>() { FRONTEND_KEY, FRONTEND_OS_KEY, FRONTEND_OS_VERSION_KEY }); viewManager.RegisterView(VIDEO_SIZE_VIEW); ITagContext context1 = tagger .EmptyBuilder .Put(FRONTEND_KEY, TagValue.Create("front1")) .Put(FRONTEND_OS_KEY, TagValue.Create("windows")) .Build(); ITagContext context2 = tagger .EmptyBuilder .Put(FRONTEND_KEY, TagValue.Create("front2")) .Put(FRONTEND_OS_VERSION_KEY, TagValue.Create("1.1.1")) .Build(); long sum = 0; for (int i = 0; i < 10; i++) { sum = sum + (25648 * i); if (i % 2 == 0) { statsRecorder.NewMeasureMap().Put(VIDEO_SIZE, 25648 * i).Record(context1); } else { statsRecorder.NewMeasureMap().Put(VIDEO_SIZE, 25648 * i).Record(context2); } } IViewData videoSizeView = viewManager.GetView(VIDEO_SIZE_VIEW_NAME); var viewDataAggMap = videoSizeView.AggregationMap.ToList(); var view = viewManager.AllExportedViews.ToList()[0]; for (int i = 0; i < view.Columns.Count; i++) { output.WriteLine(view.Columns[i] + "=" + GetTagValues(i, viewDataAggMap)); } var keys = new List <ITagValue>() { TagValue.Create("1.1.1") }; var results = videoSizeView.AggregationMap.Where((kvp) => { foreach (var key in keys) { if (!kvp.Key.Values.Contains(key)) { return(false); } } return(true); }); output.WriteLine(videoSizeView.ToString()); output.WriteLine(sum.ToString()); }
public abstract ITagContextBuilder Remove(ITagKey key);
public abstract ITagContextBuilder Put(ITagKey key, ITagValue value);
public static ITag Create(ITagKey key, ITagValue value) { return(new Tag(key, value)); }
internal Tag(ITagKey key, ITagValue value) { this.Key = key ?? throw new ArgumentNullException(nameof(key)); this.Value = value ?? throw new ArgumentNullException(nameof(value)); }