1234567891011121314151617181920212223242526272829303132 |
- 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())
- }
|