Bosun Emitter

Linux & OS X Build Status Windows Build status MIT licensed

A command line tool and Rust library to emit metric data to Bosun.

Overview

Bosun is an open-source, MIT licensed, monitoring and alerting system by Stack Exchange. It has an expressive domain specific language for evaluating alerts and creating detailed notifications. It also lets you test your alerts against history for a faster development experience. [1]

Bosun receives metric data mostly via scollector which is Boson's agent running on each monitored host. scollector runs build-in as well as external collectors periodically to collect and transmit metrics on its hosts.

While it is easy to create external collectors suitable for most needs, there are cases in which sending a single, individual metric datum may be helpful. Such cases may comprise any individually run program such as a Cron job for backups or in general any other shell script. Further, it might be helpful to send metric data from your own application.

bosun_emitter is a library that makes it easy to send metric data and corresponding meta data describing the metric. Further, this crate contains a CLI standalone binary called emit_bosun that may be used on the command line or from any shell script to send a single metric datum.

Library

Please see the Rustdoc for documentation of the latest build. You can also find a crate on crates.io and via Cargo.

Command Line Tool

Help

``` Emit a Bosun

USAGE: emit_bosun [FLAGS] [OPTIONS]

FLAGS: -h, --help Prints help information --show-config Prints config -V, --version Prints version information --verbose Enables verbose output

OPTIONS: -c, --config Sets a custom config file -d, --description Sets metric description --host Sets Bosun server connection parameters --hostname Sets hostname -m, --metric Sets metric name -r, --rate Sets rate type [values: gauge, counter, rate] -t, --tags Sets metric value unit -v, --value Sets metric value

Two modes are supported, i.e., sending a datum with meta data or sending only meta data. The modes are controlled whether a value --value is passed or not. Please mind that in both cases the meta data is required. ```

Example

bash emit_bosun -c examples/scollector.toml --host localhost:8070 --tags 'key1=value1,key2=value2' \ --metric lukas.test --value 10 \ --rate gauge --unit Tests -d "Amount of Lukas Tests" \ --verbose

Releases

Source Code

You can find the source code for each release on the GitHub Release page.

Binary

Travi CI creates Ubuntu Trusty packages for emit_bosun for each release. Please see the Repository for details.

Cargo

Rust crate releases can be found on Crates.io.

Contributing

I'll be happy about suggestions and pull requests.