コード例 #1
0
        public ActionResult CpuUsage()
        {
            string[] blobNames = new string[1];
            blobNames[0] = "nuget-prod-0-search" + @"\Processor(_Total)\% Processor Time" + string.Format("{0:MMdd}", DateTimeUtility.GetPacificTimeNow());

            return(PartialView("~/Views/Shared/PartialChart.cshtml", ChartingUtilities.GetLineChartFromBlobName(blobNames, "CpuUsagetoday", 24 * 4, 800)));
        }
コード例 #2
0
        public ActionResult RestoreTrend()
        {
            int    hour     = 30;
            string blobName = "Restore" + hour + "Day";

            return(PartialView("~/Views/Shared/PartialChart.cshtml", ChartingUtilities.GetLineChartFromBlobName(blobName, "Restore_Trend_For_Last_" + hour + "_Day", 24, 700)));
        }
コード例 #3
0
        public ActionResult MemUsage()
        {
            string[] blobNames = new string[1];
            blobNames[0] = "nuget-prod-0-search" + @"\Memory\Available MBytes" + string.Format("{0:MMdd}", DateTimeUtility.GetPacificTimeNow());

            return(PartialView("~/Views/Shared/PartialChart.cshtml", ChartingUtilities.GetLineChartFromBlobName(blobNames, "Memory_Usage_todayInMB", 24 * 4, 800)));
        }
コード例 #4
0
ファイル: ChartUtils.cs プロジェクト: smarza/rbk-api-modules
        internal static async Task<List<LineChartSeries>> BuildChartData(IDiagnosticsModuleStore context, DateTime from, DateTime to, Func<DiagnosticsEntry, string> propertyFilter,
                Func<DiagnosticsEntry, string> nameFunction)
        {
            var results = new List<LineChartSeries>();

            var data = await context.FilterAsync(from, to, null, null, null, null, null, null, null, null, null, null, null, null);

            var groupedSeries = data.GroupBy(propertyFilter).ToList();

            foreach (var seriesData in groupedSeries)
            {
                var series = new LineChartSeries(nameFunction(seriesData.First()));

                foreach (var date in ChartingUtilities.BuildLineChartAxis(from, to))
                {
                    series.Data.Add(date);
                }

                var groupedData = seriesData.GroupBy(x => x.Timestamp.Date).ToList();

                foreach (var itemData in groupedData)
                {
                    var date = itemData.Key;
                    var errors = itemData.Count();

                    var point = series.Data.First(x => x.Date == date);

                    point.Value = errors;
                }

                results.Add(series);
            }

            return results;
        }
コード例 #5
0
 public ActionResult DBConnectionsThisWeek()
 {
     string[] blobNames = new string[8];
     for (int i = 0; i < 8; i++)
     {
         blobNames[i] = "DBConnections" + string.Format("{0:MMdd}", DateTimeUtility.GetPacificTimeNow().AddDays(-i));
     }
     return(PartialView("~/Views/Shared/PartialChart.cshtml", ChartingUtilities.GetLineChartFromBlobName(blobNames, "DBConnections", 50, 600)));
 }
コード例 #6
0
 public ActionResult UsersThiSWeek()
 {
     string[] blobNames = new string[4];
     for (int i = 0; i < 4; i++)
     {
         blobNames[i] = "Users" + string.Format("{0:MMdd}", DateTimeUtility.GetPacificTimeNow().AddDays(-i)) + "HourlyReport";
     }
     return(PartialView("~/Views/Shared/PartialChart.cshtml", ChartingUtilities.GetLineChartFromBlobName(blobNames, "UsersPerHour", 24, 800)));
 }
コード例 #7
0
 public ActionResult PackageRestoreThisWeek()
 {
     string[] blobNames = new string[8];
     for (int i = 0; i < 8; i++)
     {
         blobNames[i] = "package.restore.download" + string.Format("{0:MMdd}", DateTimeUtility.GetPacificTimeNow().AddDays(-i)) + "DetailedReport";
     }
     return(PartialView("~/Views/Shared/PartialChart.cshtml", ChartingUtilities.GetLineChartFromBlobName(blobNames, "PackageRestoreThisWeek", 24, 800)));
 }
コード例 #8
0
        public ActionResult LatencyReport()
        {
            string today = String.Format("{0:yyyy-MM-dd}", DateTimeUtility.GetPacificTimeNow());

            string[] blobNames = new string[3];
            blobNames[0] = "UploadPackageTimeElapsed" + today;
            blobNames[1] = "SearchPackageTimeElapsed" + today;
            blobNames[2] = "DownloadPackageTimeElapsed" + today;
            return(PartialView("~/Views/Shared/PartialChart.cshtml", ChartingUtilities.GetLineChartFromBlobName(blobNames, "LatencyInMilliseconds", 3, 800)));
        }
コード例 #9
0
        public ActionResult OperationTrend()
        {
            int hour = 30;

            string[] Operation = new JavaScriptSerializer().Deserialize <string[]>(BlobStorageService.Load("OperationType.json"));

            List <string> blobNames = new List <string>();

            foreach (string opt in Operation)
            {
                blobNames.Add(opt + hour + "Day");
            }
            return(PartialView("~/Views/Shared/PartialChart.cshtml", ChartingUtilities.GetLineChartFromBlobName(blobNames.ToArray(), "Operations_Trend_For_Last_" + hour + "_Day", 24, 700)));
        }
コード例 #10
0
        public ActionResult AverageTimeTakenInMsTrendToday()
        {
            List <DotNet.Highcharts.Options.Series> seriesSet = new List <DotNet.Highcharts.Options.Series>();
            List <string> value = new List <string>();
            Dictionary <string, string> dict = BlobStorageService.GetDictFromBlob("IISRequestDetails" + String.Format("{0:MMdd}", DateTime.Now.AddDays(-1)) + ".json");

            if (dict != null)
            {
                List <IISRequestDetails>            requestDetails = new List <IISRequestDetails>();
                Dictionary <string, List <object> > request        = new Dictionary <string, List <object> >();
                foreach (KeyValuePair <string, string> keyValuePair in dict)
                {
                    value.Add(keyValuePair.Key.Substring(0, 2));
                    requestDetails = new JavaScriptSerializer().Deserialize <List <IISRequestDetails> >(keyValuePair.Value);

                    foreach (IISRequestDetails scenarios in requestDetails)
                    {
                        if (scenarios.ScenarioName.Equals("Over all requests"))
                        {
                            continue;
                        }
                        if (request.ContainsKey(scenarios.ScenarioName))
                        {
                            request[scenarios.ScenarioName].Add(scenarios.AvgTimeTakenInMilliSeconds);
                        }
                        else
                        {
                            List <object> Yvalue = new List <object>();
                            Yvalue.Add(scenarios.AvgTimeTakenInMilliSeconds);
                            request.Add(scenarios.ScenarioName, Yvalue);
                        }
                    }
                }

                foreach (KeyValuePair <string, List <object> > each in request)
                {
                    seriesSet.Add(new DotNet.Highcharts.Options.Series
                    {
                        Data = new Data(each.Value.ToArray()),
                        Name = each.Key.Replace(" ", "_")
                    });
                }
            }
            DotNet.Highcharts.Highcharts chart = ChartingUtilities.GetLineChart(seriesSet, value, "TodayAvgTimeInMsTrend", 500);
            return(PartialView("~/Views/Shared/PartialChart.cshtml", chart));
        }
コード例 #11
0
            protected override async Task <object> ExecuteAsync(Command request)
            {
                var data = await _context.FilterAsync(request.DateFrom, request.DateTo, null, null, null, null, null, null, null, null, null, null, null, null);

                var groupedData = data.GroupBy(x => x.Timestamp.Date).ToList();

                var chartData = ChartingUtilities.BuildLineChartAxis(request.DateFrom, request.DateTo);

                foreach (var itemData in groupedData)
                {
                    var date   = itemData.Key;
                    var errors = itemData.Count();

                    var point = chartData.First(x => x.Date == date);

                    point.Value = errors;
                }

                return(chartData);
            }
コード例 #12
0
        public ActionResult ThisWeek()
        {
            //Returns the chart for Average response for the last week
            string[] checkNames = new string[] { "feed.raw.packages.list", "package.restore.download", "package.restore.lookup", "feed.top.30.by.downloads" };
            List <DotNet.Highcharts.Options.Series> seriesSet = new List <DotNet.Highcharts.Options.Series>();
            List <string> xValues = new List <string>();
            List <object> yValues = new List <object>();

            foreach (string check in checkNames)
            {
                //Get the response values from pre-created blobs for each check.
                BlobStorageService.GetJsonDataFromBlob(check + "WeeklyReport.json", out xValues, out yValues);
                seriesSet.Add(new DotNet.Highcharts.Options.Series
                {
                    Data = new Data(yValues.ToArray()),
                    Name = check
                });
            }
            DotNet.Highcharts.Highcharts chart = ChartingUtilities.GetLineChart(seriesSet, xValues, "AvgResponseTime", 600);
            return(PartialView("~/Views/Shared/PartialChart.cshtml", chart));
        }
コード例 #13
0
        public ActionResult AverageLatencyTrendThisWeek()
        {
            List <string> value = new List <string>();
            Dictionary <string, List <object> >     time      = new Dictionary <string, List <object> >();
            List <DotNet.Highcharts.Options.Series> seriesSet = new List <DotNet.Highcharts.Options.Series>();
            DateTime start = DateTimeUtility.GetPacificTimeNow().AddDays(-8);

            for (int i = 0; i < 8; i++)
            {
                string date = string.Format("{0:yyyy-MM-dd}", start.AddDays(i));
                List <Tuple <string, long, long, long> > scenarios = GetLatencyData(date);
                value.Add(string.Format("{0:yyyy-MM-dd}", start.AddDays(i)));
                for (int j = 0; j < scenarios.Count; j++)
                {
                    if (time.ContainsKey(scenarios[j].Item1))
                    {
                        time[scenarios[j].Item1].Add(scenarios[j].Item2.ToString());
                    }

                    else
                    {
                        List <object> Yvalue = new List <object>();
                        Yvalue.Add(scenarios[j].Item2.ToString());
                        time.Add(scenarios[j].Item1, Yvalue);
                    }
                }
            }

            foreach (KeyValuePair <string, List <object> > each in time)
            {
                seriesSet.Add(new DotNet.Highcharts.Options.Series
                {
                    Data = new Data(each.Value.ToArray()),
                    Name = each.Key.Replace(" ", "_")
                });
            }

            DotNet.Highcharts.Highcharts chart = ChartingUtilities.GetLineChart(seriesSet, value, "WeeklyAvgLatencyTrend", 500);
            return(PartialView("~/Views/Shared/PartialChart.cshtml", chart));
        }
コード例 #14
0
            protected override async Task <object> ExecuteAsync(Command request)
            {
                var data = await _context.FilterAsync(request.DateFrom, request.DateTo, null, null, null, null, null,
                                                      null, null, null, 0, null);

                var groupedData = data.GroupBy(x => x.Timestamp.Date).ToList();

                var chartData = ChartingUtilities.BuildLineChartAxis(request.DateFrom, request.DateTo);

                foreach (var itemData in groupedData)
                {
                    var date      = itemData.Key;
                    var totalSize = itemData.Sum(x => x.RequestSize);

                    var point = chartData.First(x => x.Date == date);

                    // TODO: passar a unidade como configuração da lib
                    point.Value = totalSize / 1024;
                }

                return(chartData);
            }
コード例 #15
0
 public ActionResult ResponseTimeOverview()
 {
     string[] blobNames = new string[] { "feed.raw.packages.listHourlyReport", "package.restore.downloadHourlyReport", "package.restore.lookupHourlyReport", "feed.top.30.by.downloadsHourlyReport", "packages.page.searchHourlyReport" };
     return(PartialView("~/Views/Shared/PartialChart.cshtml", ChartingUtilities.GetLineChartFromBlobName(blobNames, "PingdomResponsesInMillSec")));
 }
コード例 #16
0
 public ActionResult ErrorRate()
 {
     return(PartialView("~/Views/Shared/PartialChart.cshtml", ChartingUtilities.GetLineChartFromBlobName("ErrorRate" + string.Format("{0:MMdd}", DateTimeUtility.GetPacificTimeNow()), "ErrorsPerHour")));
 }
コード例 #17
0
 public ActionResult Throughput()
 {
     return(PartialView("~/Views/Shared/PartialChart.cshtml", ChartingUtilities.GetLineChartFromBlobName("IISRequests" + string.Format("{0:MMdd}", DateTimeUtility.GetPacificTimeNow()), "RequestsPerHour")));
 }
コード例 #18
0
 public ActionResult DBConnections()
 {
     return(PartialView("~/Views/Shared/PartialChart.cshtml", ChartingUtilities.GetLineChartFromBlobName("DBConnections" + string.Format("{0:MMdd}", DateTimeUtility.GetPacificTimeNow()), "DBConnections", 12)));
 }