mackerel_plugin_uptime 0.1.0

uptime plugin for Mackerel
Documentation
#[macro_use]
extern crate mackerel_plugin;
extern crate uptime_lib;

use std::collections::HashMap;
use mackerel_plugin::*;

pub struct UptimePlugin {}

impl Plugin for UptimePlugin {
    fn fetch_metrics(&self) -> Result<HashMap<String, f64>, String> {
        let mut metrics = HashMap::new();
        let uptime = uptime_lib::get()?;
        metrics.insert("uptime.uptime".to_string(), uptime.num_milliseconds() as f64 / 1000.0);
        Ok(metrics)
    }

    fn graph_definition(&self) -> Vec<Graph> {
        vec![
            graph! {
                name: "uptime",
                label: "Uptime",
                unit: "integer",
                metrics: [
                    { name: "uptime", label: "uptime (sec)" },
                ]
            },
        ]
    }
}