Documentation ¶
Overview ¶
Go port of Coda Hale's Metrics library
<https://github.com/rcrowley/go-metrics>
Coda Hale's original work: <https://github.com/codahale/metrics>
Index ¶
- Variables
- func CaptureDebugGCStats(r Registry, d time.Duration)
- func CaptureDebugGCStatsOnce(r Registry)
- func CaptureRuntimeMemStats(r Registry, d time.Duration)
- func CaptureRuntimeMemStatsOnce(r Registry)
- func Each(f func(string, interface{}))
- func Get(name string) interface{}
- func GetOrRegister(name string, i interface{}) interface{}
- func Graphite(r Registry, d time.Duration, prefix string, addr *net.TCPAddr)
- func GraphiteWithConfig(c GraphiteConfig)
- func Log(r Registry, d time.Duration, l *log.Logger)
- func Register(name string, i interface{})
- func RegisterDebugGCStats(r Registry)
- func RegisterRuntimeMemStats(r Registry)
- func RunHealthchecks()
- func SampleMax(values []int64) int64
- func SampleMean(values []int64) float64
- func SampleMin(values []int64) int64
- func SamplePercentile(values int64Slice, p float64) float64
- func SamplePercentiles(values int64Slice, ps []float64) []float64
- func SampleStdDev(values []int64) float64
- func SampleSum(values []int64) int64
- func SampleVariance(values []int64) float64
- func Syslog(r Registry, d time.Duration, w *syslog.Writer)
- func Unregister(name string)
- func Write(r Registry, d time.Duration, w io.Writer)
- func WriteOnce(r Registry, w io.Writer)
- type Counter
- type CounterSnapshot
- type EWMA
- type EWMASnapshot
- type ExpDecaySample
- func (s *ExpDecaySample) Clear()
- func (s *ExpDecaySample) Count() int64
- func (s *ExpDecaySample) Max() int64
- func (s *ExpDecaySample) Mean() float64
- func (s *ExpDecaySample) Min() int64
- func (s *ExpDecaySample) Percentile(p float64) float64
- func (s *ExpDecaySample) Percentiles(ps []float64) []float64
- func (s *ExpDecaySample) Size() int
- func (s *ExpDecaySample) Snapshot() Sample
- func (s *ExpDecaySample) StdDev() float64
- func (s *ExpDecaySample) Sum() int64
- func (s *ExpDecaySample) Update(v int64)
- func (s *ExpDecaySample) Values() []int64
- func (s *ExpDecaySample) Variance() float64
- type Gauge
- type GaugeSnapshot
- type GraphiteConfig
- type Healthcheck
- type Histogram
- type HistogramSnapshot
- func (*HistogramSnapshot) Clear()
- func (h *HistogramSnapshot) Count() int64
- func (h *HistogramSnapshot) Max() int64
- func (h *HistogramSnapshot) Mean() float64
- func (h *HistogramSnapshot) Min() int64
- func (h *HistogramSnapshot) Percentile(p float64) float64
- func (h *HistogramSnapshot) Percentiles(ps []float64) []float64
- func (h *HistogramSnapshot) Sample() Sample
- func (h *HistogramSnapshot) Snapshot() Histogram
- func (h *HistogramSnapshot) StdDev() float64
- func (*HistogramSnapshot) Update(int64)
- func (h *HistogramSnapshot) Variance() float64
- type Meter
- type MeterSnapshot
- type NilCounter
- type NilEWMA
- type NilGauge
- type NilHealthcheck
- type NilHistogram
- func (NilHistogram) Clear()
- func (NilHistogram) Count() int64
- func (NilHistogram) Max() int64
- func (NilHistogram) Mean() float64
- func (NilHistogram) Min() int64
- func (NilHistogram) Percentile(p float64) float64
- func (NilHistogram) Percentiles(ps []float64) []float64
- func (NilHistogram) Sample() Sample
- func (NilHistogram) Snapshot() Histogram
- func (NilHistogram) StdDev() float64
- func (NilHistogram) Update(v int64)
- func (NilHistogram) Variance() float64
- type NilMeter
- type NilSample
- func (NilSample) Clear()
- func (NilSample) Count() int64
- func (NilSample) Max() int64
- func (NilSample) Mean() float64
- func (NilSample) Min() int64
- func (NilSample) Percentile(p float64) float64
- func (NilSample) Percentiles(ps []float64) []float64
- func (NilSample) Size() int
- func (NilSample) Snapshot() Sample
- func (NilSample) StdDev() float64
- func (NilSample) Sum() int64
- func (NilSample) Update(v int64)
- func (NilSample) Values() []int64
- func (NilSample) Variance() float64
- type NilTimer
- func (NilTimer) Count() int64
- func (NilTimer) Max() int64
- func (NilTimer) Mean() float64
- func (NilTimer) Min() int64
- func (NilTimer) Percentile(p float64) float64
- func (NilTimer) Percentiles(ps []float64) []float64
- func (NilTimer) Rate1() float64
- func (NilTimer) Rate15() float64
- func (NilTimer) Rate5() float64
- func (NilTimer) RateMean() float64
- func (NilTimer) Snapshot() Timer
- func (NilTimer) StdDev() float64
- func (NilTimer) Time(func())
- func (NilTimer) Update(time.Duration)
- func (NilTimer) UpdateSince(time.Time)
- func (NilTimer) Variance() float64
- type Registry
- type Sample
- type SampleSnapshot
- func (*SampleSnapshot) Clear()
- func (s *SampleSnapshot) Count() int64
- func (s *SampleSnapshot) Max() int64
- func (s *SampleSnapshot) Mean() float64
- func (s *SampleSnapshot) Min() int64
- func (s *SampleSnapshot) Percentile(p float64) float64
- func (s *SampleSnapshot) Percentiles(ps []float64) []float64
- func (s *SampleSnapshot) Size() int
- func (s *SampleSnapshot) Snapshot() Sample
- func (s *SampleSnapshot) StdDev() float64
- func (s *SampleSnapshot) Sum() int64
- func (*SampleSnapshot) Update(int64)
- func (s *SampleSnapshot) Values() []int64
- func (s *SampleSnapshot) Variance() float64
- type StandardCounter
- type StandardEWMA
- type StandardGauge
- type StandardHealthcheck
- type StandardHistogram
- func (h *StandardHistogram) Clear()
- func (h *StandardHistogram) Count() int64
- func (h *StandardHistogram) Max() int64
- func (h *StandardHistogram) Mean() float64
- func (h *StandardHistogram) Min() int64
- func (h *StandardHistogram) Percentile(p float64) float64
- func (h *StandardHistogram) Percentiles(ps []float64) []float64
- func (h *StandardHistogram) Sample() Sample
- func (h *StandardHistogram) Snapshot() Histogram
- func (h *StandardHistogram) StdDev() float64
- func (h *StandardHistogram) Update(v int64)
- func (h *StandardHistogram) Variance() float64
- type StandardMeter
- type StandardRegistry
- func (r *StandardRegistry) Each(f func(string, interface{}))
- func (r *StandardRegistry) Get(name string) interface{}
- func (r *StandardRegistry) GetOrRegister(name string, i interface{}) interface{}
- func (r StandardRegistry) MarshalJSON() ([]byte, error)
- func (r *StandardRegistry) Register(name string, i interface{})
- func (r *StandardRegistry) RunHealthchecks()
- func (r *StandardRegistry) Unregister(name string)
- type StandardTimer
- func (t *StandardTimer) Count() int64
- func (t *StandardTimer) Max() int64
- func (t *StandardTimer) Mean() float64
- func (t *StandardTimer) Min() int64
- func (t *StandardTimer) Percentile(p float64) float64
- func (t *StandardTimer) Percentiles(ps []float64) []float64
- func (t *StandardTimer) Rate1() float64
- func (t *StandardTimer) Rate15() float64
- func (t *StandardTimer) Rate5() float64
- func (t *StandardTimer) RateMean() float64
- func (t *StandardTimer) Snapshot() Timer
- func (t *StandardTimer) StdDev() float64
- func (t *StandardTimer) Time(f func())
- func (t *StandardTimer) Update(d time.Duration)
- func (t *StandardTimer) UpdateSince(ts time.Time)
- func (t *StandardTimer) Variance() float64
- type Timer
- type TimerSnapshot
- func (t *TimerSnapshot) Count() int64
- func (t *TimerSnapshot) Max() int64
- func (t *TimerSnapshot) Mean() float64
- func (t *TimerSnapshot) Min() int64
- func (t *TimerSnapshot) Percentile(p float64) float64
- func (t *TimerSnapshot) Percentiles(ps []float64) []float64
- func (t *TimerSnapshot) Rate1() float64
- func (t *TimerSnapshot) Rate15() float64
- func (t *TimerSnapshot) Rate5() float64
- func (t *TimerSnapshot) RateMean() float64
- func (t *TimerSnapshot) Snapshot() Timer
- func (t *TimerSnapshot) StdDev() float64
- func (*TimerSnapshot) Time(func())
- func (*TimerSnapshot) Update(time.Duration)
- func (*TimerSnapshot) UpdateSince(time.Time)
- func (t *TimerSnapshot) Variance() float64
- type UniformSample
- func (s *UniformSample) Clear()
- func (s *UniformSample) Count() int64
- func (s *UniformSample) Max() int64
- func (s *UniformSample) Mean() float64
- func (s *UniformSample) Min() int64
- func (s *UniformSample) Percentile(p float64) float64
- func (s *UniformSample) Percentiles(ps []float64) []float64
- func (s *UniformSample) Size() int
- func (s *UniformSample) Snapshot() Sample
- func (s *UniformSample) StdDev() float64
- func (s *UniformSample) Sum() int64
- func (s *UniformSample) Update(v int64)
- func (s *UniformSample) Values() []int64
- func (s *UniformSample) Variance() float64
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var UseNilMetrics bool = false
UseNilMetrics is checked by the constructor functions for all of the standard metrics. If it is true, the metric returned is a stub.
This global kill-switch helps quantify the observer effect and makes for less cluttered pprof profiles.
Functions ¶
func CaptureDebugGCStats ¶
Capture new values for the Go garbage collector statistics exported in debug.GCStats. This is designed to be called as a goroutine.
func CaptureDebugGCStatsOnce ¶
func CaptureDebugGCStatsOnce(r Registry)
Capture new values for the Go garbage collector statistics exported in debug.GCStats. This is designed to be called in a background goroutine. Giving a registry which has not been given to RegisterDebugGCStats will panic.
Be careful (but much less so) with this because debug.ReadGCStats calls the C function runtime·lock(runtime·mheap) which, while not a stop-the-world operation, isn't something you want to be doing all the time.
func CaptureRuntimeMemStats ¶
Capture new values for the Go runtime statistics exported in runtime.MemStats. This is designed to be called as a goroutine.
func CaptureRuntimeMemStatsOnce ¶
func CaptureRuntimeMemStatsOnce(r Registry)
Capture new values for the Go runtime statistics exported in runtime.MemStats. This is designed to be called in a background goroutine. Giving a registry which has not been given to RegisterRuntimeMemStats will panic.
Be very careful with this because runtime.ReadMemStats calls the C functions runtime·semacquire(&runtime·worldsema) and runtime·stoptheworld() and that last one does what it says on the tin.
func Each ¶
func Each(f func(string, interface{}))
Call the given function for each registered metric.
func Get ¶
func Get(name string) interface{}
Get the metric by the given name or nil if none is registered.
func GetOrRegister ¶
func GetOrRegister(name string, i interface{}) interface{}
Gets an existing metric or creates and registers a new one. Threadsafe alternative to calling Get and Register on failure.
func Graphite ¶
Graphite is a blocking exporter function which reports metrics in r to a graphite server located at addr, flushing them every d duration and prepending metric names with prefix.
Example ¶
addr, _ := net.ResolveTCPAddr("net", ":2003") go Graphite(DefaultRegistry, 1*time.Second, "some.prefix", addr)
Output:
func GraphiteWithConfig ¶
func GraphiteWithConfig(c GraphiteConfig)
GraphiteWithConfig is a blocking exporter function just like Graphite, but it takes a GraphiteConfig instead.
Example ¶
addr, _ := net.ResolveTCPAddr("net", ":2003") go GraphiteWithConfig(GraphiteConfig{ Addr: addr, Registry: DefaultRegistry, FlushInterval: 1 * time.Second, DurationUnit: time.Millisecond, })
Output:
func Register ¶
func Register(name string, i interface{})
Register the given metric under the given name.
func RegisterDebugGCStats ¶
func RegisterDebugGCStats(r Registry)
Register metrics for the Go garbage collector statistics exported in debug.GCStats. The metrics are named by their fully-qualified Go symbols, i.e. debug.GCStats.PauseTotal.
func RegisterRuntimeMemStats ¶
func RegisterRuntimeMemStats(r Registry)
Register runtimeMetrics for the Go runtime statistics exported in runtime and specifically runtime.MemStats. The runtimeMetrics are named by their fully-qualified Go symbols, i.e. runtime.MemStats.Alloc.
func SampleMean ¶
SampleMean returns the mean value of the slice of int64.
func SamplePercentile ¶
SamplePercentiles returns an arbitrary percentile of the slice of int64.
func SamplePercentiles ¶
SamplePercentiles returns a slice of arbitrary percentiles of the slice of int64.
func SampleStdDev ¶
SampleStdDev returns the standard deviation of the slice of int64.
func SampleVariance ¶
SampleVariance returns the variance of the slice of int64.
func Syslog ¶
Output each metric in the given registry to syslog periodically using the given syslogger.
Types ¶
type Counter ¶
Counters hold an int64 value that can be incremented and decremented.
func GetOrRegisterCounter ¶
GetOrRegisterCounter returns an existing Counter or constructs and registers a new StandardCounter.
func NewRegisteredCounter ¶
NewRegisteredCounter constructs and registers a new StandardCounter.
type CounterSnapshot ¶
type CounterSnapshot int64
CounterSnapshot is a read-only copy of another Counter.
func (CounterSnapshot) Count ¶
func (c CounterSnapshot) Count() int64
Count returns the count at the time the snapshot was taken.
func (CounterSnapshot) Snapshot ¶
func (c CounterSnapshot) Snapshot() Counter
Snapshot returns the snapshot.
type EWMA ¶
EWMAs continuously calculate an exponentially-weighted moving average based on an outside source of clock ticks.
func NewEWMA1 ¶
func NewEWMA1() EWMA
NewEWMA1 constructs a new EWMA for a one-minute moving average.
type EWMASnapshot ¶
type EWMASnapshot float64
EWMASnapshot is a read-only copy of another EWMA.
func (EWMASnapshot) Rate ¶
func (a EWMASnapshot) Rate() float64
Rate returns the rate of events per second at the time the snapshot was taken.
type ExpDecaySample ¶
type ExpDecaySample struct {
// contains filtered or unexported fields
}
ExpDecaySample is an exponentially-decaying sample using a forward-decaying priority reservoir. See Cormode et al's "Forward Decay: A Practical Time Decay Model for Streaming Systems".
func (*ExpDecaySample) Count ¶
func (s *ExpDecaySample) Count() int64
Count returns the number of samples recorded, which may exceed the reservoir size.
func (*ExpDecaySample) Max ¶
func (s *ExpDecaySample) Max() int64
Max returns the maximum value in the sample, which may not be the maximum value ever to be part of the sample.
func (*ExpDecaySample) Mean ¶
func (s *ExpDecaySample) Mean() float64
Mean returns the mean of the values in the sample.
func (*ExpDecaySample) Min ¶
func (s *ExpDecaySample) Min() int64
Min returns the minimum value in the sample, which may not be the minimum value ever to be part of the sample.
func (*ExpDecaySample) Percentile ¶
func (s *ExpDecaySample) Percentile(p float64) float64
Percentile returns an arbitrary percentile of values in the sample.
func (*ExpDecaySample) Percentiles ¶
func (s *ExpDecaySample) Percentiles(ps []float64) []float64
Percentiles returns a slice of arbitrary percentiles of values in the sample.
func (*ExpDecaySample) Size ¶
func (s *ExpDecaySample) Size() int
Size returns the size of the sample, which is at most the reservoir size.
func (*ExpDecaySample) Snapshot ¶
func (s *ExpDecaySample) Snapshot() Sample
Snapshot returns a read-only copy of the sample.
func (*ExpDecaySample) StdDev ¶
func (s *ExpDecaySample) StdDev() float64
StdDev returns the standard deviation of the values in the sample.
func (*ExpDecaySample) Sum ¶
func (s *ExpDecaySample) Sum() int64
Sum returns the sum of the values in the sample.
func (*ExpDecaySample) Update ¶
func (s *ExpDecaySample) Update(v int64)
Update samples a new value.
func (*ExpDecaySample) Values ¶
func (s *ExpDecaySample) Values() []int64
Values returns a copy of the values in the sample.
func (*ExpDecaySample) Variance ¶
func (s *ExpDecaySample) Variance() float64
Variance returns the variance of the values in the sample.
type Gauge ¶
Gauges hold an int64 value that can be set arbitrarily.
func GetOrRegisterGauge ¶
GetOrRegisterGauge returns an existing Gauge or constructs and registers a new StandardGauge.
func NewRegisteredGauge ¶
NewRegisteredGauge constructs and registers a new StandardGauge.
type GaugeSnapshot ¶
type GaugeSnapshot int64
GaugeSnapshot is a read-only copy of another Gauge.
func (GaugeSnapshot) Snapshot ¶
func (g GaugeSnapshot) Snapshot() Gauge
Snapshot returns the snapshot.
func (GaugeSnapshot) Value ¶
func (g GaugeSnapshot) Value() int64
Value returns the value at the time the snapshot was taken.
type GraphiteConfig ¶
type GraphiteConfig struct { Addr *net.TCPAddr // Network address to connect to Registry Registry // Registry to be exported FlushInterval time.Duration // Flush interval DurationUnit time.Duration // Time conversion unit for durations Prefix string // Prefix to be prepended to metric names }
GraphiteConfig provides a container with configuration parameters for the Graphite exporter
type Healthcheck ¶
Healthchecks hold an error value describing an arbitrary up/down status.
func NewHealthcheck ¶
func NewHealthcheck(f func(Healthcheck)) Healthcheck
NewHealthcheck constructs a new Healthcheck which will use the given function to update its status.
type Histogram ¶
type Histogram interface { Clear() Count() int64 Max() int64 Mean() float64 Min() int64 Percentile(float64) float64 Percentiles([]float64) []float64 Sample() Sample Snapshot() Histogram StdDev() float64 Update(int64) Variance() float64 }
Histograms calculate distribution statistics from a series of int64 values.
func GetOrRegisterHistogram ¶
GetOrRegisterHistogram returns an existing Histogram or constructs and registers a new StandardHistogram.
func NewHistogram ¶
NewHistogram constructs a new StandardHistogram from a Sample.
type HistogramSnapshot ¶
type HistogramSnapshot struct {
// contains filtered or unexported fields
}
HistogramSnapshot is a read-only copy of another Histogram.
func (*HistogramSnapshot) Count ¶
func (h *HistogramSnapshot) Count() int64
Count returns the number of samples recorded at the time the snapshot was taken.
func (*HistogramSnapshot) Max ¶
func (h *HistogramSnapshot) Max() int64
Max returns the maximum value in the sample at the time the snapshot was taken.
func (*HistogramSnapshot) Mean ¶
func (h *HistogramSnapshot) Mean() float64
Mean returns the mean of the values in the sample at the time the snapshot was taken.
func (*HistogramSnapshot) Min ¶
func (h *HistogramSnapshot) Min() int64
Min returns the minimum value in the sample at the time the snapshot was taken.
func (*HistogramSnapshot) Percentile ¶
func (h *HistogramSnapshot) Percentile(p float64) float64
Percentile returns an arbitrary percentile of values in the sample at the time the snapshot was taken.
func (*HistogramSnapshot) Percentiles ¶
func (h *HistogramSnapshot) Percentiles(ps []float64) []float64
Percentiles returns a slice of arbitrary percentiles of values in the sample at the time the snapshot was taken.
func (*HistogramSnapshot) Sample ¶
func (h *HistogramSnapshot) Sample() Sample
Sample returns the Sample underlying the histogram.
func (*HistogramSnapshot) Snapshot ¶
func (h *HistogramSnapshot) Snapshot() Histogram
Snapshot returns the snapshot.
func (*HistogramSnapshot) StdDev ¶
func (h *HistogramSnapshot) StdDev() float64
StdDev returns the standard deviation of the values in the sample at the time the snapshot was taken.
func (*HistogramSnapshot) Variance ¶
func (h *HistogramSnapshot) Variance() float64
Variance returns the variance of inputs at the time the snapshot was taken.
type Meter ¶
type Meter interface { Count() int64 Mark(int64) Rate1() float64 Rate5() float64 Rate15() float64 RateMean() float64 Snapshot() Meter }
Meters count events to produce exponentially-weighted moving average rates at one-, five-, and fifteen-minutes and a mean rate.
func GetOrRegisterMeter ¶
GetOrRegisterMeter returns an existing Meter or constructs and registers a new StandardMeter.
func NewMeter ¶
func NewMeter() Meter
NewMeter constructs a new StandardMeter and launches a goroutine.
func NewRegisteredMeter ¶
NewMeter constructs and registers a new StandardMeter and launches a goroutine.
type MeterSnapshot ¶
type MeterSnapshot struct {
// contains filtered or unexported fields
}
MeterSnapshot is a read-only copy of another Meter.
func (*MeterSnapshot) Count ¶
func (m *MeterSnapshot) Count() int64
Count returns the count of events at the time the snapshot was taken.
func (*MeterSnapshot) Rate1 ¶
func (m *MeterSnapshot) Rate1() float64
Rate1 returns the one-minute moving average rate of events per second at the time the snapshot was taken.
func (*MeterSnapshot) Rate15 ¶
func (m *MeterSnapshot) Rate15() float64
Rate15 returns the fifteen-minute moving average rate of events per second at the time the snapshot was taken.
func (*MeterSnapshot) Rate5 ¶
func (m *MeterSnapshot) Rate5() float64
Rate5 returns the five-minute moving average rate of events per second at the time the snapshot was taken.
func (*MeterSnapshot) RateMean ¶
func (m *MeterSnapshot) RateMean() float64
RateMean returns the meter's mean rate of events per second at the time the snapshot was taken.
func (*MeterSnapshot) Snapshot ¶
func (m *MeterSnapshot) Snapshot() Meter
Snapshot returns the snapshot.
type NilHistogram ¶
type NilHistogram struct{}
NilHistogram is a no-op Histogram.
func (NilHistogram) Percentile ¶
func (NilHistogram) Percentile(p float64) float64
Percentile is a no-op.
func (NilHistogram) Percentiles ¶
func (NilHistogram) Percentiles(ps []float64) []float64
Percentiles is a no-op.
type NilSample ¶
type NilSample struct{}
NilSample is a no-op Sample.
func (NilSample) Percentiles ¶
Percentiles is a no-op.
type NilTimer ¶
type NilTimer struct {
// contains filtered or unexported fields
}
NilTimer is a no-op Timer.
func (NilTimer) Percentiles ¶
Percentiles is a no-op.
type Registry ¶
type Registry interface { // Call the given function for each registered metric. Each(func(string, interface{})) // Get the metric by the given name or nil if none is registered. Get(string) interface{} // Gets an existing metric or creates and registers a new one. GetOrRegister(string, interface{}) interface{} // Register the given metric under the given name. Register(string, interface{}) // Run all registered healthchecks. RunHealthchecks() // Unregister the metric with the given name. Unregister(string) }
A Registry holds references to a set of metrics by name and can iterate over them, calling callback functions provided by the user.
This is an interface so as to encourage other structs to implement the Registry API as appropriate.
var DefaultRegistry Registry = NewRegistry()
type Sample ¶
type Sample interface { Clear() Count() int64 Max() int64 Mean() float64 Min() int64 Percentile(float64) float64 Percentiles([]float64) []float64 Size() int Snapshot() Sample StdDev() float64 Sum() int64 Update(int64) Values() []int64 Variance() float64 }
Samples maintain a statistically-significant selection of values from a stream.
func NewExpDecaySample ¶
NewExpDecaySample constructs a new exponentially-decaying sample with the given reservoir size and alpha.
func NewUniformSample ¶
NewUniformSample constructs a new uniform sample with the given reservoir size.
type SampleSnapshot ¶
type SampleSnapshot struct {
// contains filtered or unexported fields
}
SampleSnapshot is a read-only copy of another Sample.
func (*SampleSnapshot) Count ¶
func (s *SampleSnapshot) Count() int64
Count returns the count of inputs at the time the snapshot was taken.
func (*SampleSnapshot) Max ¶
func (s *SampleSnapshot) Max() int64
Max returns the maximal value at the time the snapshot was taken.
func (*SampleSnapshot) Mean ¶
func (s *SampleSnapshot) Mean() float64
Mean returns the mean value at the time the snapshot was taken.
func (*SampleSnapshot) Min ¶
func (s *SampleSnapshot) Min() int64
Min returns the minimal value at the time the snapshot was taken.
func (*SampleSnapshot) Percentile ¶
func (s *SampleSnapshot) Percentile(p float64) float64
Percentile returns an arbitrary percentile of values at the time the snapshot was taken.
func (*SampleSnapshot) Percentiles ¶
func (s *SampleSnapshot) Percentiles(ps []float64) []float64
Percentiles returns a slice of arbitrary percentiles of values at the time the snapshot was taken.
func (*SampleSnapshot) Size ¶
func (s *SampleSnapshot) Size() int
Size returns the size of the sample at the time the snapshot was taken.
func (*SampleSnapshot) Snapshot ¶
func (s *SampleSnapshot) Snapshot() Sample
Snapshot returns the snapshot.
func (*SampleSnapshot) StdDev ¶
func (s *SampleSnapshot) StdDev() float64
StdDev returns the standard deviation of values at the time the snapshot was taken.
func (*SampleSnapshot) Sum ¶
func (s *SampleSnapshot) Sum() int64
Sum returns the sum of values at the time the snapshot was taken.
func (*SampleSnapshot) Values ¶
func (s *SampleSnapshot) Values() []int64
Values returns a copy of the values in the sample.
func (*SampleSnapshot) Variance ¶
func (s *SampleSnapshot) Variance() float64
Variance returns the variance of values at the time the snapshot was taken.
type StandardCounter ¶
type StandardCounter struct {
// contains filtered or unexported fields
}
StandardCounter is the standard implementation of a Counter and uses the sync/atomic package to manage a single int64 value.
func (*StandardCounter) Count ¶
func (c *StandardCounter) Count() int64
Count returns the current count.
func (*StandardCounter) Dec ¶
func (c *StandardCounter) Dec(i int64)
Dec decrements the counter by the given amount.
func (*StandardCounter) Inc ¶
func (c *StandardCounter) Inc(i int64)
Inc increments the counter by the given amount.
func (*StandardCounter) Snapshot ¶
func (c *StandardCounter) Snapshot() Counter
Snapshot returns a read-only copy of the counter.
type StandardEWMA ¶
type StandardEWMA struct {
// contains filtered or unexported fields
}
StandardEWMA is the standard implementation of an EWMA and tracks the number of uncounted events and processes them on each tick. It uses the sync/atomic package to manage uncounted events.
func (*StandardEWMA) Rate ¶
func (a *StandardEWMA) Rate() float64
Rate returns the moving average rate of events per second.
func (*StandardEWMA) Snapshot ¶
func (a *StandardEWMA) Snapshot() EWMA
Snapshot returns a read-only copy of the EWMA.
func (*StandardEWMA) Tick ¶
func (a *StandardEWMA) Tick()
Tick ticks the clock to update the moving average. It assumes it is called every five seconds.
func (*StandardEWMA) Update ¶
func (a *StandardEWMA) Update(n int64)
Update adds n uncounted events.
type StandardGauge ¶
type StandardGauge struct {
// contains filtered or unexported fields
}
StandardGauge is the standard implementation of a Gauge and uses the sync/atomic package to manage a single int64 value.
func (*StandardGauge) Snapshot ¶
func (g *StandardGauge) Snapshot() Gauge
Snapshot returns a read-only copy of the gauge.
func (*StandardGauge) Update ¶
func (g *StandardGauge) Update(v int64)
Update updates the gauge's value.
func (*StandardGauge) Value ¶
func (g *StandardGauge) Value() int64
Value returns the gauge's current value.
type StandardHealthcheck ¶
type StandardHealthcheck struct {
// contains filtered or unexported fields
}
StandardHealthcheck is the standard implementation of a Healthcheck and stores the status and a function to call to update the status.
func (*StandardHealthcheck) Check ¶
func (h *StandardHealthcheck) Check()
Check runs the healthcheck function to update the healthcheck's status.
func (*StandardHealthcheck) Error ¶
func (h *StandardHealthcheck) Error() error
Error returns the healthcheck's status, which will be nil if it is healthy.
func (*StandardHealthcheck) Healthy ¶
func (h *StandardHealthcheck) Healthy()
Healthy marks the healthcheck as healthy.
func (*StandardHealthcheck) Unhealthy ¶
func (h *StandardHealthcheck) Unhealthy(err error)
Unhealthy marks the healthcheck as unhealthy. The error is stored and may be retrieved by the Error method.
type StandardHistogram ¶
type StandardHistogram struct {
// contains filtered or unexported fields
}
StandardHistogram is the standard implementation of a Histogram and uses a Sample to bound its memory use.
func (*StandardHistogram) Clear ¶
func (h *StandardHistogram) Clear()
Clear clears the histogram and its sample.
func (*StandardHistogram) Count ¶
func (h *StandardHistogram) Count() int64
Count returns the number of samples recorded since the histogram was last cleared.
func (*StandardHistogram) Max ¶
func (h *StandardHistogram) Max() int64
Max returns the maximum value in the sample.
func (*StandardHistogram) Mean ¶
func (h *StandardHistogram) Mean() float64
Mean returns the mean of the values in the sample.
func (*StandardHistogram) Min ¶
func (h *StandardHistogram) Min() int64
Min returns the minimum value in the sample.
func (*StandardHistogram) Percentile ¶
func (h *StandardHistogram) Percentile(p float64) float64
Percentile returns an arbitrary percentile of the values in the sample.
func (*StandardHistogram) Percentiles ¶
func (h *StandardHistogram) Percentiles(ps []float64) []float64
Percentiles returns a slice of arbitrary percentiles of the values in the sample.
func (*StandardHistogram) Sample ¶
func (h *StandardHistogram) Sample() Sample
Sample returns the Sample underlying the histogram.
func (*StandardHistogram) Snapshot ¶
func (h *StandardHistogram) Snapshot() Histogram
Snapshot returns a read-only copy of the histogram.
func (*StandardHistogram) StdDev ¶
func (h *StandardHistogram) StdDev() float64
StdDev returns the standard deviation of the values in the sample.
func (*StandardHistogram) Update ¶
func (h *StandardHistogram) Update(v int64)
Update samples a new value.
func (*StandardHistogram) Variance ¶
func (h *StandardHistogram) Variance() float64
Variance returns the variance of the values in the sample.
type StandardMeter ¶
type StandardMeter struct {
// contains filtered or unexported fields
}
StandardMeter is the standard implementation of a Meter and uses a goroutine to synchronize its calculations and a time.Ticker to pass time.
func (*StandardMeter) Count ¶
func (m *StandardMeter) Count() int64
Count returns the number of events recorded.
func (*StandardMeter) Mark ¶
func (m *StandardMeter) Mark(n int64)
Mark records the occurance of n events.
func (*StandardMeter) Rate1 ¶
func (m *StandardMeter) Rate1() float64
Rate1 returns the one-minute moving average rate of events per second.
func (*StandardMeter) Rate15 ¶
func (m *StandardMeter) Rate15() float64
Rate15 returns the fifteen-minute moving average rate of events per second.
func (*StandardMeter) Rate5 ¶
func (m *StandardMeter) Rate5() float64
Rate5 returns the five-minute moving average rate of events per second.
func (*StandardMeter) RateMean ¶
func (m *StandardMeter) RateMean() float64
RateMean returns the meter's mean rate of events per second.
func (*StandardMeter) Snapshot ¶
func (m *StandardMeter) Snapshot() Meter
Snapshot returns a read-only copy of the meter.
type StandardRegistry ¶
type StandardRegistry struct {
// contains filtered or unexported fields
}
The standard implementation of a Registry is a mutex-protected map of names to metrics.
func (*StandardRegistry) Each ¶
func (r *StandardRegistry) Each(f func(string, interface{}))
Call the given function for each registered metric.
func (*StandardRegistry) Get ¶
func (r *StandardRegistry) Get(name string) interface{}
Get the metric by the given name or nil if none is registered.
func (*StandardRegistry) GetOrRegister ¶
func (r *StandardRegistry) GetOrRegister(name string, i interface{}) interface{}
Gets an existing metric or creates and registers a new one. Threadsafe alternative to calling Get and Register on failure.
func (StandardRegistry) MarshalJSON ¶
func (r StandardRegistry) MarshalJSON() ([]byte, error)
MarshalJSON returns a byte slice containing a JSON representation of all the metrics in the Registry.
func (*StandardRegistry) Register ¶
func (r *StandardRegistry) Register(name string, i interface{})
Register the given metric under the given name.
func (*StandardRegistry) RunHealthchecks ¶
func (r *StandardRegistry) RunHealthchecks()
Run all registered healthchecks.
func (*StandardRegistry) Unregister ¶
func (r *StandardRegistry) Unregister(name string)
Unregister the metric with the given name.
type StandardTimer ¶
type StandardTimer struct {
// contains filtered or unexported fields
}
StandardTimer is the standard implementation of a Timer and uses a Histogram and Meter.
func (*StandardTimer) Count ¶
func (t *StandardTimer) Count() int64
Count returns the number of events recorded.
func (*StandardTimer) Max ¶
func (t *StandardTimer) Max() int64
Max returns the maximum value in the sample.
func (*StandardTimer) Mean ¶
func (t *StandardTimer) Mean() float64
Mean returns the mean of the values in the sample.
func (*StandardTimer) Min ¶
func (t *StandardTimer) Min() int64
Min returns the minimum value in the sample.
func (*StandardTimer) Percentile ¶
func (t *StandardTimer) Percentile(p float64) float64
Percentile returns an arbitrary percentile of the values in the sample.
func (*StandardTimer) Percentiles ¶
func (t *StandardTimer) Percentiles(ps []float64) []float64
Percentiles returns a slice of arbitrary percentiles of the values in the sample.
func (*StandardTimer) Rate1 ¶
func (t *StandardTimer) Rate1() float64
Rate1 returns the one-minute moving average rate of events per second.
func (*StandardTimer) Rate15 ¶
func (t *StandardTimer) Rate15() float64
Rate15 returns the fifteen-minute moving average rate of events per second.
func (*StandardTimer) Rate5 ¶
func (t *StandardTimer) Rate5() float64
Rate5 returns the five-minute moving average rate of events per second.
func (*StandardTimer) RateMean ¶
func (t *StandardTimer) RateMean() float64
RateMean returns the meter's mean rate of events per second.
func (*StandardTimer) Snapshot ¶
func (t *StandardTimer) Snapshot() Timer
Snapshot returns a read-only copy of the timer.
func (*StandardTimer) StdDev ¶
func (t *StandardTimer) StdDev() float64
StdDev returns the standard deviation of the values in the sample.
func (*StandardTimer) Time ¶
func (t *StandardTimer) Time(f func())
Record the duration of the execution of the given function.
func (*StandardTimer) Update ¶
func (t *StandardTimer) Update(d time.Duration)
Record the duration of an event.
func (*StandardTimer) UpdateSince ¶
func (t *StandardTimer) UpdateSince(ts time.Time)
Record the duration of an event that started at a time and ends now.
func (*StandardTimer) Variance ¶
func (t *StandardTimer) Variance() float64
Variance returns the variance of the values in the sample.
type Timer ¶
type Timer interface { Count() int64 Max() int64 Mean() float64 Min() int64 Percentile(float64) float64 Percentiles([]float64) []float64 Rate1() float64 Rate5() float64 Rate15() float64 RateMean() float64 Snapshot() Timer StdDev() float64 Time(func()) Update(time.Duration) UpdateSince(time.Time) Variance() float64 }
Timers capture the duration and rate of events.
func GetOrRegisterTimer ¶
GetOrRegisterTimer returns an existing Timer or constructs and registers a new StandardTimer.
func NewCustomTimer ¶
NewCustomTimer constructs a new StandardTimer from a Histogram and a Meter.
func NewRegisteredTimer ¶
NewRegisteredTimer constructs and registers a new StandardTimer.
type TimerSnapshot ¶
type TimerSnapshot struct {
// contains filtered or unexported fields
}
TimerSnapshot is a read-only copy of another Timer.
func (*TimerSnapshot) Count ¶
func (t *TimerSnapshot) Count() int64
Count returns the number of events recorded at the time the snapshot was taken.
func (*TimerSnapshot) Max ¶
func (t *TimerSnapshot) Max() int64
Max returns the maximum value at the time the snapshot was taken.
func (*TimerSnapshot) Mean ¶
func (t *TimerSnapshot) Mean() float64
Mean returns the mean value at the time the snapshot was taken.
func (*TimerSnapshot) Min ¶
func (t *TimerSnapshot) Min() int64
Min returns the minimum value at the time the snapshot was taken.
func (*TimerSnapshot) Percentile ¶
func (t *TimerSnapshot) Percentile(p float64) float64
Percentile returns an arbitrary percentile of sampled values at the time the snapshot was taken.
func (*TimerSnapshot) Percentiles ¶
func (t *TimerSnapshot) Percentiles(ps []float64) []float64
Percentiles returns a slice of arbitrary percentiles of sampled values at the time the snapshot was taken.
func (*TimerSnapshot) Rate1 ¶
func (t *TimerSnapshot) Rate1() float64
Rate1 returns the one-minute moving average rate of events per second at the time the snapshot was taken.
func (*TimerSnapshot) Rate15 ¶
func (t *TimerSnapshot) Rate15() float64
Rate15 returns the fifteen-minute moving average rate of events per second at the time the snapshot was taken.
func (*TimerSnapshot) Rate5 ¶
func (t *TimerSnapshot) Rate5() float64
Rate5 returns the five-minute moving average rate of events per second at the time the snapshot was taken.
func (*TimerSnapshot) RateMean ¶
func (t *TimerSnapshot) RateMean() float64
RateMean returns the meter's mean rate of events per second at the time the snapshot was taken.
func (*TimerSnapshot) Snapshot ¶
func (t *TimerSnapshot) Snapshot() Timer
Snapshot returns the snapshot.
func (*TimerSnapshot) StdDev ¶
func (t *TimerSnapshot) StdDev() float64
StdDev returns the standard deviation of the values at the time the snapshot was taken.
func (*TimerSnapshot) UpdateSince ¶
func (*TimerSnapshot) UpdateSince(time.Time)
UpdateSince panics.
func (*TimerSnapshot) Variance ¶
func (t *TimerSnapshot) Variance() float64
Variance returns the variance of the values at the time the snapshot was taken.
type UniformSample ¶
type UniformSample struct {
// contains filtered or unexported fields
}
A uniform sample using Vitter's Algorithm R.
<http://www.cs.umd.edu/~samir/498/vitter.pdf>
func (*UniformSample) Count ¶
func (s *UniformSample) Count() int64
Count returns the number of samples recorded, which may exceed the reservoir size.
func (*UniformSample) Max ¶
func (s *UniformSample) Max() int64
Max returns the maximum value in the sample, which may not be the maximum value ever to be part of the sample.
func (*UniformSample) Mean ¶
func (s *UniformSample) Mean() float64
Mean returns the mean of the values in the sample.
func (*UniformSample) Min ¶
func (s *UniformSample) Min() int64
Min returns the minimum value in the sample, which may not be the minimum value ever to be part of the sample.
func (*UniformSample) Percentile ¶
func (s *UniformSample) Percentile(p float64) float64
Percentile returns an arbitrary percentile of values in the sample.
func (*UniformSample) Percentiles ¶
func (s *UniformSample) Percentiles(ps []float64) []float64
Percentiles returns a slice of arbitrary percentiles of values in the sample.
func (*UniformSample) Size ¶
func (s *UniformSample) Size() int
Size returns the size of the sample, which is at most the reservoir size.
func (*UniformSample) Snapshot ¶
func (s *UniformSample) Snapshot() Sample
Snapshot returns a read-only copy of the sample.
func (*UniformSample) StdDev ¶
func (s *UniformSample) StdDev() float64
StdDev returns the standard deviation of the values in the sample.
func (*UniformSample) Sum ¶
func (s *UniformSample) Sum() int64
Sum returns the sum of the values in the sample.
func (*UniformSample) Values ¶
func (s *UniformSample) Values() []int64
Values returns a copy of the values in the sample.
func (*UniformSample) Variance ¶
func (s *UniformSample) Variance() float64
Variance returns the variance of the values in the sample.