| package metrics |
| |
| import ( |
| "encoding/json" |
| "io" |
| "time" |
| ) |
| |
| // MarshalJSON returns a byte slice containing a JSON representation of all |
| // the metrics in the Registry. |
| func (r *StandardRegistry) MarshalJSON() ([]byte, error) { |
| return json.Marshal(r.GetAll()) |
| } |
| |
| // WriteJSON writes metrics from the given registry periodically to the |
| // specified io.Writer as JSON. |
| func WriteJSON(r Registry, d time.Duration, w io.Writer) { |
| for _ = range time.Tick(d) { |
| WriteJSONOnce(r, w) |
| } |
| } |
| |
| // WriteJSONOnce writes metrics from the given registry to the specified |
| // io.Writer as JSON. |
| func WriteJSONOnce(r Registry, w io.Writer) { |
| json.NewEncoder(w).Encode(r) |
| } |
| |
| func (p *PrefixedRegistry) MarshalJSON() ([]byte, error) { |
| return json.Marshal(p.GetAll()) |
| } |