* 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>
The former implementation had 5 threads permanently spinning fast
(10ms sleep) while waiting for a REST connection to process.
This causes higher load in general and it breaks systems where
"Turn on PowerShell Script Block Logging policy" is enabled,
because then each PS statement including Start-Sleep is logged -
resulting in 500 event log entries per second. It's a suggested
setting in some hardening guidelines.
We can easily replace the Queue with a BlockingCollection backed
by a ConcurrentQueue, which has the built-in feature to sleep until
there are new items. Now the REST API threads consumes zero CPU time
while waiting.
Fixes#20
This fixes the memory leak on the Service Check Background Daemon, mainly caused by not properly catching the boolean return values of `Add-IcingaHashtableItem`. The boolean values stayed within the scope, poluting the memory and causing functions to behave not as expected