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 command to test the functionality of Icinga for Windows
Adds new command `Test-IcingaForWindows`to check the current environment health by also improving internal handlings on how service information are fetched, preventing a lock on those
Feature: Adds support to create snapshot repositories with "New-IcingaRepository"
Adds support to create own snapshot repositories with `New-IcingaRepository`
Feature: Adds renewal handling for Icinga for Windows certificate
Adds automatic renewal of the `icingaforwindows.pfx` certificate for the REST-Api daemon in case the certificate is not yet present, valid or changed during the runtime of the daemon while also making the `icingaforwindows.pfx` mandatory for all installations, regardless of JEA being used or not
Feature: Adds handling to add scheduled task background task
Adds new handling to add scheduled tasks in Windows for interacting with Icinga for Windows core functionality as well as an auto renewal task for the Icinga for Windows certificate generation
The old Cmdlet's documentation implied that just by passing the
-IcingaConfig switch, an Icinga 2 configuration would be generated.
However, the first two examples does not work as intended, as
-IcingaConfig only works together with the -OutDirectory parameter.
The documentation was updated to reflect as Get-IcingaCheckCommandConfig
behaves and how one can generate Icinga 2 configurations. In addition,
a note was added to the Cmdlet's API documentation to handle
expectations of the switch.
Useful in case someone renames the commands in Director.
Otherwise, in this case, all commands would be broken with ifw-api as vars.ifw_api_command defaults to $command.name$.
Fix: Improves REST-Api memory management
Fixes some memory management while using the REST-Api to clear connection objects once they are no longer required
to properly support just importing the ifw-api command.
That command e.g. takes DSL/JSON arrays [], not PS ones @(). Similar with strings.
Therefore set vars.ifw_api_arguments as ifw-api expects.
Fix: Recursive loop on first loading of Framework
Prevents the Icinga for Windows framework to recursively import itself on first startup or after reseting the cache file.