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
Function StaticThresholdMaxOnly
{
    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.Max -ne '-') -and ($oCounterInstance.Max -ne $null))
            {
                If ($oCounterInstance.Max -is [System.Char])
                {
                    [System.Int32] $iMax = $oCounterInstance.Max
                    [System.Double] $iMax = $iMax
                }
                Else
                {
                    [System.Double] $iMax = $oCounterInstance.Max
                }

                $IsMinThresholdBroken = $False
                $IsAvgThresholdBroken = $False
                $IsMaxThresholdBroken = $False
                $IsTrendThresholdBroken = $False
                $IsMinEvaluated = $False
                $IsAvgEvaluated = $False
                $IsMaxEvaluated = $False
                $IsTrendEvaluated = $False

                switch ($Operator)
                {
                    'gt'
                    {
                        If ([System.Double] $iMax -gt [System.Double] $Threshold)
                        {
                            $IsMaxThresholdBroken = $True
                        }
                    }
                    'ge'
                    {
                        If ([System.Double] $iMax -ge [System.Double] $Threshold)
                        {
                            $IsMaxThresholdBroken = $True
                        }
                    }
                    'lt'
                    {
                        If ([System.Double] $iMax -lt [System.Double] $Threshold)
                        {
                            $IsMaxThresholdBroken = $True
                        }
                    }
                    'le'
                    {
                        If ([System.Double] $iMax -le [System.Double] $Threshold)
                        {
                            $IsMaxThresholdBroken = $True
                        }
                    }
                    'eq'
                    {
                        If ([System.Double] $iMax -eq [System.Double] $Threshold)
                        {
                            $IsMaxThresholdBroken = $True
                        }
                    }
                    default
                    {
                        If ([System.Double] $iMax -gt [System.Double] $Threshold)
                        {
                            $IsMaxThresholdBroken = $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.QuantizedMax -is [System.String])
                {
                    [System.Double[]] $aQuantizedMax = @($oCounterInstance.QuantizedMax.Split(','))
                }
                Else
                {
                    [System.Double[]] $aQuantizedMax = @($oCounterInstance.QuantizedMax)
                }

                $iQuantizedMax = $aQuantizedMax[$t]

                switch ($Operator)
                {
                    'gt'
                    {
                        If ([System.Double] $iQuantizedMax -gt [System.Double] $Threshold)
                        {
                            $IsMaxThresholdBroken = $True
                        }
                    }
                    'ge'
                    {
                        If ([System.Double] $iQuantizedMax -ge [System.Double] $Threshold)
                        {
                            $IsMaxThresholdBroken = $True
                        }
                    }
                    'lt'
                    {
                        If ([System.Double] $iQuantizedMax -lt [System.Double] $Threshold)
                        {
                            $IsMaxThresholdBroken = $True
                        }
                    }
                    'le'
                    {
                        If ([System.Double] $iQuantizedMax -le [System.Double] $Threshold)
                        {
                            $IsMaxThresholdBroken = $True
                        }
                    }
                    'eq'
                    {
                        If ([System.Double] $iQuantizedMax -eq [System.Double] $Threshold)
                        {
                            $IsMaxThresholdBroken = $True
                        }
                    }
                    default
                    {
                        If ([System.Double] $iQuantizedMax -gt [System.Double] $Threshold)
                        {
                            $IsMaxThresholdBroken = $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>