I have now manage to achieve what I want with help from Clint via email :-) (thanks)
Here is what I did to achieve my goal:
1) Make a backup copy of PAL.ps1
2) Edit PAL.ps1 and add the following two new functions:
Here is what I did to achieve my goal:
1) Make a backup copy of PAL.ps1
2) Edit PAL.ps1 and add the following two new functions:
Function StaticThresholdAvgOnly
{
param($CollectionOfCounterInstances,$Operator,$Threshold,$IsTrendOnly=$False)
For ($i=0;$i -lt $CollectionOfCounterInstances.Count;$i++)
{
$oCounterInstance = $CollectionOfCounterInstances[$i]
#Check OverallCounters
If ($oCounterInstance.Name.Contains('INTERNAL_OVERALL_COUNTER_STATS_') -eq $True)
{
If (($oCounterInstance.Avg -ne '-') -and ($oCounterInstance.Avg -ne $null))
{
If ($oCounterInstance.Avg -is [System.Char])
{
[System.Int32] $iAvg = $oCounterInstance.Avg
[System.Double] $iAvg = $iAvg
}
Else
{
[System.Double] $iAvg = $oCounterInstance.Avg
}
$IsMinThresholdBroken = $False
$IsAvgThresholdBroken = $False
$IsMaxThresholdBroken = $False
$IsTrendThresholdBroken = $False
$IsMinEvaluated = $False
$IsAvgEvaluated = $False
$IsMaxEvaluated = $False
$IsTrendEvaluated = $False
switch ($Operator)
{
'gt'
{
If ([System.Double] $iAvg -gt [System.Double] $Threshold)
{
$IsAvgThresholdBroken = $True
}
}
'ge'
{
If ([System.Double] $iAvg -ge [System.Double] $Threshold)
{
$IsAvgThresholdBroken = $True
}
}
'lt'
{
If ([System.Double] $iAvg -lt [System.Double] $Threshold)
{
$IsAvgThresholdBroken = $True
}
}
'le'
{
If ([System.Double] $iAvg -le [System.Double] $Threshold)
{
$IsAvgThresholdBroken = $True
}
}
'eq'
{
If ([System.Double] $iAvg -eq [System.Double] $Threshold)
{
$IsAvgThresholdBroken = $True
}
}
default
{
If ([System.Double] $iAvg -gt [System.Double] $Threshold)
{
$IsAvgThresholdBroken = $True
}
}
}
If (($IsMinThresholdBroken -eq $True) -or ($IsAvgThresholdBroken -eq $True) -or ($IsMaxThresholdBroken -eq $True) -or ($IsTrendThresholdBroken -eq $True))
{
#Write-Host "Create alert - Overall: True"
CreateAlert -TimeSliceIndex 0 -CounterInstanceObject $oCounterInstance -IsMinThresholdBroken $IsMinThresholdBroken -IsAvgThresholdBroken $IsAvgThresholdBroken -IsMaxThresholdBroken $IsMaxThresholdBroken -IsTrendThresholdBroken $IsTrendThresholdBroken -IsMinEvaluated $IsMinEvaluated -IsAvgEvaluated $IsAvgEvaluated -IsMaxEvaluated $IsMaxEvaluated -IsTrendEvaluated $IsTrendEvaluated
}
Else
{
#Write-Host "Create alert - Overall: False"
}
}
}
Else
{
#Check Alerts (Quantized)
For ($t=0;$t -lt $alQuantizedTime.Count;$t++)
{
$IsMinThresholdBroken = $False
$IsAvgThresholdBroken = $False
$IsMaxThresholdBroken = $False
$IsTrendThresholdBroken = $False
$IsMinEvaluated = $False
$IsAvgEvaluated = $False
$IsMaxEvaluated = $False
$IsTrendEvaluated = $False
If ($oCounterInstance.QuantizedAvg -is [System.String])
{
[System.Double[]] $aQuantizedAvg = @($oCounterInstance.QuantizedAvg.Split(','))
}
Else
{
[System.Double[]] $aQuantizedAvg = @($oCounterInstance.QuantizedAvg)
}
$iQuantizedAvg = $aQuantizedAvg[$t]
switch ($Operator)
{
'gt'
{
If ([System.Double] $iQuantizedAvg -gt [System.Double] $Threshold)
{
$IsAvgThresholdBroken = $True
}
}
'ge'
{
If ([System.Double] $iQuantizedAvg -ge [System.Double] $Threshold)
{
$IsAvgThresholdBroken = $True
}
}
'lt'
{
If ([System.Double] $iQuantizedAvg -lt [System.Double] $Threshold)
{
$IsAvgThresholdBroken = $True
}
}
'le'
{
If ([System.Double] $iQuantizedAvg -le [System.Double] $Threshold)
{
$IsAvgThresholdBroken = $True
}
}
'eq'
{
If ([System.Double] $iQuantizedAvg -eq [System.Double] $Threshold)
{
$IsAvgThresholdBroken = $True
}
}
default
{
If ([System.Double] $iQuantizedAvg -gt [System.Double] $Threshold)
{
$IsAvgThresholdBroken = $True
}
}
}
If (($IsMinThresholdBroken -eq $True) -or ($IsAvgThresholdBroken -eq $True) -or ($IsMaxThresholdBroken -eq $True) -or ($IsTrendThresholdBroken -eq $True))
{
#Write-Host "Create alert - Detail: True"
CreateAlert -TimeSliceIndex $t -CounterInstanceObject $oCounterInstance -IsMinThresholdBroken $IsMinThresholdBroken -IsAvgThresholdBroken $IsAvgThresholdBroken -IsMaxThresholdBroken $IsMaxThresholdBroken -IsTrendThresholdBroken $IsTrendThresholdBroken -IsMinEvaluated $IsMinEvaluated -IsAvgEvaluated $IsAvgEvaluated -IsMaxEvaluated $IsMaxEvaluated -IsTrendEvaluated $IsTrendEvaluated
} Else {
#Write-Host "Create alert - Detail: False"
}
}
}
}
}