Example #1
0
        KPIList GenerateKPIListFromStatsXml(XmlDocument statsXml, string appName, string serverName)
        {
            KPIList kpiList = new KPIList(appName, serverName);

            if (statsXml != null)
            {
                string currentHour = statsXml.SelectSingleNode("//STATUS-REPORT/STATISTICS/CURRENTDATE/DATE/@HOURS").InnerText;
                XmlNode statisticsDataNode = statsXml.SelectSingleNode("//STATUS-REPORT/STATISTICS/STATISTICSDATA[@INTERVALSTARTTIME='" + currentHour + ":00']");


                kpiList.ListOfKPIs.Add(ExtractStatsValue(statisticsDataNode, "AVERAGEREQUESTTIME", "AverageRequestTime"));
                kpiList.ListOfKPIs.Add(ExtractStatsValue(statisticsDataNode, "SERVERBUSYCOUNT", "ServerTooBusyCount"));
                kpiList.ListOfKPIs.Add(ExtractStatsValue(statisticsDataNode, "RAWREQUESTS", "RawRequests"));
                kpiList.ListOfKPIs.Add(CreateBadRequestKPI(false));
                
            }
            else
            {
                kpiList.ListOfKPIs.Add(ExtractStatsValue(null, "AVERAGEREQUESTTIME", "AverageRequestTime"));
                kpiList.ListOfKPIs.Add(ExtractStatsValue(null, "SERVERBUSYCOUNT", "ServerTooBusyCount"));
                kpiList.ListOfKPIs.Add(ExtractStatsValue(null, "RAWREQUESTS", "RawRequests"));
                kpiList.ListOfKPIs.Add(CreateBadRequestKPI(true));
                
            }

            kpiList.ListOfKPIs.Add(CreateServerTooBusyPctKpi(kpiList));

            return kpiList;
        }
Example #2
0
        KPIList GenerateKPIListFromStatsResults(string[] statsResults, string appName, string serverName, string logFolder)
        {
            KPIList kpiList = new KPIList(appName, serverName);

            kpiList.ListOfKPIs.Add(ExtractStatsValue(statsResults[0]));
            kpiList.ListOfKPIs.Add(ExtractStatsValue(statsResults[1]));

            //WriteKPIsToLogFile(kpiList, logFolder); //Uncomment when Debugging

            return kpiList;
        }
Example #3
0
        private KPI CreateServerTooBusyPctKpi(KPIList kpiList)
        {
            KPI stbPct = new KPI();
            stbPct.KPIName = "ServerTooBusyPct";
            stbPct.Dt = DateTime.UtcNow;

            KPI stb = kpiList.FindKpiByName("ServerTooBusyCount");
            KPI rr = kpiList.FindKpiByName("RawRequests");

            if (rr.KPIValue > 0)
            {
                stbPct.KPIValue = (stb.KPIValue * 100) / rr.KPIValue;
            }
            else
            {
                stbPct.KPIValue = 0;
            }

            return stbPct;
        }
Example #4
0
        void WriteKPIsToLogFile(KPIList kpis, string logFolder)
        {
            DateTime n = DateTime.Now;

            string date = string.Format("{0}-{1}-{2}-{3}-{4}", n.Year, n.Month, n.Hour, n.Minute, n.Second);
            string fileName = string.Format(@"{0}\{1}-{2}.txt", logFolder, kpis.ServerName, date);

            StreamWriter sw = new StreamWriter(fileName);

            foreach (KPI k in kpis.ListOfKPIs)
            {
                sw.WriteLine(k.KPIName + " : " + k.KPIValue);
            }
            sw.Close();
        }