rust-metrics

Multi reporter metrics library (carbon, graphite, postgresql, prometheus)

  • Owner: posix4e/rust-metrics
  • Platform:
  • License:: Other
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

This project is stable. New features will be aimed at https://github.com/brayniac/tic. We will only be taking fixes going forward.

rust-metrics

Linux Status
Kanban

Metrics are things you can use to safely & directly store metrics with little overhead. Metrics
can be attached to a registry and that registry can be collected across a system. This registry
also provides reporting services. Current reporters include:

Contact us on #rust-metrics on Mozilla IRC.

...
        let m = StdMeter::new();
        m.mark(

        let c = StdCounter::new();
        c.inc();

        let g = StdGauge::new();
        g.set(2);

        let mut h = Histogram::configure()
            .max_value(100)
            .precision(1)
            .build()
            .unwrap();

        h.increment_by(1, 1).unwrap();

        let mut reporter = CarbonReporter::new("test", "localhost:0".to_string(), "asd.asdf", 5);
        reporter.add("meter1", Metric::Meter(m.clone()));
        reporter.add("counter1", Metric::Counter(c.clone()));
        reporter.add("gauge1", Metric::Gauge(g.clone()));
	// Add a histogram with labels even though they ignored in this reporter
        reporter.addL("histogram", Metric::Histogram(h), Some(HashMap::new()));
        while ... {    c.inc()}
        reporter.stop();

Usage

Add this to your Cargo.toml:
push only

metrics =  { version="0.2.0" }

prometheus pull support

metrics =  { version="0.2.0", features=["prometheus"] }

And add this to your crate root:

extern crate metrics

Provided scripts in bin/

  • build_docker This builds the default docker image
  • generate_pb Generates the prometheus protocol buffer code
  • run_docker This will run the docker container once it's been built (or download the last one i pushed)
  • start_docker Use docker_compose to launch prometheus, carbon/graphite and clients which send them data
  • webserver_with_prometheus Starts a webserver which runs with a prometheus reporter
  • start_prometheus_example Use docker-compose to start a prometheus server & hook it up to webserver_with_prometheus
  • webserver_with_carbon Starts a webserver with a carbon reporter
  • start_carbon_example Use docker-compose to start graphite/carbon/whisper and hook it up to webserver_with_carbon

Many of these will only run if prometheus support is enabled

TBD

Local Development

    cargo build # to build the code
    cargo test # to run the tests

To use prometheus you will might need to read these directions

    cargo build --features "prometheus" # To build code with prometheus support

License

rust-metrics is primarily distributed under the terms of both the MIT license and the
Apache License (Version 2.0).

See LICENSE-APACHE, LICENSE-MIT for details.

Copyright (c) 2016 Alex Newman.

Main metrics

Overview
Name With Ownerposix4e/rust-metrics
Primary LanguageRust
Program languageShell (Language Count: 3)
Platform
License:Other
所有者活动
Created At2016-05-28 07:05:59
Pushed At2018-10-27 18:54:53
Last Commit At2018-10-27 11:54:52
Release Count5
Last Release Name0.2.2 (Posted on )
First Release Namev0.0.2 (Posted on 2015-09-03 14:59:58)
用户参与
Stargazers Count99
Watchers Count4
Fork Count19
Commits Count310
Has Issues Enabled
Issues Count27
Issue Open Count5
Pull Requests Count51
Pull Requests Open Count0
Pull Requests Close Count8
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private