Skip to main content

Config

Struct Config 

Source
pub struct Config {
    pub plugin_name: String,
    pub plugin_statedir: PathBuf,
    pub plugin_cache: PathBuf,
    pub dirtyconfig: bool,
    pub daemonize: bool,
    pub pidfile: PathBuf,
    pub config_size: usize,
    pub fetch_size: usize,
}
Expand description

Plugin configuration.

Fields§

§plugin_name: String

The name of the plugin.

Default is “Simple munin plugin in Rust”

§plugin_statedir: PathBuf

Plugins state directory

Fallback to /tmp if environment variable MUNIN_PLUGSTATE is not set.

§plugin_cache: PathBuf

Cachefile for the plugin

Plugins that daemonize and continuously fetch data need to write them somewhere, so that the MuninPlugin::fetch function can output them. The default is a combination of Config::plugin_statedir and a random string, with munin and value added, in std::format! syntax: "{}.munin.{}.value", [Config::plugin_statedir], randomstring.

§dirtyconfig: bool

Does munin support dirtyconfig? (Send data after sending config)

Checks MUNIN_CAP_DIRTYCONFIG environment variable, if set to 1, this is true, otherwise false.

§daemonize: bool

Does this plugin need to run in background, continuously fetching data?

Default to false

§pidfile: PathBuf

If plugin uses daemonize, whats the pidfile name?

Defaults to Config::plugin_statedir plus “munin-plugin.pid”, using Config::new will set it to Config::plugin_statedir/Config::plugin_name.pid

§config_size: usize

Size of buffer for BufWriter for MuninPlugin::config.

Defaults to 8192, but if the plugin outputs huge munin configuration (trivial with multigraph plugins), you may want to increase this.

§fetch_size: usize

Size of buffer for BufWriter for MuninPlugin::fetch.

Defaults to 8192, but if the plugin outputs large datasets, it is useful to increase this.

Implementations§

Source§

impl Config

Source

pub fn new(plugin_name: String) -> Self

Create a new Config with defined plugin_name, also setting Config::pidfile and Config::plugin_cache to a sensible value using the Config::plugin_name.

§Examples
let config = Config::new(String::from("great-plugin"));
println!("My pidfile is {:?}", config.pidfile);
Source

pub fn new_daemon(plugin_name: String) -> Self

Create a new Config for a streaming (daemonizing) plugin with defined plugin_name, also setting Config::pidfile and Config::plugin_cache to a sensible value using the Config::plugin_name.

§Examples
let config = Config::new_daemon(String::from("great-plugin"));
println!("My pidfile is {:?}", config.pidfile);

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Config

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Config

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Config

Useful defaults, if possible based on munin environment.

Source§

fn default() -> Self

Set default values, try to read munin environment variables to fill Config::plugin_statedir and Config::dirtyconfig. Config::plugin_statedir falls back to /tmp if no munin environment variables are present.

Source§

impl Hash for Config

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Config

Source§

fn eq(&self, other: &Config) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for Config

Source§

impl StructuralPartialEq for Config

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.