mirror of https://github.com/fralalonde/dipstick
Switch logo, shields on one line
This commit is contained in:
parent
0293b8b826
commit
8f9a2b8885
26
README.md
26
README.md
|
@ -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).
|
||||
|
|
Loading…
Reference in New Issue