Application redesign to plugin style?

Problem at moment:
If someone wants to monitor some special applications he has to write a application monitor and it has to be merged into master branch to keep his librenms uptodate without problems.
Or he has to fork librenms, and maybe on every update he has to handle possible merge problems.

Idea:
What about a redesign/enhancement of application directories so every application will be a plugin.

Goal will be, everybody can write custom application plugins and include them in his own librenms instance and will still be able to update regularly code

application plugin structure maybe could be like this:

    /opt/librnms/includes/application_plugins/
          my_special_application_plugin/
                poller/
                functions/
                graph/
                page/
                apps.inc.php

.gitignore file now only has to be enhanced with includes/application_plugins directory and everybody can include custom monitoring extensions in his own librenms instance for his most exotic applications and is still able und update librenms

Hi @SourceDoctor
The idea is indeed to get the Application merged so everybody can benefit of it. This is the force of LibreNMS : You don’t have to reinvent the wheel for every setup, most of the work is done once.

And if your application is so specific that you really don’t want to merge it into LibreNMS, you can already use the Plugin structure. It already has a hook in the “device” page of each device, as well as a hook in each “port” page. A plugin can then create sensors, components
If you have a usecase that would require to extend the Plugin hooks, we are of course ready to discuss it (like direct access to the “poller” which it does not have right now).

But again, the privileged choice is to write a standard Application and merge it to LibreNMS. This is easier to maintain than Plugins. Plugins may suffer from an update of LibreNMS core, may not follow the coding rules, etc etc. Just have a look at the Weathermap plugin in this forum for instance :slight_smile:

PipoCanaja