Experimental: Adds code caching for faster framework loading ## Current Situation Currently the entire Framework is taking a huge amount of time to load the files. This causes several issues: * Slow loading increases the runtime of checks * High CPU usage for the initial loading of the Framework * High CPU usage over a longer period of time, cause more impcact on the systems ## Possible solutions ### Add caching To reduce the impact for the Framework loading, we could add a cache file containing all Cmdlets, Enums and Functions allowing us to import file on initialization instead of having of to search for all `.psm1` files and load them one by one ### Use Nested Modules for PowerShell Plugins PowerShell plugins right now are using `Use-IcingaPlugins` which searchs for all `.psm1` files inside the plugin folder to load them. We should use `NestedModules` here, as the overall impact is lower. On Framework side we can't do this how ever without loading times to explode. Plugins are tracked [at issue #87 here](https://github.com/Icinga/icinga-powershell-plugins/pull/87) ## Current Status **Mitigated** ## Usage You can enable/disable this feature by using `Enable-IcingaFrameworkCodeCache` and `Disable-IcingaFrameworkCodeCache`. Updating the cache is done with `Write-IcingaFrameworkCodeCache` |
||
|---|---|---|
| .github/ISSUE_TEMPLATE | ||
| cache | ||
| custom | ||
| doc | ||
| lib | ||
| .gitattributes | ||
| .gitignore | ||
| icinga-powershell-framework.psd1 | ||
| icinga-powershell-framework.psm1 | ||
| LICENSE | ||
| PSScriptAnalyzerSettings.psd1 | ||
| README.md | ||
Icinga PowerShell Framework
The Icinga PowerShell Framework provides a wide range of configuration and check possibilities to ensure an easy integration and full monitoring of Windows environments. Each single chapter of this documentation will describe parts of the module and the possibilities.
Before you continue, please take a look at the Installation Guide
Documentation
Please take a look at the following content to get to know the possibilities of the module including examples on how to use it.
- Introduction
- Installation Guide
- Icinga Integration
- Framework Usage Examples
- Icinga PowerShell Framework as Service
- Knowledge Base
- Changelog
Developer Guide
If you wish to extend the Framework by yourself or write custom plugins for your environment, please have a look at the Developer Guide for detailed explanations of functions and code examples.
Contributing
The Icinga PowerShell Framework is an Open Source project and lives from your contributions. No matter whether these are feature requests, issues, translations, documentation or code.
- Please check whether a related issue alredy exists on our Issue Tracker
- Send a Pull Request
- The master branch shall never be corrupt!