<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hello,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I created a script that monitors connection traffic on a server, called “aspnethealth”. Unfortunately, the graphs on the monitor are broken… I’ve attached a picture displaying this. My script is also attached, and also pasted below. (Also
here <a href="http://pastebin.com/Pdnq6AnA">http://pastebin.com/Pdnq6AnA</a>) I’ve been looking at the rrd and also
<a href="http://xymon.sourceforge.net/xymon/help/howtograph.html">http://xymon.sourceforge.net/xymon/help/howtograph.html</a> but am clueless as to what I need to do. I am a dummy when it comes to Linux. Any assistance with this would be much appreciated!<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:2.0pt;margin-right:0in;margin-bottom:2.0pt;margin-left:0in;text-autospace:none">
<span style="font-size:13.5pt;font-family:"Arial",sans-serif;color:#FF6600">Foster Patch</span><span style="color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:2.0pt;margin-right:0in;margin-bottom:2.0pt;margin-left:0in;text-autospace:none">
<span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:black">Web Server Technician</span><span style="color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:2.0pt;margin-right:0in;margin-bottom:2.0pt;margin-left:0in;text-autospace:none">
<span style="font-size:13.5pt;font-family:"Arial",sans-serif;color:#FF6600">AccuWeather</span><span style="color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">$MAX_RUN_TIME = 300<o:p></o:p></p>
<p class="MsoNormal">$TIME_Exceeded = $false<o:p></o:p></p>
<p class="MsoNormal">$STATUS = "green"<o:p></o:p></p>
<p class="MsoNormal">$STATUSCODE = "&green Everything is looking just fine! &green"<o:p></o:p></p>
<p class="MsoNormal">$TEST_FILE = "${env:ProgramFiles(x86)}\BBWin\tmp\aspnethealth"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">$CurrSTATUS = "&green"<o:p></o:p></p>
<p class="MsoNormal">$ExeSTATUS = "&green"<o:p></o:p></p>
<p class="MsoNormal">$WaitSTATUS = "&green"<o:p></o:p></p>
<p class="MsoNormal">$QueueSTATUS = "&green"<o:p></o:p></p>
<p class="MsoNormal">$TimeSTATUS = "&green"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">$Source = @"<o:p></o:p></p>
<p class="MsoNormal">using System;<o:p></o:p></p>
<p class="MsoNormal">using System.Collections.Generic;<o:p></o:p></p>
<p class="MsoNormal">using System.Linq;<o:p></o:p></p>
<p class="MsoNormal">using System.Text;<o:p></o:p></p>
<p class="MsoNormal">using System.Threading.Tasks;<o:p></o:p></p>
<p class="MsoNormal">using System.Diagnostics;<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">namespace ASPNETPerformance<o:p></o:p></p>
<p class="MsoNormal">{<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> public static class Query<o:p></o:p></p>
<p class="MsoNormal"> {<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> public static IntPtr userHandle = new IntPtr(0);<o:p></o:p></p>
<p class="MsoNormal"> public static string hostName = ".";<o:p></o:p></p>
<p class="MsoNormal"> public static string categoryName = "ASP.NET Applications";<o:p></o:p></p>
<p class="MsoNormal"> public static string instanceName = "__Total__";<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> public static float CurrentConnections()<o:p></o:p></p>
<p class="MsoNormal"> {<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> string counterName = "Current Connections";<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> PerformanceCounter counter = new PerformanceCounter("Web Service", counterName, "_Total", hostName);<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> return counter.NextValue();<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> public static float RequestsExecuting()<o:p></o:p></p>
<p class="MsoNormal"> {<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> string counterName = "Requests Executing";<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> PerformanceCounter counter = new PerformanceCounter(categoryName, counterName, instanceName, hostName);<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"> return counter.NextValue();<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> public static float RequestWaitTime()<o:p></o:p></p>
<p class="MsoNormal"> {<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> string counterName = "Request Wait Time";<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> PerformanceCounter counter = new PerformanceCounter(categoryName, counterName, instanceName, hostName);<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> return counter.NextValue();<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> public static float RequestsInApplicationQueue()<o:p></o:p></p>
<p class="MsoNormal"> {<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> string counterName = "Requests In Application Queue";<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> PerformanceCounter counter = new PerformanceCounter(categoryName, counterName, instanceName, hostName);<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> return counter.NextValue();<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> public static float RequestExecutionTime()<o:p></o:p></p>
<p class="MsoNormal"> {<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> string counterName = "Request Execution Time";<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> PerformanceCounter counter = new PerformanceCounter(categoryName, counterName, instanceName, hostName);<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> return counter.NextValue();<o:p></o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">"@<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">try{<o:p></o:p></p>
<p class="MsoNormal">Add-Type -TypeDefinition $Source -Language CSharp <o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal">catch<o:p></o:p></p>
<p class="MsoNormal">{<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">$CurrentConnections = [ASPNETPerformance.Query]::CurrentConnections()<o:p></o:p></p>
<p class="MsoNormal">$RequestsExecuting = [ASPNETPerformance.Query]::RequestsExecuting()<o:p></o:p></p>
<p class="MsoNormal">$RequestWaitTime = [ASPNETPerformance.Query]::RequestWaitTime()<o:p></o:p></p>
<p class="MsoNormal">$RequestsInApplicationQueue = [ASPNETPerformance.Query]::RequestsInApplicationQueue()<o:p></o:p></p>
<p class="MsoNormal">$RequestExecutionTime = [ASPNETPerformance.Query]::RequestExecutionTime()<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">if ($TIME_Exceeded) {<o:p></o:p></p>
<p class="MsoNormal">$STATUS = "yellow"<o:p></o:p></p>
<p class="MsoNormal">$STATUSCODE = "Something is wrong with this test reporting to Hobbit"<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">if(($CurrentConnections -gt 15000) -and (!($CurrentConnections -gt 16000)))<o:p></o:p></p>
<p class="MsoNormal">{<o:p></o:p></p>
<p class="MsoNormal"> $CurrSTATUS = "&yellow"<o:p></o:p></p>
<p class="MsoNormal"> $STATUSCODE = "&yellow Current Connections exceed 15000 &yellow"<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">if($CurrentConnections -gt 16000)<o:p></o:p></p>
<p class="MsoNormal">{<o:p></o:p></p>
<p class="MsoNormal"> $CurrSTATUS = "&red"<o:p></o:p></p>
<p class="MsoNormal"> $STATUSCODE = "&red Current Connections exceed 16000 &red"<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">if(($RequestsExecuting -gt 3000) -and (!($RequestsExecuting -gt 5000)))<o:p></o:p></p>
<p class="MsoNormal">{<o:p></o:p></p>
<p class="MsoNormal"> $ExeSTATUS = "&yellow"<o:p></o:p></p>
<p class="MsoNormal"> $STATUSCODE = "&yellow Requests Executing exceeds 3000 &yellow"<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">if($RequestsExecuting -gt 5000)<o:p></o:p></p>
<p class="MsoNormal">{<o:p></o:p></p>
<p class="MsoNormal"> $ExeSTATUS = "&red"<o:p></o:p></p>
<p class="MsoNormal"> $STATUSCODE = "&red Requests Executing exceeds 5000 &red"<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">if(($RequestWaitTime -gt 60000) -and (!($RequestWaitTime -gt 70000)))<o:p></o:p></p>
<p class="MsoNormal">{<o:p></o:p></p>
<p class="MsoNormal"> $WaitSTATUS = "&yellow"<o:p></o:p></p>
<p class="MsoNormal"> $STATUSCODE = "&yellow Request Wait Time exceeds 60000 &yellow"<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">if($RequestWaitTime -gt 70000)<o:p></o:p></p>
<p class="MsoNormal">{<o:p></o:p></p>
<p class="MsoNormal"> $WaitSTATUS = "&red"<o:p></o:p></p>
<p class="MsoNormal"> $STATUSCODE = "&red Requests Wait Time exceeds 70000 &red"<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">if(($RequestsInApplicationQueue -gt 20) -and (!($RequestsInApplicationQueue -gt 50)))<o:p></o:p></p>
<p class="MsoNormal">{<o:p></o:p></p>
<p class="MsoNormal"> $QueueSTATUS = "&yellow"<o:p></o:p></p>
<p class="MsoNormal"> $STATUSCODE = "&yellow Requests in Queue exceed 20 &yellow"<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">if($RequestsInApplicationQueue -gt 50)<o:p></o:p></p>
<p class="MsoNormal">{<o:p></o:p></p>
<p class="MsoNormal"> $QueueSTATUS = "&red"<o:p></o:p></p>
<p class="MsoNormal"> $STATUSCODE = "&red Requests in Queue exceed 50 &red"<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">if(($RequestExecutionTime -gt 60000) -and (!($RequestExecutionTime -gt 70000)))<o:p></o:p></p>
<p class="MsoNormal">{<o:p></o:p></p>
<p class="MsoNormal"> $TimeSTATUS = "&yellow"<o:p></o:p></p>
<p class="MsoNormal"> $STATUSCODE = "&yellow Request Execution Time exceeds 60000 &yellow"<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal">if($RequestExecutionTime -gt 70000)<o:p></o:p></p>
<p class="MsoNormal">{<o:p></o:p></p>
<p class="MsoNormal"> $TimeSTATUS = "&red"<o:p></o:p></p>
<p class="MsoNormal"> $STATUSCODE = "&red Request Execution Time exceeds 70000 &red"<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">if(($CurrSTATUS -eq "&yellow") -or ($ExeSTATUS -eq "&yellow") -or ($WaitSTATUS -eq "&yellow") -or ($QueueSTATUS -eq "&yellow") -or ($TimeSTATUS -eq "&yellow"))<o:p></o:p></p>
<p class="MsoNormal">{<o:p></o:p></p>
<p class="MsoNormal">$STATUS = "yellow"<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal">if(($CurrSTATUS -eq "&red") -or ($ExeSTATUS -eq "&red") -or ($WaitSTATUS -eq "&red") -or ($QueueSTATUS -eq "&red") -or ($TimeSTATUS -eq "&red"))<o:p></o:p></p>
<p class="MsoNormal">{<o:p></o:p></p>
<p class="MsoNormal">$STATUS = "red"<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">$end = Get-Date<o:p></o:p></p>
<p class="MsoNormal">$STATUS = "$STATUS $end"<o:p></o:p></p>
<p class="MsoNormal">$STATUS | out-file -Encoding ASCII $TEST_FILE -Force<o:p></o:p></p>
<p class="MsoNormal">$Herp = "ASP.NET Application Information `n" | out-file -Encoding ASCII $TEST_FILE -Append<o:p></o:p></p>
<p class="MsoNormal">$skeep = "$STATUSCODE`n`n" | out-file -Encoding ASCII $TEST_FILE -Append<o:p></o:p></p>
<p class="MsoNormal">$Derp = $CurrSTATUS + " Current Connections: " + $CurrentConnections | out-file -Encoding ASCII $TEST_FILE -Append<o:p></o:p></p>
<p class="MsoNormal">$Merp = $ExeSTATUS + " Requests Executing: " + $RequestsExecuting | out-file -Encoding ASCII $TEST_FILE -Append<o:p></o:p></p>
<p class="MsoNormal">$Cherp = $WaitSTATUS + " Request Wait Time: " + $RequestWaitTime | out-file -Encoding ASCII $TEST_FILE -Append<o:p></o:p></p>
<p class="MsoNormal">$Berp = $QueueSTATUS + " Requests In Queue: " + $RequestsInApplicationQueue | out-file -Encoding ASCII $TEST_FILE -Append<o:p></o:p></p>
<p class="MsoNormal">$Flerp = $TimeSTATUS + " Request Exec Time: " + $RequestExecutionTime | out-file -Encoding ASCII $TEST_FILE -Append<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>