コード例 #1
0
        public ActionResult TopNResources([FromQuery(Name = "n")] int topN,
                                          [DateTimeModelBinder(DateFormat = "yyyyMMddHHmm"), FromQuery(Name = "from")] DateTime?fromDate,
                                          [DateTimeModelBinder(DateFormat = "yyyyMMddHHmm"), FromQuery(Name = "to")] DateTime?toDate,
                                          [FromQuery] string[] endpoints,
                                          [FromQuery] TopNResourceType type)
        {
            if (!fromDate.HasValue)
            {
                return(BadRequest("The parameter 'from' is mandatory"));
            }
            if (!toDate.HasValue)
            {
                return(BadRequest("The parameter 'to' is mandatory"));
            }


            return(Ok(DataCollectorThread.Instance.GetTopNResource(topN, fromDate.Value, toDate.Value, endpoints, type)));
        }
コード例 #2
0
        public dynamic GetTopNResource(int topN, DateTime fromDate, DateTime toDate, string[] endpoints, TopNResourceType type)
        {
            if (_dbRunningValues == null)
            {
                return(null);
            }

            var baseQuery = BuildBaseQuery(fromDate, toDate, endpoints);

            switch (type)
            {
            case TopNResourceType.Executions:
                return(TopN.TotalExecutions(baseQuery, topN));

            case TopNResourceType.Duration:
                return(TopN.AvgDuration(baseQuery, topN));

            case TopNResourceType.NetworkServerTime:
                return(TopN.AvgNetworkServerTime(baseQuery, topN));

            case TopNResourceType.BytesReceived:
                return(TopN.AvgKBReceived(baseQuery, topN));

            case TopNResourceType.ExceptionCnt:
                return(TopN.TotalExceptionCnt(baseQuery, topN));

            case TopNResourceType.TimeoutCnt:
                return(TopN.TotalTimeouts(baseQuery, topN));

            case TopNResourceType.TotalsVitals:
                return(TotalOverPeriod.TotalVitals(baseQuery, fromDate, toDate));

            default:
                throw new Exception($"Type {type} not supported");
            }
        }