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
Fix: Service provider for brackets in service names
Fixes an issue for service provider with service names not interpreted correctly in case it contains `[]`
Feature: Adds cmdlet `Write-IcingaAgentEventLogConfig` to update eventlog severity and defaults to `warning`during installation and migration
Adds cmdlet `Write-IcingaAgentEventLogConfig` to update eventlog severity and defaults to `warning`during installation and migration tasks while updating to Icinga for Windows v1.13.0
Feature: Adds support to check encoding of files
Adds support to check the encoding of files to ensure we can properly load them and throw errors for unsupported encoding
Feature: Adds support to authenticate with the Icinga for Windows certificate for the REST-Api
Adds new command `Invoke-IcingaForWindowsRESTApi` for easier API communication with Icinga for Windows