aboutsummaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/github.com/rcrowley/go-metrics/stathat
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2015-06-22 17:00:55 +0800
committerPéter Szilágyi <peterke@gmail.com>2015-06-24 23:34:04 +0800
commit7bd71fa80071f86ca86ed7ef64ab51c88cabe7d4 (patch)
tree9f770d2f59ca1a3053ebf7aa7921a122aa3bc388 /Godeps/_workspace/src/github.com/rcrowley/go-metrics/stathat
parent7f92e708c504e1c4a7382c68b5a4ed68db9c8deb (diff)
downloadgo-tangerine-7bd71fa80071f86ca86ed7ef64ab51c88cabe7d4.tar
go-tangerine-7bd71fa80071f86ca86ed7ef64ab51c88cabe7d4.tar.gz
go-tangerine-7bd71fa80071f86ca86ed7ef64ab51c88cabe7d4.tar.bz2
go-tangerine-7bd71fa80071f86ca86ed7ef64ab51c88cabe7d4.tar.lz
go-tangerine-7bd71fa80071f86ca86ed7ef64ab51c88cabe7d4.tar.xz
go-tangerine-7bd71fa80071f86ca86ed7ef64ab51c88cabe7d4.tar.zst
go-tangerine-7bd71fa80071f86ca86ed7ef64ab51c88cabe7d4.zip
godeps: pull in go-metrics
Diffstat (limited to 'Godeps/_workspace/src/github.com/rcrowley/go-metrics/stathat')
-rw-r--r--Godeps/_workspace/src/github.com/rcrowley/go-metrics/stathat/stathat.go69
1 files changed, 69 insertions, 0 deletions
diff --git a/Godeps/_workspace/src/github.com/rcrowley/go-metrics/stathat/stathat.go b/Godeps/_workspace/src/github.com/rcrowley/go-metrics/stathat/stathat.go
new file mode 100644
index 000000000..0afcb4848
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/rcrowley/go-metrics/stathat/stathat.go
@@ -0,0 +1,69 @@
+// Metrics output to StatHat.
+package stathat
+
+import (
+ "github.com/rcrowley/go-metrics"
+ "github.com/stathat/go"
+ "log"
+ "time"
+)
+
+func Stathat(r metrics.Registry, d time.Duration, userkey string) {
+ for {
+ if err := sh(r, userkey); nil != err {
+ log.Println(err)
+ }
+ time.Sleep(d)
+ }
+}
+
+func sh(r metrics.Registry, userkey string) error {
+ r.Each(func(name string, i interface{}) {
+ switch metric := i.(type) {
+ case metrics.Counter:
+ stathat.PostEZCount(name, userkey, int(metric.Count()))
+ case metrics.Gauge:
+ stathat.PostEZValue(name, userkey, float64(metric.Value()))
+ case metrics.GaugeFloat64:
+ stathat.PostEZValue(name, userkey, float64(metric.Value()))
+ case metrics.Histogram:
+ h := metric.Snapshot()
+ ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999})
+ stathat.PostEZCount(name+".count", userkey, int(h.Count()))
+ stathat.PostEZValue(name+".min", userkey, float64(h.Min()))
+ stathat.PostEZValue(name+".max", userkey, float64(h.Max()))
+ stathat.PostEZValue(name+".mean", userkey, float64(h.Mean()))
+ stathat.PostEZValue(name+".std-dev", userkey, float64(h.StdDev()))
+ stathat.PostEZValue(name+".50-percentile", userkey, float64(ps[0]))
+ stathat.PostEZValue(name+".75-percentile", userkey, float64(ps[1]))
+ stathat.PostEZValue(name+".95-percentile", userkey, float64(ps[2]))
+ stathat.PostEZValue(name+".99-percentile", userkey, float64(ps[3]))
+ stathat.PostEZValue(name+".999-percentile", userkey, float64(ps[4]))
+ case metrics.Meter:
+ m := metric.Snapshot()
+ stathat.PostEZCount(name+".count", userkey, int(m.Count()))
+ stathat.PostEZValue(name+".one-minute", userkey, float64(m.Rate1()))
+ stathat.PostEZValue(name+".five-minute", userkey, float64(m.Rate5()))
+ stathat.PostEZValue(name+".fifteen-minute", userkey, float64(m.Rate15()))
+ stathat.PostEZValue(name+".mean", userkey, float64(m.RateMean()))
+ case metrics.Timer:
+ t := metric.Snapshot()
+ ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999})
+ stathat.PostEZCount(name+".count", userkey, int(t.Count()))
+ stathat.PostEZValue(name+".min", userkey, float64(t.Min()))
+ stathat.PostEZValue(name+".max", userkey, float64(t.Max()))
+ stathat.PostEZValue(name+".mean", userkey, float64(t.Mean()))
+ stathat.PostEZValue(name+".std-dev", userkey, float64(t.StdDev()))
+ stathat.PostEZValue(name+".50-percentile", userkey, float64(ps[0]))
+ stathat.PostEZValue(name+".75-percentile", userkey, float64(ps[1]))
+ stathat.PostEZValue(name+".95-percentile", userkey, float64(ps[2]))
+ stathat.PostEZValue(name+".99-percentile", userkey, float64(ps[3]))
+ stathat.PostEZValue(name+".999-percentile", userkey, float64(ps[4]))
+ stathat.PostEZValue(name+".one-minute", userkey, float64(t.Rate1()))
+ stathat.PostEZValue(name+".five-minute", userkey, float64(t.Rate5()))
+ stathat.PostEZValue(name+".fifteen-minute", userkey, float64(t.Rate15()))
+ stathat.PostEZValue(name+".mean-rate", userkey, float64(t.RateMean()))
+ }
+ })
+ return nil
+}