Version: 1.4.9This documentation is for Spitfire 1.4.9.
Infrastructure — IIS (Beta)
IIS
Quick install
- Run on the IIS server as Administrator.
Invoke-WebRequest -UseBasicParsing -Uri "https://<spitfire>/api/v1/setup/ds/iis.ps1?t=<token>&lang=en" -OutFile "$env:TEMP\sf-iis.ps1"; powershell -NoProfile -ExecutionPolicy Bypass -File "$env:TEMP\sf-iis.ps1" - When you see
OK: ..., you are done.
IIS is read on the IIS server itself, from Windows performance counters, by the Spitfire Windows agent; it is not collected over the network. Requires the Spitfire Windows agent: the script installs it when missing. It changes nothing in IIS, restarts only the agent service and asks first. In the product the line comes ready with the address and a fresh token.
Manual install
- Add the monitored system: Infrastructure sources → IIS.
Name: web1-iis Tower address: http://tower.corp:4318 - Open PowerShell as Administrator.
Start-Process powershell -Verb RunAs - Check IIS and its counters.
$ErrorActionPreference = 'Stop' if (-not (Get-Service W3SVC -ErrorAction SilentlyContinue)) { throw 'IIS (W3SVC) is not installed on this server' } $sets = @('Web Service', 'HTTP Service Request Queues', 'APP_POOL_WAS') if (@($sets | Where-Object { -not (Get-Counter -ListSet $_ -ErrorAction SilentlyContinue) }).Count -gt 0) { & "$env:SystemRoot\System32\lodctr.exe" /R & "$env:SystemRoot\System32\wbem\winmgmt.exe" /resyncperf } $sets | ForEach-Object { if (-not (Get-Counter -ListSet $_ -ErrorAction SilentlyContinue)) { throw "Performance counter set '$_' is missing" } } - Copy and run the setup from the page.
Infrastructure sources → IIS → Run the setup on the IIS server → Copy - Check the counters.
Get-Counter '\Web Service(_Total)\Current Connections' -ErrorAction Stop; 'OK: IIS counters readable, first metrics within ~1 min'
The setup installs (or reinstalls) the Spitfire Windows agent, service
spitfire-collector, with the iis block as C:\ProgramData\Spitfire\collector-extra.yaml
and asks for the Tower's sfcol_ token; it is kept off the command line. Panels: requests/s by
method, current connections, request queue count and age, rejected requests, bytes sent and
received, network blocked, active threads, uptime, app pool state and uptime. Findings: an app pool
that is not Running (critical), request queue age over 5 s, request queue over 100, rejected
requests rising (warning). Per site and per app pool series. Beta: the receiver's metrics are still
marked development upstream.