Monitor site response time with PowerShell

Scenario: Site monitoring using PowerShell

 

Script below:

 

#Define URL to monitor

$URL=”http://intranet.pbnet.local/Pages/Home.aspx”

clear

#Define LogFile

$log = “C:\NOC\intranet-mon.csv”

 

# If logfile already exists, delete it as a new one will be created

 

$filename=$log

if (Test-Path $filename)

{

Remove-Item $filename

}

 

#Define Function GetResponse

 

function GetResponseTime()

 

{

$date=get-date

$logtime=$date.ToShortDateString() + ” ” + $date.ToLongTimeString()

Write-Host $logtime -NoNewline -ForegroundColor Yellow

Write-Host ” === Checking”  $URL  “Response time ==” -NoNewLine

$request=[System.Net.WebRequest]::Create($URL)

$request.UseDefaultCredentials = $true

$request.Timeout = 9000000;

$starttime=Get-Date -DisplayHint time

$request.GetResponse() > null

$stoptime=Get-Date -DisplayHint time

$duration=$stoptime-$starttime

Write-Host $duration.TotalSeconds -ForegroundColor Green

 

$logduration=$duration.TotalSeconds

$logrequest=$logtime + “,” + $logduration

$logrequest | Out-File $log -Append

}

# Loop until Control-C

# Wait for 5 minutes (300 seconds) and re-run

while ($true)

{

GetResponseTime

Start-Sleep -s 300

}

Exit