1# Contributed Munin Plugins 2 3This plethora of plugins covering various topics was contributed by many different users of [munin](http://munin-monitoring.org). 4 5See the [gallery](http://gallery.munin-monitoring.org/) for a browsable overview of these plugins. 6 7 8## Purpose of this repository 9 10This repository of contributed plugin strives to achieve the following goals: 11 12* allow users to find interesting plugins 13* allow contributors to publish their plugins 14* simplify cooperative maintenance of plugins 15 16Contributed plugins are maintained primarily by their authors. 17You may file bug reports for plugin issue here in this repository (`munin-contrib`), but please do not forget to notify the author of the plugin (see the plugin's documentation), too. 18 19Please note, that this repository is not supposed to be a dumping site for random plugins of low quality. The related infrastructure (e.g the [gallery](http://gallery.munin-monitoring.org/) or automated tests) require a certain level of quality. Please see below for details. 20 21 22## Submit a new plugin 23 241. check if a similar plugin exists and if it can be extended/changed instead of adding a new plugin 25 * please avoid code copies - they are a maintenance burden 262. add [documentation](http://guide.munin-monitoring.org/en/latest/develop/documenting.html#plugin-documentation) including configuration, author, license and [magic markers](http://guide.munin-monitoring.org/en/latest/architecture/syntax.html#magic-markers) 273. pick a suitable [category](http://guide.munin-monitoring.org/en/latest/reference/graph-category.html) 285. use style check tools for the language of the plugin (e.g. perl: `perlcritic`, shell: `shellcheck`, python: `flake8`, ruby: `rubocop`) 296. pick a suitable [name and location](#Plugin_name_and_location) 307. bonus: 31 * use the [multigraph approach](http://guide.munin-monitoring.org/en/latest/plugin/multigraphing.html#plugin-multigraphing) for non-trivial plugins 32 * add [example graphs](http://guide.munin-monitoring.org/en/latest/develop/plugins/plugin-gallery.html#rules-for-plugin-contributors) for the [gallery](http://gallery.munin-monitoring.org/) 33 * support [dirtyconfig](http://guide.munin-monitoring.org/en/latest/plugin/protocol-dirtyconfig.html#plugin-protocol-dirtyconfig) if it is suitable 348. open a [pull request](https://github.com/munin-monitoring/contrib/pull/) with your new plugin or send it attached to an email to the [mailing list](https://lists.sourceforge.net/lists/listinfo/munin-users) 35 36See the [plugin development documentation](http://guide.munin-monitoring.org/en/latest/develop/plugins/index.html) for more details. 37 38 39## Modify an existing plugin 40 41* *try* to keep the plugin backwards compatible (e.g. keep data fieldnames unchanged) 42 * improvements of code quality and features can justify incompatible changes of existing plugins 43* bonus: 44 * improve the existing plugins according to the [wishlist for new plugins](#Submit_a_new_plugin) 45 * upgrades from simple plugins to a [multigraph plugin](http://guide.munin-monitoring.org/en/latest/plugin/multigraphing.html#plugin-multigraphing) are welcome 46 47 48## Plugin name and location 49 50The following descriptions are *intentions* - they do not necessarily describe the current state for all plugins. Please open a [pull request](https://github.com/munin-monitoring/contrib/pull/) if you want to align the current structure along the goals outlined below: 51 52* the top level directory should describe a related *software* or *vendor* 53 * use *concepts* or *platforms* only if it is really necessary (e.g. *cpu*, *bsd*, *memory*) 54* subdirectories are usually not required 55