Esempio n. 1
0
        public void Process(CombinedWorkerThreadResult wtResult)
        {
            Seconds     = wtResult.Seconds;
            StatusCodes = wtResult.StatusCodes;
            Exceptions  = wtResult.Exceptions.Values.ToList();
            var items = wtResult.Seconds.Select(r => r.Value).DefaultIfEmpty(new Second()).ToList();

            Count             = items.Sum(s => s.Count);
            Errors            = items.Sum(s => s.Errors);
            RequestsPerSecond = Count / (Elapsed.TotalMilliseconds / 1000);
            BytesPrSecond     = items.Sum(s => s.Bytes) / (Elapsed.TotalMilliseconds / 1000);

            var responseTimes = GetResponseTimes(wtResult.ResponseTimes);

            if (!responseTimes.Any())
            {
                return;
            }

            Median    = responseTimes.GetMedian();
            StdDev    = responseTimes.GetStdDev();
            Min       = responseTimes.First();
            Max       = responseTimes.Last();
            P99       = responseTimes[(int)(responseTimes.Length * 0.99)];
            P95       = responseTimes[(int)(responseTimes.Length * 0.95)];
            P50       = responseTimes[(int)(responseTimes.Length / 2)];
            Histogram = GenerateHistogram(responseTimes);
        }
Esempio n. 2
0
        internal void Process(CombinedWorkerThreadResult wtResult)
        {
            Seconds = wtResult.Seconds;
            var items = wtResult.Seconds.Select(r => r.Value).DefaultIfEmpty(new Second(0)).ToList();

            Count             = items.Sum(s => s.Count);
            RequestsPerSecond = Count / (Elapsed.TotalMilliseconds / 1000);
            BytesPrSecond     = items.Sum(s => s.Bytes) / (Elapsed.TotalMilliseconds / 1000);

            foreach (var statusCode in items.SelectMany(s => s.StatusCodes))
            {
                if (StatusCodes.ContainsKey(statusCode.Key))
                {
                    StatusCodes[statusCode.Key] += statusCode.Value;
                }
                else
                {
                    StatusCodes.Add(statusCode.Key, statusCode.Value);
                }
            }

            foreach (var exception in items.SelectMany(s => s.Exceptions))
            {
                if (Exceptions.ContainsKey(exception.Key))
                {
                    Exceptions[exception.Key] += exception.Value;
                }
                else
                {
                    Exceptions.Add(exception.Key, exception.Value);
                }
            }

            Errors = StatusCodes.Where(s => s.Key >= 400).Sum(s => s.Value) + Exceptions.Sum(e => e.Value);

            var responseTimes = GetResponseTimes(wtResult.ResponseTimes);

            if (!responseTimes.Any())
            {
                return;
            }

            Median    = responseTimes.GetMedian();
            StdDev    = responseTimes.GetStdDev();
            Min       = responseTimes.First();
            Max       = responseTimes.Last();
            Histogram = GenerateHistogram(responseTimes);
        }
Esempio n. 3
0
        internal void Process(CombinedWorkerThreadResult wtResult)
        {
            Seconds = wtResult.Seconds;
            var items = wtResult.Seconds.Select(r => r.Value).DefaultIfEmpty(new Second(0)).ToList();
            Count = items.Sum(s => s.Count);
            RequestsPerSecond = Count / (Elapsed.TotalMilliseconds / 1000);
            BytesPrSecond = items.Sum(s => s.Bytes) / (Elapsed.TotalMilliseconds / 1000);

            foreach (var statusCode in items.SelectMany(s => s.StatusCodes))
            {
                if (StatusCodes.ContainsKey(statusCode.Key))
                    StatusCodes[statusCode.Key] += statusCode.Value;
                else
                    StatusCodes.Add(statusCode.Key, statusCode.Value);
            }

            foreach (var exception in items.SelectMany(s => s.Exceptions))
            {
                if (Exceptions.ContainsKey(exception.Key))
                    Exceptions[exception.Key] += exception.Value;
                else
                    Exceptions.Add(exception.Key, exception.Value);
            }

            Errors = StatusCodes.Where(s => s.Key >= 400).Sum(s => s.Value) + Exceptions.Sum(e => e.Value);

            var responseTimes = GetResponseTimes(wtResult.ResponseTimes);
            if (!responseTimes.Any())
                return;

            // Median = responseTimes.GetMedian();
            //  StdDev = responseTimes.GetStdDev();
            Min = responseTimes.First();
            Max = responseTimes.Last();
            Histogram = GenerateHistogram(responseTimes);
        }