Extensions

Back to documentation index

Introduction

Extensions enable you to write your own custom error-checking modules and plug them into the IPM monitoring process. Extensions should be applied when your monitoring needs extends those built into the IPM. Examples of such extensions could be:
  • An extension that checks if there is enough disk-space on the server
  • An extension that checks the health of external dependencies, such as FTP- or SMTP- servers

Development

The extension must be implemented as a class that extends the abstract class MonitoringExtension in the Communicate.IPM.Core.Model.Extensions namespace. Communicate.IPM.Core.dll can be found in the Libraries-folder of the IPM installation folder.

This class requires you to override the abstract method ExecutionResult Execute(string application). This is where you will put your own custom monitoring code. The application to monitor is passed along as a context reference.

In the Execute-method you must set the Status-property of the extension to the appropriate result of your custom monitoring. If an error has occurred, a textual description can be set in the ErrorDescription-property.

Extension code

Configuration

Once your extension is compiled into a DLL you must create a extension manifest. The manifest is a XML-file that shares the same name as the DLL.

The image below shows the structure of this XML-file, which points to the extension's class name (with fully qualified namespace) within the DLL and the display-name to be used in the UI. This file also contains an enumeration of all of the applications that this extension applies to.

Extension configuration

Put the DLL and its corresponding manifest in the ProgramData/IPM/Extensions/Monitoring folder of your primary hard drive.

Any errors produced by this extension will now be shown in the IPM Web UI in the Extensions-section in the application overview.

Extension in Application view