示例#1
0
        private RequestAnalyzeModel CalculateNodeTimeSteps(DateTime from, TimeSpan span, IEnumerable <RequestAnalyzeModel> requests)
        {
            DateTime            toTime = from + span;
            RequestAnalyzeModel result = new RequestAnalyzeModel();
            var requestsInTime         = requests.Where(x => x.FromTime >= from && x.ToTime <= toTime).ToList();

            result.FromTime        = from;
            result.ToTime          = toTime;
            result.Request100Count = requestsInTime.Sum(x => x.Request100Count);
            result.Request200Count = requestsInTime.Sum(x => x.Request200Count);
            result.Request300Count = requestsInTime.Sum(x => x.Request300Count);
            result.Request400Count = requestsInTime.Sum(x => x.Request400Count);
            result.Request500Count = requestsInTime.Sum(x => x.Request500Count);
            result.Request900Count = requestsInTime.Sum(x => x.Request900Count);
            result.RequestCount    = requestsInTime.Sum(x => x.RequestCount);
            result.SlowestRequests = requestsInTime.SelectMany(x => x.SlowestRequests).OrderByDescending(x => x.End - x.Start).Take(10).ToList();
            result.ErrorRequests   = requestsInTime.SelectMany(x => x.ErrorRequests).Take(5).ToList();
            return(result);
        }
示例#2
0
        private RequestAnalyzeModel CalculateLeaveTimeSteps(DateTime from, TimeSpan span, List <WebRequest> webRequests)
        {
            DateTime            toTime         = from + span;
            var                 requestsInTime = webRequests.Where(x => x.Start >= from && x.Start <= toTime);
            RequestAnalyzeModel result         = new RequestAnalyzeModel
            {
                FromTime        = @from,
                ToTime          = toTime,
                Request100Count = requestsInTime.Count(x => x.StatusCode >= 0 && x.StatusCode <= 199),
                Request200Count = requestsInTime.Count(x => x.StatusCode >= 200 && x.StatusCode <= 299),
                Request300Count = requestsInTime.Count(x => x.StatusCode >= 300 && x.StatusCode <= 399),
                Request400Count = requestsInTime.Count(x => x.StatusCode >= 400 && x.StatusCode <= 499),
                Request500Count = requestsInTime.Count(x => x.StatusCode >= 500 && x.StatusCode <= 599),
                Request900Count = requestsInTime.Count(x => x.StatusCode >= 600),
                RequestCount    = requestsInTime.Count(),
                ErrorRequests   = requestsInTime.Where(x => !x.IsStatusCodeSucceded).Take(10).ToList(),
                SlowestRequests = requestsInTime.OrderByDescending(x => x.End - x.Start).Take(10).ToList(),
            };

            return(result);
        }