aboutsummaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/github.com/rcrowley/go-metrics/cmd/metrics-example/metrics-example.go
diff options
context:
space:
mode:
Diffstat (limited to 'Godeps/_workspace/src/github.com/rcrowley/go-metrics/cmd/metrics-example/metrics-example.go')
-rw-r--r--Godeps/_workspace/src/github.com/rcrowley/go-metrics/cmd/metrics-example/metrics-example.go154
1 files changed, 154 insertions, 0 deletions
diff --git a/Godeps/_workspace/src/github.com/rcrowley/go-metrics/cmd/metrics-example/metrics-example.go b/Godeps/_workspace/src/github.com/rcrowley/go-metrics/cmd/metrics-example/metrics-example.go
new file mode 100644
index 000000000..66f42c046
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/rcrowley/go-metrics/cmd/metrics-example/metrics-example.go
@@ -0,0 +1,154 @@
+package main
+
+import (
+ "errors"
+ "github.com/rcrowley/go-metrics"
+ // "github.com/rcrowley/go-metrics/stathat"
+ "log"
+ "math/rand"
+ "os"
+ // "syslog"
+ "time"
+)
+
+const fanout = 10
+
+func main() {
+
+ r := metrics.NewRegistry()
+
+ c := metrics.NewCounter()
+ r.Register("foo", c)
+ for i := 0; i < fanout; i++ {
+ go func() {
+ for {
+ c.Dec(19)
+ time.Sleep(300e6)
+ }
+ }()
+ go func() {
+ for {
+ c.Inc(47)
+ time.Sleep(400e6)
+ }
+ }()
+ }
+
+ g := metrics.NewGauge()
+ r.Register("bar", g)
+ for i := 0; i < fanout; i++ {
+ go func() {
+ for {
+ g.Update(19)
+ time.Sleep(300e6)
+ }
+ }()
+ go func() {
+ for {
+ g.Update(47)
+ time.Sleep(400e6)
+ }
+ }()
+ }
+
+ gf := metrics.NewGaugeFloat64()
+ r.Register("barfloat64", gf)
+ for i := 0; i < fanout; i++ {
+ go func() {
+ for {
+ g.Update(19.0)
+ time.Sleep(300e6)
+ }
+ }()
+ go func() {
+ for {
+ g.Update(47.0)
+ time.Sleep(400e6)
+ }
+ }()
+ }
+
+ hc := metrics.NewHealthcheck(func(h metrics.Healthcheck) {
+ if 0 < rand.Intn(2) {
+ h.Healthy()
+ } else {
+ h.Unhealthy(errors.New("baz"))
+ }
+ })
+ r.Register("baz", hc)
+
+ s := metrics.NewExpDecaySample(1028, 0.015)
+ //s := metrics.NewUniformSample(1028)
+ h := metrics.NewHistogram(s)
+ r.Register("bang", h)
+ for i := 0; i < fanout; i++ {
+ go func() {
+ for {
+ h.Update(19)
+ time.Sleep(300e6)
+ }
+ }()
+ go func() {
+ for {
+ h.Update(47)
+ time.Sleep(400e6)
+ }
+ }()
+ }
+
+ m := metrics.NewMeter()
+ r.Register("quux", m)
+ for i := 0; i < fanout; i++ {
+ go func() {
+ for {
+ m.Mark(19)
+ time.Sleep(300e6)
+ }
+ }()
+ go func() {
+ for {
+ m.Mark(47)
+ time.Sleep(400e6)
+ }
+ }()
+ }
+
+ t := metrics.NewTimer()
+ r.Register("hooah", t)
+ for i := 0; i < fanout; i++ {
+ go func() {
+ for {
+ t.Time(func() { time.Sleep(300e6) })
+ }
+ }()
+ go func() {
+ for {
+ t.Time(func() { time.Sleep(400e6) })
+ }
+ }()
+ }
+
+ metrics.RegisterDebugGCStats(r)
+ go metrics.CaptureDebugGCStats(r, 5e9)
+
+ metrics.RegisterRuntimeMemStats(r)
+ go metrics.CaptureRuntimeMemStats(r, 5e9)
+
+ metrics.Log(r, 60e9, log.New(os.Stderr, "metrics: ", log.Lmicroseconds))
+
+ /*
+ w, err := syslog.Dial("unixgram", "/dev/log", syslog.LOG_INFO, "metrics")
+ if nil != err { log.Fatalln(err) }
+ metrics.Syslog(r, 60e9, w)
+ */
+
+ /*
+ addr, _ := net.ResolveTCPAddr("tcp", "127.0.0.1:2003")
+ metrics.Graphite(r, 10e9, "metrics", addr)
+ */
+
+ /*
+ stathat.Stathat(r, 10e9, "example@example.com")
+ */
+
+}