Documentation
¶
Index ¶
- Variables
- type Counter
- type Gauge
- type Histogram
- type Histograms
- type Iterable
- type Rate
- type Rates
- type Registry
- func (r *Registry) Add(format string, item Iterable) error
- func (r *Registry) Counter(name string) *Counter
- func (r *Registry) Each(f func(name string, val interface{}))
- func (r *Registry) Gauge(name string) *Gauge
- func (r *Registry) Histogram(name string, duration time.Duration, maxVal int64, sigFigs int) *Histogram
- func (r *Registry) Latency(prefix string) Histograms
- func (r *Registry) MarshalJSON() ([]byte, error)
- func (r *Registry) MustAdd(format string, item Iterable)
- func (r *Registry) Rate(name string, timescale time.Duration) *Rate
- func (r *Registry) Rates(prefix string) Rates
- type TimeScale
Constants ¶
This section is empty.
Variables ¶
var DefaultTimeScales = []TimeScale{scale1M, scale10M, scale1H}
DefaultTimeScales are the durations used for helpers which create windowed metrics in bulk (such as Latency or Rates).
Functions ¶
This section is empty.
Types ¶
type Counter ¶
type Counter struct {
metrics.Counter
}
A Counter holds a single mutable atomic value.
func (*Counter) MarshalJSON ¶
MarshalJSON marshals to JSON.
type Gauge ¶
type Gauge struct {
metrics.Gauge
}
A Gauge atomically stores a single value.
func (*Gauge) MarshalJSON ¶
MarshalJSON marshals to JSON.
type Histogram ¶
type Histogram struct {
// contains filtered or unexported fields
}
A Histogram is a wrapper around an hdrhistogram.WindowedHistogram.
func NewHistogram ¶
NewHistogram creates a new windowed HDRHistogram with the given parameters. Data is kept in the active window for approximately the given duration. See the the documentation for hdrhistogram.WindowedHistogram for details.
func (*Histogram) Current ¶
func (h *Histogram) Current() *hdrhistogram.Histogram
Current returns a copy of the data currently in the window.
func (*Histogram) MarshalJSON ¶
MarshalJSON outputs to JSON.
func (*Histogram) RecordValue ¶
RecordValue adds the given value to the histogram, truncating if necessary.
type Histograms ¶
type Histograms []*Histogram
Histograms is a slice of Histogram metrics.
func (Histograms) RecordValue ¶
func (hs Histograms) RecordValue(v int64)
RecordValue calls through to each individual Histogram.
type Iterable ¶
type Iterable interface { // Each calls the given closure with each contained item. Each(func(string, interface{})) }
Iterable provides a method for synchronized access to interior objects.
type Rate ¶
type Rate struct {
// contains filtered or unexported fields
}
A Rate is a exponential weighted moving average.
func NewRate ¶
NewRate creates an EWMA rate on the given timescale. Timescales at or below 2s are illegal and will cause a panic.
func (*Rate) Each ¶
Each calls the given closure with the empty string and the Rate's current value.
func (*Rate) MarshalJSON ¶
MarshalJSON marshals to JSON.
type Registry ¶
A Registry bundles up various iterables (i.e. typically metrics or other registries) to provide a single point of access to them.
func (*Registry) Add ¶
Add links the given Iterable into this registry using the given format string. The individual items in the registry will be formatted via fmt.Sprintf(format, <name>). As a special case, *Registry implements Iterable and can thus be added. Metric types in this package have helpers that allow them to be created and registered in a single step. Add is called manually only when adding a registry to another, or when integrating metrics defined elsewhere.
func (*Registry) Histogram ¶
func (r *Registry) Histogram(name string, duration time.Duration, maxVal int64, sigFigs int) *Histogram
Histogram registers a new windowed HDRHistogram with the given parameters. Data is kept in the active window for approximately the given duration.
func (*Registry) Latency ¶
func (r *Registry) Latency(prefix string) Histograms
Latency is a convenience function which registers histograms with suitable defaults for latency tracking. Values are expressed in ns, are truncated into the interval [0, time.Minute] and are recorded with two digits of precision (i.e. errors of <1ms at 100ms, <.6s at 1m). The generated names of the metric will begin with the given prefix.
TODO(mrtracy,tschottdorf): need to discuss roll-ups and generally how (and which) information flows between metrics and time series.
func (*Registry) MarshalJSON ¶
MarshalJSON marshals to JSON.