Нет описания

Richard Crowley eeb9bcd8db Close Graphite connections. 12 лет назад
cmd 0c73e02247 Fix #12: switch to Go 1 standard time.Duration. 12 лет назад
.gitignore af31e2573f Alphabetical order. 14 лет назад
LICENSE cf3de86166 Updated docs, deleted Makefiles. 14 лет назад
README.md d7a299ba62 Update docs. 12 лет назад
counter.go 07ad690f21 Interface checks all over. 13 лет назад
counter_test.go 4461e83a4e Cleanup imports. 14 лет назад
debug.go 0c73e02247 Fix #12: switch to Go 1 standard time.Duration. 12 лет назад
ewma.go 07ad690f21 Interface checks all over. 13 лет назад
ewma_test.go 15d638721f gofmt 13 лет назад
gauge.go 07ad690f21 Interface checks all over. 13 лет назад
gauge_test.go 4461e83a4e Cleanup imports. 14 лет назад
graphite.go eeb9bcd8db Close Graphite connections. 12 лет назад
healthcheck.go 07ad690f21 Interface checks all over. 13 лет назад
histogram.go 07ad690f21 Interface checks all over. 13 лет назад
histogram_test.go 15d638721f gofmt 13 лет назад
json.go 0c73e02247 Fix #12: switch to Go 1 standard time.Duration. 12 лет назад
log.go 0c73e02247 Fix #12: switch to Go 1 standard time.Duration. 12 лет назад
memory.md 033e0dc4eb Installation and usage. 14 лет назад
meter.go 07ad690f21 Interface checks all over. 13 лет назад
meter_test.go 4461e83a4e Cleanup imports. 14 лет назад
metrics.go f7cf4d7405 Initial import. 14 лет назад
registry.go 603c96db48 go fmt 12 лет назад
runtime.go 0c73e02247 Fix #12: switch to Go 1 standard time.Duration. 12 лет назад
sample.go 07ad690f21 Interface checks all over. 13 лет назад
sample_test.go ef6ff7cde4 Fix bug that ignores one sample in UniformSample 13 лет назад
syslog.go 0c73e02247 Fix #12: switch to Go 1 standard time.Duration. 12 лет назад
timer.go 07ad690f21 Interface checks all over. 13 лет назад
timer_test.go e0ec3c8081 Add UpdateSince for use with defer. 13 лет назад

README.md

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)

Installation

go get github.com/rcrowley/go-metrics