github.com/linapex/ethereum-dpos-chinese@v0.0.0-20190316121959-b78b3a4a1ece/metrics/json.go (about) 1 2 //<developer> 3 // <name>linapex 曹一峰</name> 4 // <email>linapex@163.com</email> 5 // <wx>superexc</wx> 6 // <qqgroup>128148617</qqgroup> 7 // <url>https://jsq.ink</url> 8 // <role>pku engineer</role> 9 // <date>2019-03-16 12:09:42</date> 10 //</624342649364549632> 11 12 package metrics 13 14 import ( 15 "encoding/json" 16 "io" 17 "time" 18 ) 19 20 //marshaljson返回一个字节片,其中包含所有 21 //注册表中的指标。 22 func (r *StandardRegistry) MarshalJSON() ([]byte, error) { 23 return json.Marshal(r.GetAll()) 24 } 25 26 //WRITEJSON定期将给定注册表中的度量值写入 27 //指定IO.Writer为JSON。 28 func WriteJSON(r Registry, d time.Duration, w io.Writer) { 29 for range time.Tick(d) { 30 WriteJSONOnce(r, w) 31 } 32 } 33 34 //writejsonce将给定注册表中的度量值写入指定的 35 //写JSON。 36 func WriteJSONOnce(r Registry, w io.Writer) { 37 json.NewEncoder(w).Encode(r) 38 } 39 40 func (p *PrefixedRegistry) MarshalJSON() ([]byte, error) { 41 return json.Marshal(p.GetAll()) 42 } 43