Skip to content

an2deg/go-metrics

This branch is 154 commits behind rcrowley/go-metrics:master.

Folders and files

NameName
Last commit message
Last commit date
Mar 22, 2014
Jul 26, 2014
Nov 5, 2014
Mar 22, 2014
Aug 9, 2013
Feb 23, 2012
Aug 2, 2014
Mar 28, 2014
Jan 7, 2014
Aug 3, 2014
Oct 31, 2013
Jan 25, 2014
Oct 17, 2013
Mar 28, 2014
Mar 22, 2014
Mar 22, 2014
Jan 7, 2014
Nov 8, 2014
Jul 7, 2014
Jan 7, 2014
Oct 4, 2014
Jan 14, 2014
Jul 28, 2014
Jun 6, 2014
Aug 3, 2014
Nov 21, 2011
May 22, 2014
Mar 30, 2014
Sep 13, 2013
Mar 22, 2014
Nov 8, 2014
Apr 18, 2014
Nov 8, 2014
Apr 24, 2014
Sep 26, 2014
Oct 15, 2014
Oct 15, 2014
Mar 22, 2014
Sep 25, 2014
May 19, 2014
Aug 3, 2014
Oct 4, 2014
Jan 14, 2014
Aug 3, 2014
Jul 26, 2014

Repository files navigation

go-metrics

Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics.

Documentation: http://godoc.org/github.com/rcrowley/go-metrics.

Usage

Create and update metrics:

c := metrics.NewCounter()
metrics.Register("foo", c)
c.Inc(47)

g := metrics.NewGauge()
metrics.Register("bar", g)
g.Update(47)

s := metrics.NewExpDecaySample(1028, 0.015) // or metrics.NewUniformSample(1028)
h := metrics.NewHistogram(s)
metrics.Register("baz", h)
h.Update(47)

m := metrics.NewMeter()
metrics.Register("quux", m)
m.Mark(47)

t := metrics.NewTimer()
metrics.Register("bang", t)
t.Time(func() {})
t.Update(47)

Periodically log every metric in human-readable form to standard error:

go metrics.Log(metrics.DefaultRegistry, 60e9, log.New(os.Stderr, "metrics: ", log.Lmicroseconds))

Periodically log every metric in slightly-more-parseable form to syslog:

w, _ := syslog.Dial("unixgram", "/dev/log", syslog.LOG_INFO, "metrics")
go metrics.Syslog(metrics.DefaultRegistry, 60e9, w)

Periodically emit every metric to Graphite:

addr, _ := net.ResolveTCPAddr("tcp", "127.0.0.1:2003")
go metrics.Graphite(metrics.DefaultRegistry, 10e9, "metrics", addr)

Periodically emit every metric into InfluxDB:

import "github.com/rcrowley/go-metrics/influxdb"

go influxdb.Influxdb(metrics.DefaultRegistry, 10e9, &influxdb.Config{
    Host:     "127.0.0.1:8086",
    Database: "metrics",
    Username: "test",
    Password: "test",
})

Periodically upload every metric to Librato:

import "github.com/rcrowley/go-metrics/librato"

go librato.Librato(metrics.DefaultRegistry,
    10e9,                  // interval
    "[email protected]", // account owner email address
    "token",               // Librato API token
    "hostname",            // source
    []float64{0.95},       // precentiles to send
    time.Millisecond,      // time unit
)

Periodically emit every metric to StatHat:

import "github.com/rcrowley/go-metrics/stathat"

go stathat.Stathat(metrics.DefaultRegistry, 10e9, "[email protected]")

Installation

go get github.com/rcrowley/go-metrics

StatHat support additionally requires their Go client:

go get github.com/stathat/go

About

Go port of Coda Hale's Metrics library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%