A command line tool and Rust library to emit metric data to Bosun.
Rust
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
src
tests
.appveyor.yml
.gitignore
.travis.yml
Cargo.toml
LICENSE
README.md

README.md

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 <FILE>                         Sets a custom config file
    -d, --description <DESCRIPTION>             Sets metric description
        --host <HOST:PORT>                      Sets Bosun server connection parameters
        --hostname <HOSTNAME>                   Sets hostname
    -m, --metric <METRIC NAME>                  Sets metric name
    -r, --rate <RATE>                           Sets rate type [values: gauge, counter, rate]
    -t, --tags <KEY1=VALUE1,KEY2=VALUE2,...>    Sets tags
    -u, --unit <UNIT>                           Sets metric value unit
    -v, --value <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

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.