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>
Example ¶
c := NewCounter() Register("money", c) c.Inc(17) // Threadsafe registration t := GetOrRegisterTimer("db.get.latency", nil) t.Time(func() { time.Sleep(10 * time.Millisecond) }) t.Update(1) fmt.Println(c.Count()) fmt.Println(t.Min())
Output: 17 1
Index ¶
- Constants
- Variables
- func CaptureDebugGCStats(r Registry, d time.Duration)
- func CaptureDebugGCStatsOnce(r Registry)
- func CaptureRuntimeMemStats(r Registry, d time.Duration)
- func CaptureRuntimeMemStatsOnce(r Registry)
- func CollectProcessMetrics(refresh time.Duration)
- 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 GraphiteOnce(c GraphiteConfig) error
- func GraphiteWithConfig(c GraphiteConfig)
- func Log(r Registry, freq time.Duration, l Logger)
- func LogScaled(r Registry, freq time.Duration, scale time.Duration, l Logger)
- func MustRegister(name string, i interface{})
- func OpenTSDB(r Registry, d time.Duration, prefix string, addr *net.TCPAddr)
- func OpenTSDBWithConfig(c OpenTSDBConfig)
- func ReadDiskStats(stats *DiskStats) error
- func Register(name string, i interface{}) error
- 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 WriteJSON(r Registry, d time.Duration, w io.Writer)
- func WriteJSONOnce(r Registry, w io.Writer)
- func WriteOnce(r Registry, w io.Writer)
- type Counter
- type CounterSnapshot
- type DiskStats
- type DuplicateMetric
- 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 FunctionalGauge
- type FunctionalGaugeFloat64
- type Gauge
- type GaugeFloat64
- func GetOrRegisterGaugeFloat64(name string, r Registry) GaugeFloat64
- func NewFunctionalGaugeFloat64(f func() float64) GaugeFloat64
- func NewGaugeFloat64() GaugeFloat64
- func NewRegisteredFunctionalGaugeFloat64(name string, r Registry, f func() float64) GaugeFloat64
- func NewRegisteredGaugeFloat64(name string, r Registry) GaugeFloat64
- type GaugeFloat64Snapshot
- 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 (h *HistogramSnapshot) Sum() int64
- func (*HistogramSnapshot) Update(int64)
- func (h *HistogramSnapshot) Variance() float64
- type Int64Slice
- type Logger
- type Meter
- type MeterSnapshot
- func (m *MeterSnapshot) Count() int64
- func (*MeterSnapshot) Mark(n int64)
- func (m *MeterSnapshot) Rate1() float64
- func (m *MeterSnapshot) Rate15() float64
- func (m *MeterSnapshot) Rate5() float64
- func (m *MeterSnapshot) RateMean() float64
- func (m *MeterSnapshot) Snapshot() Meter
- func (m *MeterSnapshot) Stop()
- type NilCounter
- type NilEWMA
- type NilGauge
- type NilGaugeFloat64
- 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) Sum() int64
- func (NilHistogram) Update(v int64)
- func (NilHistogram) Variance() float64
- type NilMeter
- type NilResettingTimer
- func (NilResettingTimer) Mean() float64
- func (NilResettingTimer) Percentiles([]float64) []int64
- func (NilResettingTimer) Snapshot() ResettingTimer
- func (NilResettingTimer) Time(func())
- func (NilResettingTimer) Update(time.Duration)
- func (NilResettingTimer) UpdateSince(time.Time)
- func (NilResettingTimer) Values() []int64
- 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) Stop()
- func (NilTimer) Sum() int64
- func (NilTimer) Time(func())
- func (NilTimer) Update(time.Duration)
- func (NilTimer) UpdateSince(time.Time)
- func (NilTimer) Variance() float64
- type OpenTSDBConfig
- type PrefixedRegistry
- func (r *PrefixedRegistry) Each(fn func(string, interface{}))
- func (r *PrefixedRegistry) Get(name string) interface{}
- func (r *PrefixedRegistry) GetAll() map[string]map[string]interface{}
- func (r *PrefixedRegistry) GetOrRegister(name string, metric interface{}) interface{}
- func (p *PrefixedRegistry) MarshalJSON() ([]byte, error)
- func (r *PrefixedRegistry) Register(name string, metric interface{}) error
- func (r *PrefixedRegistry) RunHealthchecks()
- func (r *PrefixedRegistry) Unregister(name string)
- func (r *PrefixedRegistry) UnregisterAll()
- type Registry
- type ResettingTimer
- type ResettingTimerSnapshot
- func (t *ResettingTimerSnapshot) Mean() float64
- func (t *ResettingTimerSnapshot) Percentiles(percentiles []float64) []int64
- func (t *ResettingTimerSnapshot) Snapshot() ResettingTimer
- func (*ResettingTimerSnapshot) Time(func())
- func (*ResettingTimerSnapshot) Update(time.Duration)
- func (*ResettingTimerSnapshot) UpdateSince(time.Time)
- func (t *ResettingTimerSnapshot) Values() []int64
- 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 StandardGaugeFloat64
- 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) Sum() int64
- func (h *StandardHistogram) Update(v int64)
- func (h *StandardHistogram) Variance() float64
- type StandardMeter
- func (m *StandardMeter) Count() int64
- func (m *StandardMeter) Mark(n int64)
- func (m *StandardMeter) Rate1() float64
- func (m *StandardMeter) Rate15() float64
- func (m *StandardMeter) Rate5() float64
- func (m *StandardMeter) RateMean() float64
- func (m *StandardMeter) Snapshot() Meter
- func (m *StandardMeter) Stop()
- type StandardRegistry
- func (r *StandardRegistry) Each(f func(string, interface{}))
- func (r *StandardRegistry) Get(name string) interface{}
- func (r *StandardRegistry) GetAll() map[string]map[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{}) error
- func (r *StandardRegistry) RunHealthchecks()
- func (r *StandardRegistry) Unregister(name string)
- func (r *StandardRegistry) UnregisterAll()
- type StandardResettingTimer
- func (t *StandardResettingTimer) Mean() float64
- func (t *StandardResettingTimer) Percentiles([]float64) []int64
- func (t *StandardResettingTimer) Snapshot() ResettingTimer
- func (t *StandardResettingTimer) Time(f func())
- func (t *StandardResettingTimer) Update(d time.Duration)
- func (t *StandardResettingTimer) UpdateSince(ts time.Time)
- func (t *StandardResettingTimer) Values() []int64
- 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) Stop()
- func (t *StandardTimer) Sum() int64
- 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 Stoppable
- 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 (t *TimerSnapshot) Stop()
- func (t *TimerSnapshot) Sum() int64
- 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 ¶
const DashboardEnabledFlag = "dashboard"
const InitialResettingTimerSliceCap = 10
Initial slice capacity for the values stored in a ResettingTimer
const MetricsEnabledFlag = "metrics"
MetricsEnabledFlag is the CLI flag name to use to enable metrics collections.
Variables ¶
var Enabled bool = false
Enabled 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 ¶ added in v1.9.120
Capture new values for the Go garbage collector statistics exported in debug.GCStats. This is designed to be called as a goroutine.
func CaptureDebugGCStatsOnce ¶ added in v1.9.120
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 ¶ added in v1.9.120
Capture new values for the Go runtime statistics exported in runtime.MemStats. This is designed to be called as a goroutine.
func CaptureRuntimeMemStatsOnce ¶ added in v1.9.120
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 CollectProcessMetrics ¶
CollectProcessMetrics periodically collects various metrics about the running process.
func Each ¶ added in v1.9.120
func Each(f func(string, interface{}))
Call the given function for each registered metric.
func Get ¶ added in v1.9.120
func Get(name string) interface{}
Get the metric by the given name or nil if none is registered.
func GetOrRegister ¶ added in v1.9.120
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 ¶ added in v1.9.120
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 GraphiteOnce ¶ added in v1.9.120
func GraphiteOnce(c GraphiteConfig) error
GraphiteOnce performs a single submission to Graphite, returning a non-nil error on failed connections. This can be used in a loop similar to GraphiteWithConfig for custom error handling.
func GraphiteWithConfig ¶ added in v1.9.120
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, Percentiles: []float64{0.5, 0.75, 0.99, 0.999}, })
Output:
func LogScaled ¶ added in v1.9.120
Output each metric in the given registry periodically using the given logger. Print timings in `scale` units (eg time.Millisecond) rather than nanos.
func MustRegister ¶ added in v1.9.120
func MustRegister(name string, i interface{})
Register the given metric under the given name. Panics if a metric by the given name is already registered.
func OpenTSDB ¶ added in v1.9.120
OpenTSDB is a blocking exporter function which reports metrics in r to a TSDB server located at addr, flushing them every d duration and prepending metric names with prefix.
Example ¶
addr, _ := net.ResolveTCPAddr("net", ":2003") go OpenTSDB(DefaultRegistry, 1*time.Second, "some.prefix", addr)
Output:
func OpenTSDBWithConfig ¶ added in v1.9.120
func OpenTSDBWithConfig(c OpenTSDBConfig)
OpenTSDBWithConfig is a blocking exporter function just like OpenTSDB, but it takes a OpenTSDBConfig instead.
Example ¶
addr, _ := net.ResolveTCPAddr("net", ":2003") go OpenTSDBWithConfig(OpenTSDBConfig{ Addr: addr, Registry: DefaultRegistry, FlushInterval: 1 * time.Second, DurationUnit: time.Millisecond, })
Output:
func ReadDiskStats ¶
ReadDiskStats retrieves the disk IO stats belonging to the current process.
func Register ¶ added in v1.9.120
Register the given metric under the given name. Returns a DuplicateMetric if a metric by the given name is already registered.
func RegisterDebugGCStats ¶ added in v1.9.120
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 ¶ added in v1.9.120
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 ¶ added in v1.9.120
SampleMean returns the mean value of the slice of int64.
func SamplePercentile ¶ added in v1.9.120
SamplePercentiles returns an arbitrary percentile of the slice of int64.
func SamplePercentiles ¶ added in v1.9.120
SamplePercentiles returns a slice of arbitrary percentiles of the slice of int64.
func SampleStdDev ¶ added in v1.9.120
SampleStdDev returns the standard deviation of the slice of int64.
func SampleVariance ¶ added in v1.9.120
SampleVariance returns the variance of the slice of int64.
func Syslog ¶ added in v1.9.120
Output each metric in the given registry to syslog periodically using the given syslogger.
func Unregister ¶ added in v1.9.120
func Unregister(name string)
Unregister the metric with the given name.
func Write ¶ added in v1.9.120
Write sorts writes each metric in the given registry periodically to the given io.Writer.
func WriteJSON ¶ added in v1.9.120
WriteJSON writes metrics from the given registry periodically to the specified io.Writer as JSON.
func WriteJSONOnce ¶ added in v1.9.120
WriteJSONOnce writes metrics from the given registry to the specified io.Writer as JSON.
Types ¶
type Counter ¶ added in v1.9.120
Counters hold an int64 value that can be incremented and decremented.
func GetOrRegisterCounter ¶ added in v1.9.120
GetOrRegisterCounter returns an existing Counter or constructs and registers a new StandardCounter.
func NewCounter ¶ added in v1.5.0
func NewCounter() Counter
NewCounter constructs a new StandardCounter.
func NewRegisteredCounter ¶ added in v1.9.120
NewRegisteredCounter constructs and registers a new StandardCounter.
type CounterSnapshot ¶ added in v1.9.120
type CounterSnapshot int64
CounterSnapshot is a read-only copy of another Counter.
func (CounterSnapshot) Count ¶ added in v1.9.120
func (c CounterSnapshot) Count() int64
Count returns the count at the time the snapshot was taken.
func (CounterSnapshot) Snapshot ¶ added in v1.9.120
func (c CounterSnapshot) Snapshot() Counter
Snapshot returns the snapshot.
type DiskStats ¶
type DiskStats struct { ReadCount int64 // Number of read operations executed ReadBytes int64 // Total number of bytes read WriteCount int64 // Number of write operations executed WriteBytes int64 // Total number of byte written }
DiskStats is the per process disk io stats.
type DuplicateMetric ¶ added in v1.9.120
type DuplicateMetric string
DuplicateMetric is the error returned by Registry.Register when a metric already exists. If you mean to Register that metric you must first Unregister the existing metric.
func (DuplicateMetric) Error ¶ added in v1.9.120
func (err DuplicateMetric) Error() string
type EWMA ¶ added in v1.9.120
EWMAs continuously calculate an exponentially-weighted moving average based on an outside source of clock ticks.
func NewEWMA1 ¶ added in v1.9.120
func NewEWMA1() EWMA
NewEWMA1 constructs a new EWMA for a one-minute moving average.
type EWMASnapshot ¶ added in v1.9.120
type EWMASnapshot float64
EWMASnapshot is a read-only copy of another EWMA.
func (EWMASnapshot) Rate ¶ added in v1.9.120
func (a EWMASnapshot) Rate() float64
Rate returns the rate of events per second at the time the snapshot was taken.
func (EWMASnapshot) Snapshot ¶ added in v1.9.120
func (a EWMASnapshot) Snapshot() EWMA
Snapshot returns the snapshot.
type ExpDecaySample ¶ added in v1.9.120
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".
<http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf>
func (*ExpDecaySample) Clear ¶ added in v1.9.120
func (s *ExpDecaySample) Clear()
Clear clears all samples.
func (*ExpDecaySample) Count ¶ added in v1.9.120
func (s *ExpDecaySample) Count() int64
Count returns the number of samples recorded, which may exceed the reservoir size.
func (*ExpDecaySample) Max ¶ added in v1.9.120
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 ¶ added in v1.9.120
func (s *ExpDecaySample) Mean() float64
Mean returns the mean of the values in the sample.
func (*ExpDecaySample) Min ¶ added in v1.9.120
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 ¶ added in v1.9.120
func (s *ExpDecaySample) Percentile(p float64) float64
Percentile returns an arbitrary percentile of values in the sample.
func (*ExpDecaySample) Percentiles ¶ added in v1.9.120
func (s *ExpDecaySample) Percentiles(ps []float64) []float64
Percentiles returns a slice of arbitrary percentiles of values in the sample.
func (*ExpDecaySample) Size ¶ added in v1.9.120
func (s *ExpDecaySample) Size() int
Size returns the size of the sample, which is at most the reservoir size.
func (*ExpDecaySample) Snapshot ¶ added in v1.9.120
func (s *ExpDecaySample) Snapshot() Sample
Snapshot returns a read-only copy of the sample.
func (*ExpDecaySample) StdDev ¶ added in v1.9.120
func (s *ExpDecaySample) StdDev() float64
StdDev returns the standard deviation of the values in the sample.
func (*ExpDecaySample) Sum ¶ added in v1.9.120
func (s *ExpDecaySample) Sum() int64
Sum returns the sum of the values in the sample.
func (*ExpDecaySample) Update ¶ added in v1.9.120
func (s *ExpDecaySample) Update(v int64)
Update samples a new value.
func (*ExpDecaySample) Values ¶ added in v1.9.120
func (s *ExpDecaySample) Values() []int64
Values returns a copy of the values in the sample.
func (*ExpDecaySample) Variance ¶ added in v1.9.120
func (s *ExpDecaySample) Variance() float64
Variance returns the variance of the values in the sample.
type FunctionalGauge ¶ added in v1.9.120
type FunctionalGauge struct {
// contains filtered or unexported fields
}
FunctionalGauge returns value from given function
func (FunctionalGauge) Snapshot ¶ added in v1.9.120
func (g FunctionalGauge) Snapshot() Gauge
Snapshot returns the snapshot.
func (FunctionalGauge) Update ¶ added in v1.9.120
func (FunctionalGauge) Update(int64)
Update panics.
func (FunctionalGauge) Value ¶ added in v1.9.120
func (g FunctionalGauge) Value() int64
Value returns the gauge's current value.
type FunctionalGaugeFloat64 ¶ added in v1.9.120
type FunctionalGaugeFloat64 struct {
// contains filtered or unexported fields
}
FunctionalGaugeFloat64 returns value from given function
func (FunctionalGaugeFloat64) Snapshot ¶ added in v1.9.120
func (g FunctionalGaugeFloat64) Snapshot() GaugeFloat64
Snapshot returns the snapshot.
func (FunctionalGaugeFloat64) Update ¶ added in v1.9.120
func (FunctionalGaugeFloat64) Update(float64)
Update panics.
func (FunctionalGaugeFloat64) Value ¶ added in v1.9.120
func (g FunctionalGaugeFloat64) Value() float64
Value returns the gauge's current value.
type Gauge ¶ added in v1.9.120
Gauges hold an int64 value that can be set arbitrarily.
func GetOrRegisterGauge ¶ added in v1.9.120
GetOrRegisterGauge returns an existing Gauge or constructs and registers a new StandardGauge.
Example ¶
m := "server.bytes_sent" g := GetOrRegisterGauge(m, nil) g.Update(47) fmt.Println(g.Value())
Output: 47
func NewFunctionalGauge ¶ added in v1.9.120
NewFunctionalGauge constructs a new FunctionalGauge.
func NewRegisteredFunctionalGauge ¶ added in v1.9.120
NewRegisteredFunctionalGauge constructs and registers a new StandardGauge.
func NewRegisteredGauge ¶ added in v1.9.120
NewRegisteredGauge constructs and registers a new StandardGauge.
type GaugeFloat64 ¶ added in v1.9.120
type GaugeFloat64 interface { Snapshot() GaugeFloat64 Update(float64) Value() float64 }
GaugeFloat64s hold a float64 value that can be set arbitrarily.
func GetOrRegisterGaugeFloat64 ¶ added in v1.9.120
func GetOrRegisterGaugeFloat64(name string, r Registry) GaugeFloat64
GetOrRegisterGaugeFloat64 returns an existing GaugeFloat64 or constructs and registers a new StandardGaugeFloat64.
func NewFunctionalGaugeFloat64 ¶ added in v1.9.120
func NewFunctionalGaugeFloat64(f func() float64) GaugeFloat64
NewFunctionalGauge constructs a new FunctionalGauge.
func NewGaugeFloat64 ¶ added in v1.9.120
func NewGaugeFloat64() GaugeFloat64
NewGaugeFloat64 constructs a new StandardGaugeFloat64.
func NewRegisteredFunctionalGaugeFloat64 ¶ added in v1.9.120
func NewRegisteredFunctionalGaugeFloat64(name string, r Registry, f func() float64) GaugeFloat64
NewRegisteredFunctionalGauge constructs and registers a new StandardGauge.
func NewRegisteredGaugeFloat64 ¶ added in v1.9.120
func NewRegisteredGaugeFloat64(name string, r Registry) GaugeFloat64
NewRegisteredGaugeFloat64 constructs and registers a new StandardGaugeFloat64.
type GaugeFloat64Snapshot ¶ added in v1.9.120
type GaugeFloat64Snapshot float64
GaugeFloat64Snapshot is a read-only copy of another GaugeFloat64.
func (GaugeFloat64Snapshot) Snapshot ¶ added in v1.9.120
func (g GaugeFloat64Snapshot) Snapshot() GaugeFloat64
Snapshot returns the snapshot.
func (GaugeFloat64Snapshot) Update ¶ added in v1.9.120
func (GaugeFloat64Snapshot) Update(float64)
Update panics.
func (GaugeFloat64Snapshot) Value ¶ added in v1.9.120
func (g GaugeFloat64Snapshot) Value() float64
Value returns the value at the time the snapshot was taken.
type GaugeSnapshot ¶ added in v1.9.120
type GaugeSnapshot int64
GaugeSnapshot is a read-only copy of another Gauge.
func (GaugeSnapshot) Snapshot ¶ added in v1.9.120
func (g GaugeSnapshot) Snapshot() Gauge
Snapshot returns the snapshot.
func (GaugeSnapshot) Value ¶ added in v1.9.120
func (g GaugeSnapshot) Value() int64
Value returns the value at the time the snapshot was taken.
type GraphiteConfig ¶ added in v1.9.120
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 Percentiles []float64 // Percentiles to export from timers and histograms }
GraphiteConfig provides a container with configuration parameters for the Graphite exporter
type Healthcheck ¶ added in v1.9.120
Healthchecks hold an error value describing an arbitrary up/down status.
func NewHealthcheck ¶ added in v1.9.120
func NewHealthcheck(f func(Healthcheck)) Healthcheck
NewHealthcheck constructs a new Healthcheck which will use the given function to update its status.
type Histogram ¶ added in v1.9.120
type Histogram interface { Clear() Count() int64 Max() int64 Mean() float64 Min() int64 Percentile(float64) float64 Percentiles([]float64) []float64 Sample() Sample Snapshot() Histogram StdDev() float64 Sum() int64 Update(int64) Variance() float64 }
Histograms calculate distribution statistics from a series of int64 values.
func GetOrRegisterHistogram ¶ added in v1.9.120
GetOrRegisterHistogram returns an existing Histogram or constructs and registers a new StandardHistogram.
func NewHistogram ¶ added in v1.9.120
NewHistogram constructs a new StandardHistogram from a Sample.
type HistogramSnapshot ¶ added in v1.9.120
type HistogramSnapshot struct {
// contains filtered or unexported fields
}
HistogramSnapshot is a read-only copy of another Histogram.
func (*HistogramSnapshot) Count ¶ added in v1.9.120
func (h *HistogramSnapshot) Count() int64
Count returns the number of samples recorded at the time the snapshot was taken.
func (*HistogramSnapshot) Max ¶ added in v1.9.120
func (h *HistogramSnapshot) Max() int64
Max returns the maximum value in the sample at the time the snapshot was taken.
func (*HistogramSnapshot) Mean ¶ added in v1.9.120
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 ¶ added in v1.9.120
func (h *HistogramSnapshot) Min() int64
Min returns the minimum value in the sample at the time the snapshot was taken.
func (*HistogramSnapshot) Percentile ¶ added in v1.9.120
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 ¶ added in v1.9.120
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 ¶ added in v1.9.120
func (h *HistogramSnapshot) Sample() Sample
Sample returns the Sample underlying the histogram.
func (*HistogramSnapshot) Snapshot ¶ added in v1.9.120
func (h *HistogramSnapshot) Snapshot() Histogram
Snapshot returns the snapshot.
func (*HistogramSnapshot) StdDev ¶ added in v1.9.120
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) Sum ¶ added in v1.9.120
func (h *HistogramSnapshot) Sum() int64
Sum returns the sum in the sample at the time the snapshot was taken.
func (*HistogramSnapshot) Update ¶ added in v1.9.120
func (*HistogramSnapshot) Update(int64)
Update panics.
func (*HistogramSnapshot) Variance ¶ added in v1.9.120
func (h *HistogramSnapshot) Variance() float64
Variance returns the variance of inputs at the time the snapshot was taken.
type Int64Slice ¶ added in v1.9.120
type Int64Slice []int64
Int64Slice attaches the methods of sort.Interface to []int64, sorting in increasing order.
func (Int64Slice) Len ¶ added in v1.9.120
func (s Int64Slice) Len() int
func (Int64Slice) Less ¶ added in v1.9.120
func (s Int64Slice) Less(i, j int) bool
func (Int64Slice) Swap ¶ added in v1.9.120
func (s Int64Slice) Swap(i, j int)
type Meter ¶ added in v1.9.120
type Meter interface { Count() int64 Mark(int64) Rate1() float64 Rate5() float64 Rate15() float64 RateMean() float64 Snapshot() Meter Stop() }
Meters count events to produce exponentially-weighted moving average rates at one-, five-, and fifteen-minutes and a mean rate.
func GetOrRegisterMeter ¶ added in v1.9.120
GetOrRegisterMeter returns an existing Meter or constructs and registers a new StandardMeter. Be sure to unregister the meter from the registry once it is of no use to allow for garbage collection.
func NewMeter ¶
func NewMeter() Meter
NewMeter constructs a new StandardMeter and launches a goroutine. Be sure to call Stop() once the meter is of no use to allow for garbage collection.
func NewRegisteredMeter ¶ added in v1.9.120
NewMeter constructs and registers a new StandardMeter and launches a goroutine. Be sure to unregister the meter from the registry once it is of no use to allow for garbage collection.
type MeterSnapshot ¶ added in v1.9.120
type MeterSnapshot struct {
// contains filtered or unexported fields
}
MeterSnapshot is a read-only copy of another Meter.
func (*MeterSnapshot) Count ¶ added in v1.9.120
func (m *MeterSnapshot) Count() int64
Count returns the count of events at the time the snapshot was taken.
func (*MeterSnapshot) Rate1 ¶ added in v1.9.120
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 ¶ added in v1.9.120
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 ¶ added in v1.9.120
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 ¶ added in v1.9.120
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 ¶ added in v1.9.120
func (m *MeterSnapshot) Snapshot() Meter
Snapshot returns the snapshot.
type NilCounter ¶ added in v1.9.120
type NilCounter struct{}
NilCounter is a no-op Counter.
func (NilCounter) Snapshot ¶ added in v1.9.120
func (NilCounter) Snapshot() Counter
Snapshot is a no-op.
type NilGaugeFloat64 ¶ added in v1.9.120
type NilGaugeFloat64 struct{}
NilGauge is a no-op Gauge.
func (NilGaugeFloat64) Snapshot ¶ added in v1.9.120
func (NilGaugeFloat64) Snapshot() GaugeFloat64
Snapshot is a no-op.
func (NilGaugeFloat64) Update ¶ added in v1.9.120
func (NilGaugeFloat64) Update(v float64)
Update is a no-op.
func (NilGaugeFloat64) Value ¶ added in v1.9.120
func (NilGaugeFloat64) Value() float64
Value is a no-op.
type NilHealthcheck ¶ added in v1.9.120
type NilHealthcheck struct{}
NilHealthcheck is a no-op.
func (NilHealthcheck) Error ¶ added in v1.9.120
func (NilHealthcheck) Error() error
Error is a no-op.
func (NilHealthcheck) Healthy ¶ added in v1.9.120
func (NilHealthcheck) Healthy()
Healthy is a no-op.
func (NilHealthcheck) Unhealthy ¶ added in v1.9.120
func (NilHealthcheck) Unhealthy(error)
Unhealthy is a no-op.
type NilHistogram ¶ added in v1.9.120
type NilHistogram struct{}
NilHistogram is a no-op Histogram.
func (NilHistogram) Percentile ¶ added in v1.9.120
func (NilHistogram) Percentile(p float64) float64
Percentile is a no-op.
func (NilHistogram) Percentiles ¶ added in v1.9.120
func (NilHistogram) Percentiles(ps []float64) []float64
Percentiles is a no-op.
func (NilHistogram) Sample ¶ added in v1.9.120
func (NilHistogram) Sample() Sample
Sample is a no-op.
func (NilHistogram) Snapshot ¶ added in v1.9.120
func (NilHistogram) Snapshot() Histogram
Snapshot is a no-op.
func (NilHistogram) StdDev ¶ added in v1.9.120
func (NilHistogram) StdDev() float64
StdDev is a no-op.
func (NilHistogram) Update ¶ added in v1.9.120
func (NilHistogram) Update(v int64)
Update is a no-op.
func (NilHistogram) Variance ¶ added in v1.9.120
func (NilHistogram) Variance() float64
Variance is a no-op.
type NilMeter ¶ added in v1.9.120
type NilMeter struct{}
NilMeter is a no-op Meter.
type NilResettingTimer ¶ added in v1.9.120
type NilResettingTimer struct { }
NilResettingTimer is a no-op ResettingTimer.
func (NilResettingTimer) Mean ¶ added in v1.9.120
func (NilResettingTimer) Mean() float64
Mean panics.
func (NilResettingTimer) Percentiles ¶ added in v1.9.120
func (NilResettingTimer) Percentiles([]float64) []int64
Percentiles panics.
func (NilResettingTimer) Snapshot ¶ added in v1.9.120
func (NilResettingTimer) Snapshot() ResettingTimer
Snapshot is a no-op.
func (NilResettingTimer) Time ¶ added in v1.9.120
func (NilResettingTimer) Time(func())
Time is a no-op.
func (NilResettingTimer) Update ¶ added in v1.9.120
func (NilResettingTimer) Update(time.Duration)
Update is a no-op.
func (NilResettingTimer) UpdateSince ¶ added in v1.9.120
func (NilResettingTimer) UpdateSince(time.Time)
UpdateSince is a no-op.
func (NilResettingTimer) Values ¶ added in v1.9.120
func (NilResettingTimer) Values() []int64
Values is a no-op.
type NilSample ¶ added in v1.9.120
type NilSample struct{}
NilSample is a no-op Sample.
func (NilSample) Percentile ¶ added in v1.9.120
Percentile is a no-op.
func (NilSample) Percentiles ¶ added in v1.9.120
Percentiles is a no-op.
type NilTimer ¶ added in v1.9.120
type NilTimer struct {
// contains filtered or unexported fields
}
NilTimer is a no-op Timer.
func (NilTimer) Percentile ¶ added in v1.9.120
Percentile is a no-op.
func (NilTimer) Percentiles ¶ added in v1.9.120
Percentiles is a no-op.
func (NilTimer) UpdateSince ¶ added in v1.9.120
UpdateSince is a no-op.
type OpenTSDBConfig ¶ added in v1.9.120
type OpenTSDBConfig 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 }
OpenTSDBConfig provides a container with configuration parameters for the OpenTSDB exporter
type PrefixedRegistry ¶ added in v1.9.120
type PrefixedRegistry struct {
// contains filtered or unexported fields
}
func (*PrefixedRegistry) Each ¶ added in v1.9.120
func (r *PrefixedRegistry) Each(fn func(string, interface{}))
Call the given function for each registered metric.
func (*PrefixedRegistry) Get ¶ added in v1.9.120
func (r *PrefixedRegistry) Get(name string) interface{}
Get the metric by the given name or nil if none is registered.
func (*PrefixedRegistry) GetAll ¶ added in v1.9.120
func (r *PrefixedRegistry) GetAll() map[string]map[string]interface{}
GetAll metrics in the Registry
func (*PrefixedRegistry) GetOrRegister ¶ added in v1.9.120
func (r *PrefixedRegistry) GetOrRegister(name string, metric interface{}) interface{}
Gets an existing metric or registers the given one. The interface can be the metric to register if not found in registry, or a function returning the metric for lazy instantiation.
func (*PrefixedRegistry) MarshalJSON ¶ added in v1.9.120
func (p *PrefixedRegistry) MarshalJSON() ([]byte, error)
func (*PrefixedRegistry) Register ¶ added in v1.9.120
func (r *PrefixedRegistry) Register(name string, metric interface{}) error
Register the given metric under the given name. The name will be prefixed.
func (*PrefixedRegistry) RunHealthchecks ¶ added in v1.9.120
func (r *PrefixedRegistry) RunHealthchecks()
Run all registered healthchecks.
func (*PrefixedRegistry) Unregister ¶ added in v1.9.120
func (r *PrefixedRegistry) Unregister(name string)
Unregister the metric with the given name. The name will be prefixed.
func (*PrefixedRegistry) UnregisterAll ¶ added in v1.9.120
func (r *PrefixedRegistry) UnregisterAll()
Unregister all metrics. (Mostly for testing.)
type Registry ¶ added in v1.9.120
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{} // GetAll metrics in the Registry. GetAll() map[string]map[string]interface{} // Gets an existing metric or registers the given one. // The interface can be the metric to register if not found in registry, // or a function returning the metric for lazy instantiation. GetOrRegister(string, interface{}) interface{} // Register the given metric under the given name. Register(string, interface{}) error // Run all registered healthchecks. RunHealthchecks() // Unregister the metric with the given name. Unregister(string) // Unregister all metrics. (Mostly for testing.) UnregisterAll() }
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()
func NewPrefixedChildRegistry ¶ added in v1.9.120
func NewPrefixedRegistry ¶ added in v1.9.120
type ResettingTimer ¶ added in v1.9.120
type ResettingTimer interface { Values() []int64 Snapshot() ResettingTimer Percentiles([]float64) []int64 Mean() float64 Time(func()) Update(time.Duration) UpdateSince(time.Time) }
ResettingTimer is used for storing aggregated values for timers, which are reset on every flush interval.
func GetOrRegisterResettingTimer ¶ added in v1.9.120
func GetOrRegisterResettingTimer(name string, r Registry) ResettingTimer
GetOrRegisterResettingTimer returns an existing ResettingTimer or constructs and registers a new StandardResettingTimer.
func NewRegisteredResettingTimer ¶ added in v1.9.120
func NewRegisteredResettingTimer(name string, r Registry) ResettingTimer
NewRegisteredResettingTimer constructs and registers a new StandardResettingTimer.
func NewResettingTimer ¶ added in v1.9.120
func NewResettingTimer() ResettingTimer
NewResettingTimer constructs a new StandardResettingTimer
type ResettingTimerSnapshot ¶ added in v1.9.120
type ResettingTimerSnapshot struct {
// contains filtered or unexported fields
}
ResettingTimerSnapshot is a point-in-time copy of another ResettingTimer.
func (*ResettingTimerSnapshot) Mean ¶ added in v1.9.120
func (t *ResettingTimerSnapshot) Mean() float64
Mean returns the mean of the snapshotted values
func (*ResettingTimerSnapshot) Percentiles ¶ added in v1.9.120
func (t *ResettingTimerSnapshot) Percentiles(percentiles []float64) []int64
Percentiles returns the boundaries for the input percentiles.
func (*ResettingTimerSnapshot) Snapshot ¶ added in v1.9.120
func (t *ResettingTimerSnapshot) Snapshot() ResettingTimer
Snapshot returns the snapshot.
func (*ResettingTimerSnapshot) Time ¶ added in v1.9.120
func (*ResettingTimerSnapshot) Time(func())
Time panics.
func (*ResettingTimerSnapshot) Update ¶ added in v1.9.120
func (*ResettingTimerSnapshot) Update(time.Duration)
Update panics.
func (*ResettingTimerSnapshot) UpdateSince ¶ added in v1.9.120
func (*ResettingTimerSnapshot) UpdateSince(time.Time)
UpdateSince panics.
func (*ResettingTimerSnapshot) Values ¶ added in v1.9.120
func (t *ResettingTimerSnapshot) Values() []int64
Values returns all values from snapshot.
type Sample ¶ added in v1.9.120
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 ¶ added in v1.9.120
NewExpDecaySample constructs a new exponentially-decaying sample with the given reservoir size and alpha.
func NewUniformSample ¶ added in v1.9.120
NewUniformSample constructs a new uniform sample with the given reservoir size.
type SampleSnapshot ¶ added in v1.9.120
type SampleSnapshot struct {
// contains filtered or unexported fields
}
SampleSnapshot is a read-only copy of another Sample.
func NewSampleSnapshot ¶ added in v1.9.120
func NewSampleSnapshot(count int64, values []int64) *SampleSnapshot
func (*SampleSnapshot) Count ¶ added in v1.9.120
func (s *SampleSnapshot) Count() int64
Count returns the count of inputs at the time the snapshot was taken.
func (*SampleSnapshot) Max ¶ added in v1.9.120
func (s *SampleSnapshot) Max() int64
Max returns the maximal value at the time the snapshot was taken.
func (*SampleSnapshot) Mean ¶ added in v1.9.120
func (s *SampleSnapshot) Mean() float64
Mean returns the mean value at the time the snapshot was taken.
func (*SampleSnapshot) Min ¶ added in v1.9.120
func (s *SampleSnapshot) Min() int64
Min returns the minimal value at the time the snapshot was taken.
func (*SampleSnapshot) Percentile ¶ added in v1.9.120
func (s *SampleSnapshot) Percentile(p float64) float64
Percentile returns an arbitrary percentile of values at the time the snapshot was taken.
func (*SampleSnapshot) Percentiles ¶ added in v1.9.120
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 ¶ added in v1.9.120
func (s *SampleSnapshot) Size() int
Size returns the size of the sample at the time the snapshot was taken.
func (*SampleSnapshot) Snapshot ¶ added in v1.9.120
func (s *SampleSnapshot) Snapshot() Sample
Snapshot returns the snapshot.
func (*SampleSnapshot) StdDev ¶ added in v1.9.120
func (s *SampleSnapshot) StdDev() float64
StdDev returns the standard deviation of values at the time the snapshot was taken.
func (*SampleSnapshot) Sum ¶ added in v1.9.120
func (s *SampleSnapshot) Sum() int64
Sum returns the sum of values at the time the snapshot was taken.
func (*SampleSnapshot) Update ¶ added in v1.9.120
func (*SampleSnapshot) Update(int64)
Update panics.
func (*SampleSnapshot) Values ¶ added in v1.9.120
func (s *SampleSnapshot) Values() []int64
Values returns a copy of the values in the sample.
func (*SampleSnapshot) Variance ¶ added in v1.9.120
func (s *SampleSnapshot) Variance() float64
Variance returns the variance of values at the time the snapshot was taken.
type StandardCounter ¶ added in v1.9.120
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) Clear ¶ added in v1.9.120
func (c *StandardCounter) Clear()
Clear sets the counter to zero.
func (*StandardCounter) Count ¶ added in v1.9.120
func (c *StandardCounter) Count() int64
Count returns the current count.
func (*StandardCounter) Dec ¶ added in v1.9.120
func (c *StandardCounter) Dec(i int64)
Dec decrements the counter by the given amount.
func (*StandardCounter) Inc ¶ added in v1.9.120
func (c *StandardCounter) Inc(i int64)
Inc increments the counter by the given amount.
func (*StandardCounter) Snapshot ¶ added in v1.9.120
func (c *StandardCounter) Snapshot() Counter
Snapshot returns a read-only copy of the counter.
type StandardEWMA ¶ added in v1.9.120
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 ¶ added in v1.9.120
func (a *StandardEWMA) Rate() float64
Rate returns the moving average rate of events per second.
func (*StandardEWMA) Snapshot ¶ added in v1.9.120
func (a *StandardEWMA) Snapshot() EWMA
Snapshot returns a read-only copy of the EWMA.
func (*StandardEWMA) Tick ¶ added in v1.9.120
func (a *StandardEWMA) Tick()
Tick ticks the clock to update the moving average. It assumes it is called every five seconds.
func (*StandardEWMA) Update ¶ added in v1.9.120
func (a *StandardEWMA) Update(n int64)
Update adds n uncounted events.
type StandardGauge ¶ added in v1.9.120
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 ¶ added in v1.9.120
func (g *StandardGauge) Snapshot() Gauge
Snapshot returns a read-only copy of the gauge.
func (*StandardGauge) Update ¶ added in v1.9.120
func (g *StandardGauge) Update(v int64)
Update updates the gauge's value.
func (*StandardGauge) Value ¶ added in v1.9.120
func (g *StandardGauge) Value() int64
Value returns the gauge's current value.
type StandardGaugeFloat64 ¶ added in v1.9.120
type StandardGaugeFloat64 struct {
// contains filtered or unexported fields
}
StandardGaugeFloat64 is the standard implementation of a GaugeFloat64 and uses sync.Mutex to manage a single float64 value.
func (*StandardGaugeFloat64) Snapshot ¶ added in v1.9.120
func (g *StandardGaugeFloat64) Snapshot() GaugeFloat64
Snapshot returns a read-only copy of the gauge.
func (*StandardGaugeFloat64) Update ¶ added in v1.9.120
func (g *StandardGaugeFloat64) Update(v float64)
Update updates the gauge's value.
func (*StandardGaugeFloat64) Value ¶ added in v1.9.120
func (g *StandardGaugeFloat64) Value() float64
Value returns the gauge's current value.
type StandardHealthcheck ¶ added in v1.9.120
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 ¶ added in v1.9.120
func (h *StandardHealthcheck) Check()
Check runs the healthcheck function to update the healthcheck's status.
func (*StandardHealthcheck) Error ¶ added in v1.9.120
func (h *StandardHealthcheck) Error() error
Error returns the healthcheck's status, which will be nil if it is healthy.
func (*StandardHealthcheck) Healthy ¶ added in v1.9.120
func (h *StandardHealthcheck) Healthy()
Healthy marks the healthcheck as healthy.
func (*StandardHealthcheck) Unhealthy ¶ added in v1.9.120
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 ¶ added in v1.9.120
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 ¶ added in v1.9.120
func (h *StandardHistogram) Clear()
Clear clears the histogram and its sample.
func (*StandardHistogram) Count ¶ added in v1.9.120
func (h *StandardHistogram) Count() int64
Count returns the number of samples recorded since the histogram was last cleared.
func (*StandardHistogram) Max ¶ added in v1.9.120
func (h *StandardHistogram) Max() int64
Max returns the maximum value in the sample.
func (*StandardHistogram) Mean ¶ added in v1.9.120
func (h *StandardHistogram) Mean() float64
Mean returns the mean of the values in the sample.
func (*StandardHistogram) Min ¶ added in v1.9.120
func (h *StandardHistogram) Min() int64
Min returns the minimum value in the sample.
func (*StandardHistogram) Percentile ¶ added in v1.9.120
func (h *StandardHistogram) Percentile(p float64) float64
Percentile returns an arbitrary percentile of the values in the sample.
func (*StandardHistogram) Percentiles ¶ added in v1.9.120
func (h *StandardHistogram) Percentiles(ps []float64) []float64
Percentiles returns a slice of arbitrary percentiles of the values in the sample.
func (*StandardHistogram) Sample ¶ added in v1.9.120
func (h *StandardHistogram) Sample() Sample
Sample returns the Sample underlying the histogram.
func (*StandardHistogram) Snapshot ¶ added in v1.9.120
func (h *StandardHistogram) Snapshot() Histogram
Snapshot returns a read-only copy of the histogram.
func (*StandardHistogram) StdDev ¶ added in v1.9.120
func (h *StandardHistogram) StdDev() float64
StdDev returns the standard deviation of the values in the sample.
func (*StandardHistogram) Sum ¶ added in v1.9.120
func (h *StandardHistogram) Sum() int64
Sum returns the sum in the sample.
func (*StandardHistogram) Update ¶ added in v1.9.120
func (h *StandardHistogram) Update(v int64)
Update samples a new value.
func (*StandardHistogram) Variance ¶ added in v1.9.120
func (h *StandardHistogram) Variance() float64
Variance returns the variance of the values in the sample.
type StandardMeter ¶ added in v1.9.120
type StandardMeter struct {
// contains filtered or unexported fields
}
StandardMeter is the standard implementation of a Meter.
func (*StandardMeter) Count ¶ added in v1.9.120
func (m *StandardMeter) Count() int64
Count returns the number of events recorded.
func (*StandardMeter) Mark ¶ added in v1.9.120
func (m *StandardMeter) Mark(n int64)
Mark records the occurrence of n events.
func (*StandardMeter) Rate1 ¶ added in v1.9.120
func (m *StandardMeter) Rate1() float64
Rate1 returns the one-minute moving average rate of events per second.
func (*StandardMeter) Rate15 ¶ added in v1.9.120
func (m *StandardMeter) Rate15() float64
Rate15 returns the fifteen-minute moving average rate of events per second.
func (*StandardMeter) Rate5 ¶ added in v1.9.120
func (m *StandardMeter) Rate5() float64
Rate5 returns the five-minute moving average rate of events per second.
func (*StandardMeter) RateMean ¶ added in v1.9.120
func (m *StandardMeter) RateMean() float64
RateMean returns the meter's mean rate of events per second.
func (*StandardMeter) Snapshot ¶ added in v1.9.120
func (m *StandardMeter) Snapshot() Meter
Snapshot returns a read-only copy of the meter.
func (*StandardMeter) Stop ¶ added in v1.9.120
func (m *StandardMeter) Stop()
Stop stops the meter, Mark() will be a no-op if you use it after being stopped.
type StandardRegistry ¶ added in v1.9.120
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 ¶ added in v1.9.120
func (r *StandardRegistry) Each(f func(string, interface{}))
Call the given function for each registered metric.
func (*StandardRegistry) Get ¶ added in v1.9.120
func (r *StandardRegistry) Get(name string) interface{}
Get the metric by the given name or nil if none is registered.
func (*StandardRegistry) GetAll ¶ added in v1.9.120
func (r *StandardRegistry) GetAll() map[string]map[string]interface{}
GetAll metrics in the Registry
func (*StandardRegistry) GetOrRegister ¶ added in v1.9.120
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. The interface can be the metric to register if not found in registry, or a function returning the metric for lazy instantiation.
func (*StandardRegistry) MarshalJSON ¶ added in v1.9.120
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 ¶ added in v1.9.120
func (r *StandardRegistry) Register(name string, i interface{}) error
Register the given metric under the given name. Returns a DuplicateMetric if a metric by the given name is already registered.
func (*StandardRegistry) RunHealthchecks ¶ added in v1.9.120
func (r *StandardRegistry) RunHealthchecks()
Run all registered healthchecks.
func (*StandardRegistry) Unregister ¶ added in v1.9.120
func (r *StandardRegistry) Unregister(name string)
Unregister the metric with the given name.
func (*StandardRegistry) UnregisterAll ¶ added in v1.9.120
func (r *StandardRegistry) UnregisterAll()
Unregister all metrics. (Mostly for testing.)
type StandardResettingTimer ¶ added in v1.9.120
type StandardResettingTimer struct {
// contains filtered or unexported fields
}
StandardResettingTimer is the standard implementation of a ResettingTimer. and Meter.
func (*StandardResettingTimer) Mean ¶ added in v1.9.120
func (t *StandardResettingTimer) Mean() float64
Mean panics.
func (*StandardResettingTimer) Percentiles ¶ added in v1.9.120
func (t *StandardResettingTimer) Percentiles([]float64) []int64
Percentiles panics.
func (*StandardResettingTimer) Snapshot ¶ added in v1.9.120
func (t *StandardResettingTimer) Snapshot() ResettingTimer
Snapshot resets the timer and returns a read-only copy of its contents.
func (*StandardResettingTimer) Time ¶ added in v1.9.120
func (t *StandardResettingTimer) Time(f func())
Record the duration of the execution of the given function.
func (*StandardResettingTimer) Update ¶ added in v1.9.120
func (t *StandardResettingTimer) Update(d time.Duration)
Record the duration of an event.
func (*StandardResettingTimer) UpdateSince ¶ added in v1.9.120
func (t *StandardResettingTimer) UpdateSince(ts time.Time)
Record the duration of an event that started at a time and ends now.
func (*StandardResettingTimer) Values ¶ added in v1.9.120
func (t *StandardResettingTimer) Values() []int64
Values returns a slice with all measurements.
type StandardTimer ¶ added in v1.9.120
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 ¶ added in v1.9.120
func (t *StandardTimer) Count() int64
Count returns the number of events recorded.
func (*StandardTimer) Max ¶ added in v1.9.120
func (t *StandardTimer) Max() int64
Max returns the maximum value in the sample.
func (*StandardTimer) Mean ¶ added in v1.9.120
func (t *StandardTimer) Mean() float64
Mean returns the mean of the values in the sample.
func (*StandardTimer) Min ¶ added in v1.9.120
func (t *StandardTimer) Min() int64
Min returns the minimum value in the sample.
func (*StandardTimer) Percentile ¶ added in v1.9.120
func (t *StandardTimer) Percentile(p float64) float64
Percentile returns an arbitrary percentile of the values in the sample.
func (*StandardTimer) Percentiles ¶ added in v1.9.120
func (t *StandardTimer) Percentiles(ps []float64) []float64
Percentiles returns a slice of arbitrary percentiles of the values in the sample.
func (*StandardTimer) Rate1 ¶ added in v1.9.120
func (t *StandardTimer) Rate1() float64
Rate1 returns the one-minute moving average rate of events per second.
func (*StandardTimer) Rate15 ¶ added in v1.9.120
func (t *StandardTimer) Rate15() float64
Rate15 returns the fifteen-minute moving average rate of events per second.
func (*StandardTimer) Rate5 ¶ added in v1.9.120
func (t *StandardTimer) Rate5() float64
Rate5 returns the five-minute moving average rate of events per second.
func (*StandardTimer) RateMean ¶ added in v1.9.120
func (t *StandardTimer) RateMean() float64
RateMean returns the meter's mean rate of events per second.
func (*StandardTimer) Snapshot ¶ added in v1.9.120
func (t *StandardTimer) Snapshot() Timer
Snapshot returns a read-only copy of the timer.
func (*StandardTimer) StdDev ¶ added in v1.9.120
func (t *StandardTimer) StdDev() float64
StdDev returns the standard deviation of the values in the sample.
func (*StandardTimer) Sum ¶ added in v1.9.120
func (t *StandardTimer) Sum() int64
Sum returns the sum in the sample.
func (*StandardTimer) Time ¶ added in v1.9.120
func (t *StandardTimer) Time(f func())
Record the duration of the execution of the given function.
func (*StandardTimer) Update ¶ added in v1.9.120
func (t *StandardTimer) Update(d time.Duration)
Record the duration of an event.
func (*StandardTimer) UpdateSince ¶ added in v1.9.120
func (t *StandardTimer) UpdateSince(ts time.Time)
Record the duration of an event that started at a time and ends now.
func (*StandardTimer) Variance ¶ added in v1.9.120
func (t *StandardTimer) Variance() float64
Variance returns the variance of the values in the sample.
type Stoppable ¶ added in v1.9.120
type Stoppable interface {
Stop()
}
Stoppable defines the metrics which has to be stopped.
type Timer ¶ added in v1.9.120
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 Stop() Sum() int64 Time(func()) Update(time.Duration) UpdateSince(time.Time) Variance() float64 }
Timers capture the duration and rate of events.
func GetOrRegisterTimer ¶ added in v1.9.120
GetOrRegisterTimer returns an existing Timer or constructs and registers a new StandardTimer. Be sure to unregister the meter from the registry once it is of no use to allow for garbage collection.
Example ¶
m := "account.create.latency" t := GetOrRegisterTimer(m, nil) t.Update(47) fmt.Println(t.Max())
Output: 47
func NewCustomTimer ¶ added in v1.9.120
NewCustomTimer constructs a new StandardTimer from a Histogram and a Meter. Be sure to call Stop() once the timer is of no use to allow for garbage collection.
func NewRegisteredTimer ¶ added in v1.9.120
NewRegisteredTimer constructs and registers a new StandardTimer. Be sure to unregister the meter from the registry once it is of no use to allow for garbage collection.
type TimerSnapshot ¶ added in v1.9.120
type TimerSnapshot struct {
// contains filtered or unexported fields
}
TimerSnapshot is a read-only copy of another Timer.
func (*TimerSnapshot) Count ¶ added in v1.9.120
func (t *TimerSnapshot) Count() int64
Count returns the number of events recorded at the time the snapshot was taken.
func (*TimerSnapshot) Max ¶ added in v1.9.120
func (t *TimerSnapshot) Max() int64
Max returns the maximum value at the time the snapshot was taken.
func (*TimerSnapshot) Mean ¶ added in v1.9.120
func (t *TimerSnapshot) Mean() float64
Mean returns the mean value at the time the snapshot was taken.
func (*TimerSnapshot) Min ¶ added in v1.9.120
func (t *TimerSnapshot) Min() int64
Min returns the minimum value at the time the snapshot was taken.
func (*TimerSnapshot) Percentile ¶ added in v1.9.120
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 ¶ added in v1.9.120
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 ¶ added in v1.9.120
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 ¶ added in v1.9.120
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 ¶ added in v1.9.120
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 ¶ added in v1.9.120
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 ¶ added in v1.9.120
func (t *TimerSnapshot) Snapshot() Timer
Snapshot returns the snapshot.
func (*TimerSnapshot) StdDev ¶ added in v1.9.120
func (t *TimerSnapshot) StdDev() float64
StdDev returns the standard deviation of the values at the time the snapshot was taken.
func (*TimerSnapshot) Sum ¶ added in v1.9.120
func (t *TimerSnapshot) Sum() int64
Sum returns the sum at the time the snapshot was taken.
func (*TimerSnapshot) Update ¶ added in v1.9.120
func (*TimerSnapshot) Update(time.Duration)
Update panics.
func (*TimerSnapshot) UpdateSince ¶ added in v1.9.120
func (*TimerSnapshot) UpdateSince(time.Time)
UpdateSince panics.
func (*TimerSnapshot) Variance ¶ added in v1.9.120
func (t *TimerSnapshot) Variance() float64
Variance returns the variance of the values at the time the snapshot was taken.
type UniformSample ¶ added in v1.9.120
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) Clear ¶ added in v1.9.120
func (s *UniformSample) Clear()
Clear clears all samples.
func (*UniformSample) Count ¶ added in v1.9.120
func (s *UniformSample) Count() int64
Count returns the number of samples recorded, which may exceed the reservoir size.
func (*UniformSample) Max ¶ added in v1.9.120
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 ¶ added in v1.9.120
func (s *UniformSample) Mean() float64
Mean returns the mean of the values in the sample.
func (*UniformSample) Min ¶ added in v1.9.120
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 ¶ added in v1.9.120
func (s *UniformSample) Percentile(p float64) float64
Percentile returns an arbitrary percentile of values in the sample.
func (*UniformSample) Percentiles ¶ added in v1.9.120
func (s *UniformSample) Percentiles(ps []float64) []float64
Percentiles returns a slice of arbitrary percentiles of values in the sample.
func (*UniformSample) Size ¶ added in v1.9.120
func (s *UniformSample) Size() int
Size returns the size of the sample, which is at most the reservoir size.
func (*UniformSample) Snapshot ¶ added in v1.9.120
func (s *UniformSample) Snapshot() Sample
Snapshot returns a read-only copy of the sample.
func (*UniformSample) StdDev ¶ added in v1.9.120
func (s *UniformSample) StdDev() float64
StdDev returns the standard deviation of the values in the sample.
func (*UniformSample) Sum ¶ added in v1.9.120
func (s *UniformSample) Sum() int64
Sum returns the sum of the values in the sample.
func (*UniformSample) Update ¶ added in v1.9.120
func (s *UniformSample) Update(v int64)
Update samples a new value.
func (*UniformSample) Values ¶ added in v1.9.120
func (s *UniformSample) Values() []int64
Values returns a copy of the values in the sample.
func (*UniformSample) Variance ¶ added in v1.9.120
func (s *UniformSample) Variance() float64
Variance returns the variance of the values in the sample.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Hook go-metrics into expvar on any /debug/metrics request, load all vars from the registry into expvar, and execute regular expvar handler
|
Hook go-metrics into expvar on any /debug/metrics request, load all vars from the registry into expvar, and execute regular expvar handler |