Parcourir la source

Installation and usage.

Richard Crowley il y a 14 ans
Parent
commit
033e0dc4eb
2 fichiers modifiés avec 316 ajouts et 254 suppressions
  1. 31 254
      README.md
  2. 285 0
      memory.md

+ 31 - 254
README.md

@@ -1,277 +1,54 @@
 go-metrics
 ==========
 
-TODO This code is not safe on 32-bit architectures.
+Go port of Coda Hale's Metrics library: <https://github.com/codahale/metrics>.
 
-Memory usage
-------------
-
-(Highly unscientific.)
-
-Command used to gather static memory usage:
+**This code is not safe on 32-bit architectures.**
 
-```sh
-grep ^Vm "/proc/$(ps fax | grep [m]etrics-bench | awk '{print $1}')/status"
-```
+Usage
+-----
 
-Program used to gather baseline memory usage:
+Create and update metrics:
 
 ```go
-package main
+r := metrics.NewRegistry()
 
-import "time"
+c := metrics.NewCounter()
+r.RegisterCounter("foo", c)
+c.Inc(47)
 
-func main() {
-	time.Sleep(600e9)
-}
-```
+g := metrics.NewGauge()
+r.RegisterGauge("bar", g)
+g.Update(47)
 
-Baseline:
+s := metrics.NewExpDecaySample(1028, 0.015)
+//s := metrics.NewUniformSample(1028)
+h := metrics.NewHistogram(s)
+r.RegisterHistogram("baz", h)
+h.Update(47)
 
-```
-VmPeak:    42604 kB
-VmSize:    42604 kB
-VmLck:         0 kB
-VmHWM:      1120 kB
-VmRSS:      1120 kB
-VmData:    35460 kB
-VmStk:       136 kB
-VmExe:      1020 kB
-VmLib:      1848 kB
-VmPTE:        36 kB
-VmSwap:        0 kB
+m := metrics.NewMeter()
+r.RegisterMeter("bang", m)
+m.Mark(47)
 ```
 
-Program used to gather metric memory usage (with other metrics being similar):
+Periodically log every metric in human-readable form to standard error:
 
 ```go
-package main
-
-import (
-	"fmt"
-	"metrics"
-	"time"
-)
-
-func main() {
-	fmt.Sprintf("foo")
-	metrics.NewRegistry()
-	time.Sleep(600e9)
-}
-```
-
-1000 counters registered:
-
-```
-VmPeak:    44016 kB
-VmSize:    44016 kB
-VmLck:         0 kB
-VmHWM:      1928 kB
-VmRSS:      1928 kB
-VmData:    36868 kB
-VmStk:       136 kB
-VmExe:      1024 kB
-VmLib:      1848 kB
-VmPTE:        40 kB
-VmSwap:        0 kB
-```
-
-**1.412 kB virtual, TODO 0.808 kB resident per counter.**
-
-100000 counters registered:
-
-```
-VmPeak:    55024 kB
-VmSize:    55024 kB
-VmLck:         0 kB
-VmHWM:     12440 kB
-VmRSS:     12440 kB
-VmData:    47876 kB
-VmStk:       136 kB
-VmExe:      1024 kB
-VmLib:      1848 kB
-VmPTE:        64 kB
-VmSwap:        0 kB
-```
-
-**0.1242 kB virtual, 0.1132 kB resident per counter.**
-
-1000 gauges registered:
-
-```
-VmPeak:    44012 kB
-VmSize:    44012 kB
-VmLck:         0 kB
-VmHWM:      1928 kB
-VmRSS:      1928 kB
-VmData:    36868 kB
-VmStk:       136 kB
-VmExe:      1020 kB
-VmLib:      1848 kB
-VmPTE:        40 kB
-VmSwap:        0 kB
-```
-
-**1.408 kB virtual, 0.808 kB resident per counter.**
-
-100000 gauges registered:
-
-```
-VmPeak:    55020 kB
-VmSize:    55020 kB
-VmLck:         0 kB
-VmHWM:     12432 kB
-VmRSS:     12432 kB
-VmData:    47876 kB
-VmStk:       136 kB
-VmExe:      1020 kB
-VmLib:      1848 kB
-VmPTE:        60 kB
-VmSwap:        0 kB
-```
-
-**0.12416 kB virtual, 0.11312 resident per gauge.**
-
-1000 histograms with a uniform sample size of 1028:
-
-```
-VmPeak:    72272 kB
-VmSize:    72272 kB
-VmLck:         0 kB
-VmHWM:     16204 kB
-VmRSS:     16204 kB
-VmData:    65100 kB
-VmStk:       136 kB
-VmExe:      1048 kB
-VmLib:      1848 kB
-VmPTE:        80 kB
-VmSwap:        0 kB
+metrics.Log(r, 60, log.New(os.Stderr, "metrics: ", log.Lmicroseconds))
 ```
 
-**29.668 kB virtual, TODO 15.084 resident per histogram.**
+Periodically log every metric in slightly-more-parseable form to syslog:
 
-10000 histograms with a uniform sample size of 1028:
-
-```
-VmPeak:   256912 kB
-VmSize:   256912 kB
-VmLck:         0 kB
-VmHWM:    146204 kB
-VmRSS:    146204 kB
-VmData:   249740 kB
-VmStk:       136 kB
-VmExe:      1048 kB
-VmLib:      1848 kB
-VmPTE:       448 kB
-VmSwap:        0 kB
-```
-
-**21.4308 kB virtual, 14.5084 kB resident per histogram.**
-
-50000 histograms with a uniform sample size of 1028:
-
-```
-VmPeak:   908112 kB
-VmSize:   908112 kB
-VmLck:         0 kB
-VmHWM:    645832 kB
-VmRSS:    645588 kB
-VmData:   900940 kB
-VmStk:       136 kB
-VmExe:      1048 kB
-VmLib:      1848 kB
-VmPTE:      1716 kB
-VmSwap:     1544 kB
-```
-
-**17.31016 kB virtual, 12.88936 kB resident per histogram.**
-
-1000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015:
-
-```
-VmPeak:    62480 kB
-VmSize:    62480 kB
-VmLck:         0 kB
-VmHWM:     11572 kB
-VmRSS:     11572 kB
-VmData:    55308 kB
-VmStk:       136 kB
-VmExe:      1048 kB
-VmLib:      1848 kB
-VmPTE:        64 kB
-VmSwap:        0 kB
-```
-
-**19.876 kB virtual, 10.452 kB resident per histogram.**
-
-10000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015:
-
-```
-VmPeak:   153296 kB
-VmSize:   153296 kB
-VmLck:         0 kB
-VmHWM:    101176 kB
-VmRSS:    101176 kB
-VmData:   146124 kB
-VmStk:       136 kB
-VmExe:      1048 kB
-VmLib:      1848 kB
-VmPTE:       240 kB
-VmSwap:        0 kB
-```
-
-**11.0692 kB virtual, 10.0056 kB resident per histogram.**
-
-50000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015:
-
-```
-VmPeak:   557264 kB
-VmSize:   557264 kB
-VmLck:         0 kB
-VmHWM:    501056 kB
-VmRSS:    501056 kB
-VmData:   550092 kB
-VmStk:       136 kB
-VmExe:      1048 kB
-VmLib:      1848 kB
-VmPTE:      1032 kB
-VmSwap:        0 kB
-```
-
-**10.2932 kB virtual, 9.99872 kB resident per histogram.**
-
-1000 meters:
-
-```
-VmPeak:    74504 kB
-VmSize:    74504 kB
-VmLck:         0 kB
-VmHWM:     24124 kB
-VmRSS:     24124 kB
-VmData:    67340 kB
-VmStk:       136 kB
-VmExe:      1040 kB
-VmLib:      1848 kB
-VmPTE:        92 kB
-VmSwap:        0 kB
+```go
+w, err := syslog.Dial("unixgram", "/dev/log", syslog.LOG_INFO, "metrics")
+if nil != err { log.Fatalln(err) }
+metrics.Syslog(r, 60, w)
 ```
 
-**31.9 kB virtual, 23.004 kB resident per meter.**
-
-10000 meters:
+Installation
+------------
 
+```sh
+goinstall github.com/rcrowley/go-metrics
 ```
-VmPeak:   278920 kB
-VmSize:   278920 kB
-VmLck:         0 kB
-VmHWM:    227300 kB
-VmRSS:    227300 kB
-VmData:   271756 kB
-VmStk:       136 kB
-VmExe:      1040 kB
-VmLib:      1848 kB
-VmPTE:       488 kB
-VmSwap:        0 kB
-```
-
-**23.6316 kB virtual, 22.618 kB resident per meter.**

+ 285 - 0
memory.md

@@ -0,0 +1,285 @@
+Memory usage
+============
+
+(Highly unscientific.)
+
+Command used to gather static memory usage:
+
+```sh
+grep ^Vm "/proc/$(ps fax | grep [m]etrics-bench | awk '{print $1}')/status"
+```
+
+Program used to gather baseline memory usage:
+
+```go
+package main
+
+import "time"
+
+func main() {
+	time.Sleep(600e9)
+}
+```
+
+Baseline
+--------
+
+```
+VmPeak:    42604 kB
+VmSize:    42604 kB
+VmLck:         0 kB
+VmHWM:      1120 kB
+VmRSS:      1120 kB
+VmData:    35460 kB
+VmStk:       136 kB
+VmExe:      1020 kB
+VmLib:      1848 kB
+VmPTE:        36 kB
+VmSwap:        0 kB
+```
+
+Program used to gather metric memory usage (with other metrics being similar):
+
+```go
+package main
+
+import (
+	"fmt"
+	"metrics"
+	"time"
+)
+
+func main() {
+	fmt.Sprintf("foo")
+	metrics.NewRegistry()
+	time.Sleep(600e9)
+}
+```
+
+1000 counters registered
+------------------------
+
+```
+VmPeak:    44016 kB
+VmSize:    44016 kB
+VmLck:         0 kB
+VmHWM:      1928 kB
+VmRSS:      1928 kB
+VmData:    36868 kB
+VmStk:       136 kB
+VmExe:      1024 kB
+VmLib:      1848 kB
+VmPTE:        40 kB
+VmSwap:        0 kB
+```
+
+**1.412 kB virtual, TODO 0.808 kB resident per counter.**
+
+100000 counters registered
+--------------------------
+
+```
+VmPeak:    55024 kB
+VmSize:    55024 kB
+VmLck:         0 kB
+VmHWM:     12440 kB
+VmRSS:     12440 kB
+VmData:    47876 kB
+VmStk:       136 kB
+VmExe:      1024 kB
+VmLib:      1848 kB
+VmPTE:        64 kB
+VmSwap:        0 kB
+```
+
+**0.1242 kB virtual, 0.1132 kB resident per counter.**
+
+1000 gauges registered
+----------------------
+
+```
+VmPeak:    44012 kB
+VmSize:    44012 kB
+VmLck:         0 kB
+VmHWM:      1928 kB
+VmRSS:      1928 kB
+VmData:    36868 kB
+VmStk:       136 kB
+VmExe:      1020 kB
+VmLib:      1848 kB
+VmPTE:        40 kB
+VmSwap:        0 kB
+```
+
+**1.408 kB virtual, 0.808 kB resident per counter.**
+
+100000 gauges registered
+------------------------
+
+```
+VmPeak:    55020 kB
+VmSize:    55020 kB
+VmLck:         0 kB
+VmHWM:     12432 kB
+VmRSS:     12432 kB
+VmData:    47876 kB
+VmStk:       136 kB
+VmExe:      1020 kB
+VmLib:      1848 kB
+VmPTE:        60 kB
+VmSwap:        0 kB
+```
+
+**0.12416 kB virtual, 0.11312 resident per gauge.**
+
+1000 histograms with a uniform sample size of 1028
+--------------------------------------------------
+
+```
+VmPeak:    72272 kB
+VmSize:    72272 kB
+VmLck:         0 kB
+VmHWM:     16204 kB
+VmRSS:     16204 kB
+VmData:    65100 kB
+VmStk:       136 kB
+VmExe:      1048 kB
+VmLib:      1848 kB
+VmPTE:        80 kB
+VmSwap:        0 kB
+```
+
+**29.668 kB virtual, TODO 15.084 resident per histogram.**
+
+10000 histograms with a uniform sample size of 1028
+---------------------------------------------------
+
+```
+VmPeak:   256912 kB
+VmSize:   256912 kB
+VmLck:         0 kB
+VmHWM:    146204 kB
+VmRSS:    146204 kB
+VmData:   249740 kB
+VmStk:       136 kB
+VmExe:      1048 kB
+VmLib:      1848 kB
+VmPTE:       448 kB
+VmSwap:        0 kB
+```
+
+**21.4308 kB virtual, 14.5084 kB resident per histogram.**
+
+50000 histograms with a uniform sample size of 1028
+---------------------------------------------------
+
+```
+VmPeak:   908112 kB
+VmSize:   908112 kB
+VmLck:         0 kB
+VmHWM:    645832 kB
+VmRSS:    645588 kB
+VmData:   900940 kB
+VmStk:       136 kB
+VmExe:      1048 kB
+VmLib:      1848 kB
+VmPTE:      1716 kB
+VmSwap:     1544 kB
+```
+
+**17.31016 kB virtual, 12.88936 kB resident per histogram.**
+
+1000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015
+-------------------------------------------------------------------------------------
+
+```
+VmPeak:    62480 kB
+VmSize:    62480 kB
+VmLck:         0 kB
+VmHWM:     11572 kB
+VmRSS:     11572 kB
+VmData:    55308 kB
+VmStk:       136 kB
+VmExe:      1048 kB
+VmLib:      1848 kB
+VmPTE:        64 kB
+VmSwap:        0 kB
+```
+
+**19.876 kB virtual, 10.452 kB resident per histogram.**
+
+10000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015
+--------------------------------------------------------------------------------------
+
+```
+VmPeak:   153296 kB
+VmSize:   153296 kB
+VmLck:         0 kB
+VmHWM:    101176 kB
+VmRSS:    101176 kB
+VmData:   146124 kB
+VmStk:       136 kB
+VmExe:      1048 kB
+VmLib:      1848 kB
+VmPTE:       240 kB
+VmSwap:        0 kB
+```
+
+**11.0692 kB virtual, 10.0056 kB resident per histogram.**
+
+50000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015
+--------------------------------------------------------------------------------------
+
+```
+VmPeak:   557264 kB
+VmSize:   557264 kB
+VmLck:         0 kB
+VmHWM:    501056 kB
+VmRSS:    501056 kB
+VmData:   550092 kB
+VmStk:       136 kB
+VmExe:      1048 kB
+VmLib:      1848 kB
+VmPTE:      1032 kB
+VmSwap:        0 kB
+```
+
+**10.2932 kB virtual, 9.99872 kB resident per histogram.**
+
+1000 meters
+-----------
+
+```
+VmPeak:    74504 kB
+VmSize:    74504 kB
+VmLck:         0 kB
+VmHWM:     24124 kB
+VmRSS:     24124 kB
+VmData:    67340 kB
+VmStk:       136 kB
+VmExe:      1040 kB
+VmLib:      1848 kB
+VmPTE:        92 kB
+VmSwap:        0 kB
+```
+
+**31.9 kB virtual, 23.004 kB resident per meter.**
+
+10000 meters
+------------
+
+```
+VmPeak:   278920 kB
+VmSize:   278920 kB
+VmLck:         0 kB
+VmHWM:    227300 kB
+VmRSS:    227300 kB
+VmData:   271756 kB
+VmStk:       136 kB
+VmExe:      1040 kB
+VmLib:      1848 kB
+VmPTE:       488 kB
+VmSwap:        0 kB
+```
+
+**23.6316 kB virtual, 22.618 kB resident per meter.**