Exemple #1
0
        public async Task <List <MetricResultViewModel> > GetErrorsResultsRuntime()
        {
            var from = DateTime.Now.AddDays(-1);
            var to   = DateTime.Now;
            List <List <MetricResultViewModel> > metricResultViewModelsAll = new List <List <MetricResultViewModel> >();

            using (FlashTunaDbContext db = new FlashTunaDbContext())
            {
                var globalGroupedMetricResults = await db.ErrorResults.Where(o =>
                                                                             (o.TimePoint >= from) ||
                                                                             (o.TimePoint <= to))
                                                 .ToListAsync();

                List <MetricResultViewModel> metricResultViewModels = new List <MetricResultViewModel>();
                foreach (var groupedMetricResult in globalGroupedMetricResults)
                {
                    var metricResult = new MetricResultViewModel()
                    {
                        ClassName  = groupedMetricResult.ClassName,
                        StartPoint = groupedMetricResult.TimePoint,
                        EndPoint   = groupedMetricResult.TimePoint,
                        MethodName = groupedMetricResult.MethodName,
                        Tag        = groupedMetricResult.Tag
                    };
                    metricResultViewModels.Add(metricResult);
                }
                return(metricResultViewModels);
            }
        }
Exemple #2
0
        public async Task <int> AnalyzeProblemsCount()
        {
            var from = DateTime.Now.AddDays(-1);
            var to   = DateTime.Now;
            List <List <MetricResultViewModel> > metricResultViewModelsAll = new List <List <MetricResultViewModel> >();

            using (FlashTunaDbContext db = new FlashTunaDbContext())
            {
                var globalGroupedMetricResults = await db.OperationMetricResults.Where(o =>
                                                                                       (o.MetricResultStatus == (int)Common.Metric.MetricResultStatus.Started && o.TimePoint >= from) ||
                                                                                       (o.MetricResultStatus == (int)Common.Metric.MetricResultStatus.Stopped && o.TimePoint <= to))
                                                 .GroupBy(x => x.MethodName)
                                                 .ToListAsync();

                foreach (var methodGroupedMetricResult in globalGroupedMetricResults)
                {
                    List <MetricResultViewModel> metricResultViewModels = new List <MetricResultViewModel>();
                    foreach (var groupedMetricResult in methodGroupedMetricResult.GroupBy(x => x.CallId))
                    {
                        var start = groupedMetricResult.OrderBy(x => x.MetricResultStatus).First();
                        var end   = groupedMetricResult.OrderBy(x => x.MetricResultStatus).Last();
                        if (start == end)
                        {
                            continue;
                        }
                        var metricResult = new MetricResultViewModel()
                        {
                            ClassName    = start.ClassName,
                            StartPoint   = start.TimePoint,
                            EndPoint     = end.TimePoint,
                            Id           = start.CallId,
                            MethodName   = start.MethodName,
                            Milliseconds = (end.TimePoint.TimeOfDay - start.TimePoint.TimeOfDay).Milliseconds,
                            ModuleName   = start.ModuleName,
                            Tag          = start.Tag
                        };
                        metricResultViewModels.Add(metricResult);
                    }

                    metricResultViewModelsAll.Add(
                        metricResultViewModels.OrderBy(x => x.StartPoint).ToList()
                        );
                }
            }
            int problemsCount = 0;

            foreach (var result in metricResultViewModelsAll)
            {
                var timings       = result.Select(x => x.Milliseconds).OrderBy(x => x).ToArray();
                var isProblematic = chechMethodProblem(timings);
                if (isProblematic)
                {
                    problemsCount++;
                }
            }
            return(problemsCount);
        }
Exemple #3
0
        public async Task <List <List <MetricResultViewModel> > > GetResultsRuntime()
        {
            var from = DateTime.Now.AddDays(-1);
            var to   = DateTime.Now;
            List <List <MetricResultViewModel> > metricResultViewModelsAll = new List <List <MetricResultViewModel> >();

            using (FlashTunaDbContext db = new FlashTunaDbContext())
            {
                var globalGroupedMetricResults = await db.OperationMetricResults.Where(o =>
                                                                                       (o.MetricResultStatus == (int)Common.Metric.MetricResultStatus.Started && o.TimePoint >= from) ||
                                                                                       (o.MetricResultStatus == (int)Common.Metric.MetricResultStatus.Stopped && o.TimePoint <= to))
                                                 .GroupBy(x => x.MethodName)
                                                 .ToListAsync();

                foreach (var methodGroupedMetricResult in globalGroupedMetricResults)
                {
                    List <MetricResultViewModel> metricResultViewModels = new List <MetricResultViewModel>();
                    foreach (var groupedMetricResult in methodGroupedMetricResult.GroupBy(x => x.CallId))
                    {
                        var start = groupedMetricResult.OrderBy(x => x.MetricResultStatus).First();
                        var end   = groupedMetricResult.OrderBy(x => x.MetricResultStatus).Last();
                        if (start == end)
                        {
                            continue;
                        }
                        var metricResult = new MetricResultViewModel()
                        {
                            ClassName    = start.ClassName,
                            StartPoint   = start.TimePoint,
                            EndPoint     = end.TimePoint,
                            Id           = start.CallId,
                            MethodName   = start.Tag != "Operation"? start.Tag + start.MethodName: start.MethodName,
                            Milliseconds = (end.TimePoint.TimeOfDay - start.TimePoint.TimeOfDay).Milliseconds,
                            ModuleName   = start.ModuleName,
                            Tag          = start.Tag
                        };
                        metricResultViewModels.Add(metricResult);
                    }

                    metricResultViewModelsAll.Add(
                        metricResultViewModels.OrderBy(x => x.StartPoint).ToList()
                        );
                }
            }
            return(metricResultViewModelsAll);
        }
Exemple #4
0
        public async Task <List <MetricResultViewModel> > GetResultsByPeriod(DateTime from, DateTime to, string methodName)
        {
            List <MetricResultViewModel> metricResultViewModels = new List <MetricResultViewModel>();

            using (FlashTunaDbContext db = new FlashTunaDbContext())
            {
                var groupedMetricsResults = await db.OperationMetricResults
                                            .Where(o =>
                                                   o.MethodName == methodName &&
                                                   ((o.MetricResultStatus == (int)Common.Metric.MetricResultStatus.Started && o.TimePoint >= from) ||
                                                    (o.MetricResultStatus == (int)Common.Metric.MetricResultStatus.Stopped && o.TimePoint <= to)))
                                            .GroupBy(x => x.CallId)
                                            .ToListAsync();

                foreach (var groupedMetricResult in groupedMetricsResults)
                {
                    var start = groupedMetricResult.OrderBy(x => x.MetricResultStatus).First();
                    var end   = groupedMetricResult.OrderBy(x => x.MetricResultStatus).Last();
                    if (start == end)
                    {
                        continue;
                    }
                    var metricResult = new MetricResultViewModel()
                    {
                        ClassName    = start.ClassName,
                        StartPoint   = start.TimePoint,
                        EndPoint     = end.TimePoint,
                        Id           = start.CallId,
                        MethodName   = start.MethodName,
                        Milliseconds = (end.TimePoint.TimeOfDay - start.TimePoint.TimeOfDay).Milliseconds,
                        ModuleName   = start.ModuleName,
                        Tag          = start.Tag
                    };
                    metricResultViewModels.Add(metricResult);
                }
            }
            return(metricResultViewModels.OrderBy(x => x.StartPoint).ToList());
        }