Other docs¶
Contributing¶
We welcome contributions to Munin. Here are the main ways to help:
Plugin Gallery¶
We need help completing the Munin Gallery. A lot of plugins don’t have their documentation in POD style format. And the Gallery needs more screenshots!
See the hints for plugin contributions for more details.
Code Contributions¶
Munin is hosted on GitHub. To contribute code:
Fork the repository.
Create a feature branch.
Make your changes with tests.
Submit a pull request.
See Munin development environment for instructions on setting up a development environment.
Documentation¶
The Munin Guide is written in reStructuredText and built with Sphinx. You can edit pages directly on GitHub and submit a pull request. See Documenting Munin for details.
Project Resources¶
Munin Wiki — community documentation
Munin Contrib — contributed plugins
Munin Gallery — plugin catalog with screenshots
Mailing lists — user and developer lists
Dirty Config¶
The “dirty config” optimization allows plugins to output both configuration
and data values in a single config call, eliminating the need for a
separate fetch. This can halve the execution time for expensive plugins.
How it works¶
Normally, munin-update calls config <plugin> and then fetch <plugin>
for each plugin on every run. Plugins that do expensive work to gather their
numbers end up doing that work twice.
With dirty config, a plugin outputs its values as part of the config response.
munin-update detects this (the config output contains .value lines) and
skips the separate fetch call.
Implementation¶
The master advertises the capability with cap dirtyconfig. If the node
supports it, it sets the environment variable MUNIN_CAP_DIRTYCONFIG before
running plugins.
A plugin that supports dirty config checks this variable and, if set, includes
its values in the config output. Plugins that don’t support dirty config
continue to work normally — old masters simply ignore the extra output during
config and call fetch as usual.
See Protocol extension: dirtyconfig for the protocol details.