Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/itchyny/mackerel-plugin-rs

Mackerel plugin helper library for Rust
https://github.com/itchyny/mackerel-plugin-rs

mackerel mackerel-plugin rust rust-library

Last synced: about 2 months ago
JSON representation

Mackerel plugin helper library for Rust

Awesome Lists containing this project

README

        

# mackerel-plugin-rs
[![CI Status](https://github.com/itchyny/mackerel-plugin-rs/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/itchyny/mackerel-plugin-rs/actions?query=branch:main)
[![crates.io](https://img.shields.io/crates/v/mackerel_plugin.svg)](https://crates.io/crates/mackerel_plugin)
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/itchyny/mackerel-plugin-rs/blob/main/LICENSE)

ー Mackerel plugin helper library for Rust ー

## Plugin samples
Plugins using this library.

- [mackerel-plugin-loadavg](https://github.com/itchyny/mackerel-plugin-loadavg)
- [mackerel-plugin-uptime](https://github.com/itchyny/mackerel-plugin-uptime)
- [mackerel-plugin-ntp](https://github.com/itchyny/mackerel-plugin-ntp)
- [mackerel-plugin-dice](https://github.com/itchyny/mackerel-plugin-dice)

## Example
```rust
use mackerel_plugin::*;
use std::collections::HashMap;

struct DicePlugin {}

impl Plugin for DicePlugin {
fn fetch_metrics(&self) -> Result, String> {
Ok(HashMap::from([
("dice.d6".to_owned(), (rand::random::() % 6 + 1) as f64),
("dice.d20".to_owned(), (rand::random::() % 20 + 1) as f64),
]))
}

fn graph_definition(&self) -> Vec {
vec![
graph! {
name: "dice",
label: "My Dice",
unit: "integer",
metrics: [
{ name: "d6", label: "Die 6" },
{ name: "d20", label: "Die 20" },
],
},
]
}
}

fn main() {
if let Err(err) = (DicePlugin {}).run() {
eprintln!("mackerel-plugin-dice: {}", err);
std::process::exit(1);
}
}
```

## Author
itchyny (https://github.com/itchyny)

## License
This software is released under the MIT License, see LICENSE.