Quantcast
Channel: Performance Analysis of Logs (PAL) Tool
Viewing all articles
Browse latest Browse all 913

New Post: Issue with setting two threshold based on an average and a maximum value

$
0
0
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:
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"
                }
            }
        }
    }
}

Viewing all articles
Browse latest Browse all 913

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>