What is this?

This knowledgebase contains questions and answers about PRTG Network Monitor and network monitoring in general.

Learn more

PRTG Network Monitor

Intuitive to Use. Easy to manage.
More than 500,000 users rely on Paessler PRTG every day. Find out how you can reduce cost, increase QoS and ease planning, as well.

Free Download

Top Tags


View all Tags

Where do I look to add monitoring for the IIS 7 App Pools?

Votes:

0

Where do I look to add monitoring for the IIS 7 App Pools?

app-pools iis monitoring

Created on Aug 28, 2010 3:18:30 AM



Best Answer

Accepted Answer

Votes:

0

The PerfCounter IIS Application Pool Sensor is natively available in PRTG as of version 13.

Created on Dec 12, 2013 5:39:40 PM by  Gerald Schoch [Paessler Support]



7 Replies

Votes:

0

I am also looking for the same thing. How to monitor IIS App Pools ?

Has any found an answer yet ?

Created on Sep 2, 2010 12:08:22 PM



Votes:

0

The same question.

Created on Oct 14, 2010 12:13:32 PM



Votes:

0

Same here.. have loads of app pools want to make sure I'm warned if one is misbehaving.

Created on Sep 14, 2011 11:06:30 AM



Votes:

0

PRTG does not natively support monitoring IIS App Pools yet. We are working on an easy to use solution. Until then you must create a custom sensor to achieve this.

It is possible to monitor these using WMI, the following articles have details.

http://stackoverflow.com/questions/4790684/application-pool-memory-usage-monitor

http://serverfault.com/questions/100816/whats-the-best-way-to-monitor-a-large-number-of-application-pools-in-iis7

Created on Sep 16, 2011 8:01:05 AM by  Dirk Paessler [Founder Paessler AG] (11,025) 3 6



Votes:

0

We've just added a new sensor "PerfCounter ISS Application Pool BETA". It will be available in the Canary Branch in 24 hours and in the stable branch early in Q1 2013. It allowes application pool monitoring for IIS 7.5 and higher.

Please keep in mind, that you will need the Remote Registry service to be running on the target system.

Created on Nov 12, 2012 1:23:00 PM by  Johannes Herrmann [Paessler Support] (1,360) 2 2

Last change on Mar 13, 2013 2:21:33 PM by  Johannes Herrmann [Paessler Support] (1,360) 2 2



Accepted Answer

Votes:

0

The PerfCounter IIS Application Pool Sensor is natively available in PRTG as of version 13.

Created on Dec 12, 2013 5:39:40 PM by  Gerald Schoch [Paessler Support]



Votes:

0

I have written a custom sensor that is able to read CPU and Memory load for the Application Pool as well. However, when I have about 20-40 sensors (one for each AppPool), once in a while it seems that WMI overloads and all the sensors report an error. I was wondering if anyone would be able to optimize the below custom sensor?

$AppPoolClass = @{
  IsRunning = $IsRunning
  IsStarted = $IsStarted
  CPULoad = $CPULoad
  MemoryLoad = $MemoryLoad
}

# ********************************************************************************************
$FindAppPool = $args[0]

$AppPool = New-Object PSObject -Property $AppPoolClass
$AppPool.IsRunning = $False
$AppPool.CPULoad = 0
$AppPool.IsStarted = $False
$AppPool.MemoryLoad = 0

$FoundPool = Get-WmiObject -Namespace "root\WebAdministration" -query "SELECT * From ApplicationPool WHERE Name = '$($FindAppPool)'"

If ($FoundPool -And $FoundPool.GetState().ReturnValue -Eq 1)
{
	$AppPool.IsStarted = $True

	$wp = Get-WmiObject -Namespace "root\WebAdministration" -query "SELECT ProcessId From WorkerProcess WHERE AppPoolName = '$($FindAppPool)'"

	If ($wp)
	{
		$AppPool.IsRunning = $True
		$processInfo = Get-WmiObject -query "SELECT PercentProcessorTime,WorkingSet From Win32_PerfFormattedData_PerfProc_Process WHERE idProcess = $($wp.processId)"
		$AppPool.CPULoad = $processInfo.PercentProcessorTime
		$AppPool.MemoryLoad = [Math]::Round( $processInfo.WorkingSet / 1024, 2)
	}
}

$xmlOutput  = '<?xml version="1.0" encoding="Windows-1252" ?>' + "`n"
$xmlOutput += '<prtg>' + "`n"

$xmlOutput += '	<result>' + "`n"
$xmlOutput += '		<channel>Started</channel>' + "`n"
$xmlOutput += '		<float>1</float>' + "`n"
$xmlOutput += '		<value>'
If ($AppPool.IsStarted -Eq $True) { $xmlOutput += '1.00' } else { $xmlOutput += '0.00' }
$xmlOutput += '</value>' + "`n"
$xmlOutput += '	</result>' + "`n"

$xmlOutput += '	<result>' + "`n"
$xmlOutput += '		<channel>Running</channel>' + "`n"
$xmlOutput += '		<float>1</float>' + "`n"
$xmlOutput += '		<value>'
If ($AppPool.IsRunning -Eq $True) { $xmlOutput += '1.00' } else { $xmlOutput += '0.00' }
$xmlOutput += '</value>' + "`n"
$xmlOutput += '	</result>' + "`n"

$xmlOutput += '	<result>' + "`n"
$xmlOutput += '		<channel>CPU Load (Percentage)</channel>' + "`n"
$xmlOutput += '		<unit>CPU</unit>' + "`n"
$xmlOutput += '		<value>'
$xmlOutput += $AppPool.CPULoad
$xmlOutput += '</value>' + "`n"
$xmlOutput += '	</result>' + "`n"

$xmlOutput += '	<result>' + "`n"
$xmlOutput += '		<channel>Memory Load (MB)</channel>' + "`n"
$xmlOutput += '		<unit>BytesMemory</unit>' + "`n"
$xmlOutput += '		<volumesize>MegaByte</volumesize>' + "`n"
$xmlOutput += '		<value>'
$xmlOutput += $AppPool.MemoryLoad
$xmlOutput += '</value>' + "`n"
$xmlOutput += '	</result>' + "`n"

$xmlOutput += '	<text>OK ('
$xmlOutput += $FindAppPool
$xmlOutput += ')</text>' + "`n"
$xmlOutput += '</prtg>'

$xmlOutput

Created on Jan 11, 2014 12:58:28 PM




Disclaimer: The information in the Paessler Knowledge Base comes without warranty of any kind. Use at your own risk. Before applying any instructions please exercise proper system administrator housekeeping. You must make sure that a proper backup of all your data is available.