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
Feature: Adds support for Acknowledgement events
Adds support to provide occuring problem event id's for the Eventlog and corresponding acknowledgement id's, providing an indicator if certain issues are resolved or still present
Fix: Update-Icinga to print an error in case a component is not installed
Fixes `Update-Icinga` to print an error in case a component is not installed, instead of silently continue
Feature: Adds support to TLS1.3 and improves startup response
Adds support for both, TLS 1.2 and TLS 1.3 while also improving the response of the API for initial startup, by redirecting all calls to thread 0 if not all threads are loaded
Fix: Leading backslash for service binary on initial setup
Fixes leading `\` for the service binary path and directory, which results in wrong behavior while using the same shell on which the initial installation was made
Fix: Usage of wrong certutil if present in PATH instead of system32 binary
Fixes `icingaforwindows.pfx` creation in case another `certutil` is installed on the system and being available in the `PATH` environment
Fix: Certificate handling to provide systemwide compatibility
Fixes Icinga for Windows certificate handling by keeping the .pfx file on the system as created, without using the certificate store. Also fixes handling for providing thumbprints for certificates, which are now loaded directly from the certificate store by also providing a new filter mechanic to fetch the proper certificates from the store
Fix: JSON validator to always return False on unhandled errors
Fixes Icinga repository JSON validator to report the correct state of the validation status, in case the JSON is not valid