2019-07-24 09:02:58 -04:00
|
|
|
Import-IcingaLib provider\process;
|
|
|
|
|
Import-IcingaLib icinga\plugin;
|
|
|
|
|
|
|
|
|
|
function Invoke-IcingaCheckProcessCount()
|
|
|
|
|
{
|
|
|
|
|
param(
|
|
|
|
|
$Warning,
|
|
|
|
|
$Critical,
|
|
|
|
|
[array]$Process,
|
|
|
|
|
[switch]$NoPerfData,
|
|
|
|
|
$Verbose
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
$ProcessInformation = (Get-IcingaProcessData -Name $Process)
|
|
|
|
|
|
|
|
|
|
$ProcessPackage = New-icingaCheckPackage -Name "Process Check" -OperatorAnd -Verbose $Verbose -NoPerfData $NoPerfData;
|
|
|
|
|
|
2019-07-24 09:34:49 -04:00
|
|
|
if ($Process.Count -eq 0) {
|
|
|
|
|
$ProcessCount = $ProcessInformation['Process Count'];
|
|
|
|
|
$IcingaCheck = New-IcingaCheck -Name ([string]::Format('Process Count')) -Value $ProcessCount;
|
2019-07-24 09:02:58 -04:00
|
|
|
$IcingaCheck.WarnOutOfRange($Warning).CritOutOfRange($Critical) | Out-Null;
|
|
|
|
|
$ProcessPackage.AddCheck($IcingaCheck);
|
2019-07-24 09:34:49 -04:00
|
|
|
} else {
|
|
|
|
|
foreach ($proc in $process) {
|
|
|
|
|
$ProcessCount = $ProcessInformation."Processes".$proc.processlist.Count;
|
|
|
|
|
$IcingaCheck = New-IcingaCheck -Name ([string]::Format('Process Count "{0}"', $proc)) -Value $ProcessCount;
|
|
|
|
|
$IcingaCheck.WarnOutOfRange($Warning).CritOutOfRange($Critical) | Out-Null;
|
|
|
|
|
$ProcessPackage.AddCheck($IcingaCheck);
|
|
|
|
|
}
|
2019-07-24 09:02:58 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2019-09-25 13:57:19 -04:00
|
|
|
return (New-IcingaCheckResult -Check $ProcessPackage -NoPerfData $NoPerfData -Compile);
|
2019-07-24 09:02:58 -04:00
|
|
|
}
|