diff --git a/lib/help/help.psm1 b/lib/help/help.psm1 new file mode 100644 index 0000000..4ce1716 --- /dev/null +++ b/lib/help/help.psm1 @@ -0,0 +1 @@ +Import-IcingaDirectoryModules -LibDirectory (Join-Path -Path $PSScriptRoot -ChildPath $MyInvocation.MyCommand.Name); diff --git a/lib/help/help/Get-IcingaHelpThresholds.psm1 b/lib/help/help/Get-IcingaHelpThresholds.psm1 new file mode 100644 index 0000000..0e96aeb --- /dev/null +++ b/lib/help/help/Get-IcingaHelpThresholds.psm1 @@ -0,0 +1,90 @@ +Import-IcingaLib icinga\checkresult; + +function Get-IcingaHelpThresholds() +{ + param( + $Value, + $Warning, + $Critical + ); + + if ([string]::IsNullOrEmpty($Value) -eq $FALSE) { + $ExampleCheck = New-IcingaCheck -Name 'Example' -Value $Value; + $ExampleCheck.WarnOutOfRange($Warning).CritOutOfRange($Critical).Compile($TRUE) | Out-Null; + return; + } + + Write-Host + ' + Icinga is providing a basic handling for thresholds to make it easier to check if certain values of metrics should rise an event or not. + By default, you are always fine to specify simple numeric values for thresholds throughout the entire Check-Plugins. + + ##################### + + -Warning 60 + -Critical 90 + + This example will always raise an event, in case the value is below 0. On the other hand, it will raise + Warning, if the value is above 60 and + Critical, if the value is above 90. + + Example: Get-IcingaHelpThresholds -Value 40 -Warning 60 -Critical 90; #This will return Ok + Get-IcingaHelpThresholds -Value 70 -Warning 60 -Critical 90; #This will return Warning + + There is however a smart way available, to check for ranges of metric values which are explained below. + + ##################### + + Between Range + -Warning "30:50" + + This configuration will check if a value is within the specified range. In this example it would return Ok, whenver the + value is >= 30 and <= 50 + + Example: Get-IcingaHelpThresholds -Value 40 -Warning "30:50" -Critical "10:70"; #This will return Ok + Get-IcingaHelpThresholds -Value 20 -Warning "30:50" -Critical "10:70"; #This will return Warning + Get-IcingaHelpThresholds -Value 5 -Warning "30:50" -Critical "10:70"; #This will return Critical + + ##################### + + Outside Range + -Warning "@40:70" + + The exact opposite of the between range. Simply write an @ before your range and it will return Ok only, if the value is + outside the range. In this case, it will only return Ok if the value is <= 40 and >= 70 + + Example: Get-IcingaHelpThresholds -Value 10 -Warning "@20:90" -Critical "@40:60"; #This will return Ok + Get-IcingaHelpThresholds -Value 20 -Warning "@20:90" -Critical "@40:60"; #This will return Warning + Get-IcingaHelpThresholds -Value 50 -Warning "@20:90" -Critical "@40:60"; #This will return Critical + + ##################### + + Above value + -Warning "50:" + + A threshold followed by a : will always return Ok in case the value is above the configured start value. In this case it will + always return Ok as long as the value itself is above 50 + + Example: Get-IcingaHelpThresholds -Value 100 -Warning "90:" -Critical "50:"; #This will return Ok + Get-IcingaHelpThresholds -Value 60 -Warning "90:" -Critical "50:"; #This will return Warning + Get-IcingaHelpThresholds -Value 10 -Warning "90:" -Critical "50:"; #This will return Critical + + ##################### + + Below value + -Warning "~:40" + + Like the above value, you can also configure a threshold to require to be lower then a certain value. In this example, every value + below 40 will return Ok + + Example: Get-IcingaHelpThresholds -Value 20 -Warning "~:40" -Critical "~:70"; #This will return Ok + Get-IcingaHelpThresholds -Value 60 -Warning "~:40" -Critical "~:70"; #This will return Warning + Get-IcingaHelpThresholds -Value 90 -Warning "~:40" -Critical "~:70"; #This will return Critical + + ##################### + + You can play around yourself with this by using this Cmdlet with different values and -Warning / -Critical thresholds: + + Get-IcingaHelpThresholds -Value -Warning -Critical ; + '; +}