Fix: Icinga for Windows being stuck while fetching service information if other services block CIM requests
Fixes Icinga for Windows being stuck during installation while fetching service information over CIM-Instances, if other services are frozen, blocking the CIM-Request
Fix: Threshold comparison to only apply for ranged values
Fixes Icinga for Windows threshold comparison which wrongly compared warning/critical thresholds for non-range values (like Match)
Fix: Icinga for Windows installer to always force service installation
Fixes Icinga for Windows installer to always force the installation of the service, to ensure it is present
Fix: UNKNOWN on checks using MoT thresholds if they are newly registered
Fixes plugins throwing `UNKNOWN` in case `-TresholdInterval` is used for Metrics over Time, when checks are newly registered and checked, before the first MoT is executed and collected
Fix: Wrong performance data values on unit conversion
Fixes an issue with the new check handling, which did not properly convert values from checks to the correct performance data values and base values in some cases
Fix MetricsOverTime reporting unknown for checks which do not write performance data
Fixes an issue for certain plugins, like `Invoke-IcingaCheckProcess`, which reports unknown if MetricsOverTime is used for checks that do not write performance data
Fix: Return value for "Agent" component installation failure
Fixes the return value in case the `Agent` component could not be installed from `$FALSE` to `null`
Fix: IfW service installation on certain Windows environment
Fixes Icinga for Windows service installation not working properly on certain Windows environments
Fix: Test commands failing because wrong assigned service data
Fixes test commands like `Test-IcingaForWindows` failing because of wrong assigned ServiceData information.
* Update GetWindowsService.ps1
Instead of repeatedly accessing $SvcData."$ServiceName", store the object in a local variable for better readability.
* Update GetWindowsService.ps1
Fixes code styling
---------
Co-authored-by: Lord Hepipud <contact@lordhepipud.de>
Adds argument `-IntervalInSeconds` for `Enable-IcingaServiceRecovery` to allow setting a custom time interval for the service to restart, while setting the default to 120 seconds (2 minutes)
Fixes EventLog error handling by no longer parsing command arguments to ensure passwords are not stored on the EventLog, unless the debug mode of Icinga for Windows is enable
This adds new and improved handling for Metrics over Time.
The overall execution time for the background tasks has been reduced, while also the memory management is way more efficient.
In addition to the improved core handling of the feature, performance metrics for metrics over time will NO LONGER BE WRITTEN.
This will increase the performance of the graphing solutions like InfluxDB a lot, while the monitoring by using the "-ThresholdInterval" argument is still possible.
```powershell
PS> Invoke-IcingaCheckCPU -Warning '5%' -ThresholdInterval '10m';
[WARNING] CPU Load [WARNING] Overall Load, Socket #0
\_ [WARNING] Overall Load: Value 6.546175% is greater than threshold 5% (10m Avg.)
\_ [WARNING] Socket #0
\_ [WARNING] Core 0: Value 18.391566% is greater than threshold 5% (10m Avg.)
\_ [WARNING] Core 1: Value 14.100505% is greater than threshold 5% (10m Avg.)
\_ [WARNING] Core Total: Value 6.546175% is greater than threshold 5% (10m Avg.)
| totalload::ifw_cpu::load=5.804053;5;;0;100 0_0::ifw_cpu::load=18.03764;5;;0;100 0_1::ifw_cpu::load=9.36611;5;;0;100 0_2::ifw_cpu::load=5.830669;5;;0;100 0_3::ifw_cpu::load=0.646737;5;;0;100 0_4::ifw_cpu::load=0.926955;5;;0;100 0_5::ifw_cpu::load=0.016205;5;;0;100 0_total::ifw_cpu::load=5.804053;5;;0;100
```
* Set maximum cache duration for service daemons to the right value
This commit sets the maximum duration for cached data for service
daemons to the proper amount.
Previously it was multiplied by 60, probably a typo from a time
when the assigned value was in minutes and not in seconds directly.
Therefore the value was 60 times to high which leads to a massive amount
of cached data which drags down the performance significantly.
* Updates changelog
---------
Co-authored-by: Lord Hepipud <contact@lordhepipud.de>
Feature: Adds new start and stop Cmdlets for Icinga
Adds new Cmdlets `Start-Icinga`, `Stop-Icinga`, `Start-IcingaForWindows` and `Stop-IcingaForWindows` in addition to the existing Cmdlets `Restart-Icinga` and `Restart-IcingaForWindows`
Feature: Sets Icinga for Windows processes to BelowNormal
Adds feature to set process priority for Icinga for Windows to BelowNormal for improved Host performance
Fix: Performance counter results sometimes reporting null instead of 0
Fixes an issue with performance counters, sometimes reporting empty values instead of at least 0
Rework: Plugin and checker core handling for plugin evaluation
Reworks the internal handling on how plugin thresholds are evaluated and the internal checker core, including on how performance metrics are generated