Icinga PowerShell - Monitoring Windows
Find a file
Lord Hepipud 2deeb83d38
Merge pull request #142 from Icinga/feature/add_code_cache_for_faster_framework_loading
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`
2020-11-18 18:58:35 +01:00
.github/ISSUE_TEMPLATE Updates framework to use new WMI/Cim wrapper 2020-07-27 11:45:02 +02:00
cache Added cache folder to repository 2019-10-07 00:56:19 +02:00
custom Added proper support for custom plugins / lib elements 2019-10-07 00:04:30 +02:00
doc Merge branch 'master' into feature/add_code_cache_for_faster_framework_loading 2020-11-18 18:58:05 +01:00
lib Merge branch 'master' into feature/add_code_cache_for_faster_framework_loading 2020-11-18 18:58:05 +01:00
.gitattributes Adding gitattributes file 2019-12-17 17:58:45 +01:00
.gitignore Added cache folder to repository 2019-10-07 00:56:19 +02:00
icinga-powershell-framework.psd1 Experimental: Adds code caching for faster loading 2020-11-06 16:06:38 +01:00
icinga-powershell-framework.psm1 Experimental: Adds code caching for faster loading 2020-11-06 16:06:38 +01:00
LICENSE Create LICENSE 2019-11-04 16:16:04 +01:00
PSScriptAnalyzerSettings.psd1 Disable OnSameLine & don't check space before open brace 2020-11-05 13:34:14 +01:00
README.md Adds first knowledge base entries 2020-11-18 16:39:17 +01:00

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.

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!