Switch logo, shields on one line

This commit is contained in:
Francis Lalonde 2018-09-19 16:54:56 -04:00
parent 0293b8b826
commit 8f9a2b8885
1 changed files with 12 additions and 14 deletions

View File

@ -1,16 +1,15 @@
# dipstick
A configurable structured metrics library for Rust applications.
A configurable structured metrics library for Rust applications.
Like logging frameworks but with counters, markers, gauges and timers.
[![crates.io](https://img.shields.io/crates/v/dipstick.svg)](https://crates.io/crates/dipstick)
[![docs.rs](https://docs.rs/dipstick/badge.svg)](https://docs.rs/dipstick)
[![downloads](https://img.shields.io/crates/d/dipstick.svg)](https://crates.io/crates/dipstick)
[![Build Status](https://travis-ci.org/fralalonde/dipstick.svg?branch=master)](https://travis-ci.org/fralalonde/dipstick)
[![license-mit](http://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/fralalonde/dipstick/blob/master/LICENSE-MIT)
[![license-apache](http://img.shields.io/badge/license-APACHE-blue.svg)](https://github.com/fralalonde/dipstick/blob/master/LICENSE-APACHE)
[![Join the chat at https://gitter.im/fralalonde/dipstick](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/fralalonde/dipstick?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Coverage Status](https://coveralls.io/repos/fralalonde/dipstick/badge.svg?branch=master)](https://coveralls.io/r/fralalonde/dipstick?branch=master)
@ -22,26 +21,25 @@ As such, it strives to offer:
- the best performance with less impact on applications
- the greatest choice of outputs to popular metrics systems
Dipstick builds on stable Rust with minimal, feature-gated dependencies.
For convenience, dipstick builds on stable Rust with minimal, feature-gated dependencies.
## Features
Because dipstick is packaged as a toolkit,
applications configure it to suit their needs.
applications configure it to suit their needs.
Dipstick-enabled apps _can_:
- Send metrics to console, log, statsd, graphite or prometheus (one or many)
- Serve metrics over HTTP
- Locally aggregate metrics values
- Publish aggregated metrics, on schedule or programmatically
- Locally aggregate the count, sum, mean, min, max and rate of metric values
- Publish aggregated metrics, on schedule or programmatically
- Customize output statistics and formatting
- Define global or scoped (e.g. per request) metrics
- Statistically sample metrics (statsd)
- Choose between sync or async operation
- Choose between buffered or immediate output
- Switch between metric backends at runtime
- Switch between metric backends at runtime
### Non-goals
By design, dipstick will not
@ -49,14 +47,14 @@ By design, dipstick will not
- plot graphs
- send alerts
- track histograms
These are all best done by downstream software,
such as timeseries visualization and monitoring tools.
such as timeseries visualization and monitoring tools.
## Show me the code!
Here's a basic aggregating & auto-publish counter metric:
```$rust,skt-run
let bucket = Bucket::new();
bucket.set_target(Text::output(io::stdout()));
@ -75,7 +73,7 @@ metrics! { METRICS = "my_app" =>
fn main() {
METRICS.set_target(Graphite::output("graphite.com:2003").unwrap());
COUNTER.count(32);
}
}
```
For sample applications see the [examples](https://github.com/fralalonde/dipstick/tree/master/examples).