go-metrics: github.com/rcrowley/go-metrics Index | Examples | Files | Directories

package metrics

import "github.com/rcrowley/go-metrics"

Go port of Coda Hale's Metrics library

<https://github.com/rcrowley/go-metrics>

Coda Hale's original work: <https://github.com/codahale/metrics>

Code:

c := NewCounter()
Register("money", c)
c.Inc(17)

// Threadsafe registration
t := GetOrRegisterTimer("db.get.latency", nil)
t.Time(func() {})
t.Update(1)

fmt.Println(c.Count())
fmt.Println(t.Min())

Output:

17
1

Index

Examples

Package Files

counter.go debug.go ewma.go gauge.go gauge_float64.go graphite.go healthcheck.go histogram.go json.go log.go meter.go metrics.go opentsdb.go registry.go runtime.go runtime_cgo.go runtime_gccpufraction.go sample.go syslog.go timer.go writer.go

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.

func CaptureDebugGCStats Uses

func CaptureDebugGCStats(r Registry, d time.Duration)

Capture new values for the Go garbage collector statistics exported in debug.GCStats. This is designed to be called as a goroutine.

func CaptureDebugGCStatsOnce Uses

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 Uses

func CaptureRuntimeMemStats(r Registry, d time.Duration)

Capture new values for the Go runtime statistics exported in runtime.MemStats. This is designed to be called as a goroutine.

func CaptureRuntimeMemStatsOnce Uses

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 Uses

func Each(f func(string, interface{}))

Call the given function for each registered metric.

func Get Uses

func Get(name string) interface{}

Get the metric by the given name or nil if none is registered.

func GetOrRegister Uses

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 Uses

func Graphite(r Registry, d time.Duration, prefix string, addr *net.TCPAddr)

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.

Code:

addr, _ := net.ResolveTCPAddr("net", ":2003")
go Graphite(DefaultRegistry, 1*time.Second, "some.prefix", addr)

func GraphiteOnce Uses

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 Uses

func GraphiteWithConfig(c GraphiteConfig)

GraphiteWithConfig is a blocking exporter function just like Graphite, but it takes a GraphiteConfig instead.

Code:

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},
})

func Log Uses

func Log(r Registry, freq time.Duration, l Logger)

func LogScaled Uses

func LogScaled(r Registry, freq time.Duration, scale time.Duration, l Logger)

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 Uses

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 Uses

func OpenTSDB(r Registry, d time.Duration, prefix string, addr *net.TCPAddr)

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.

Code:

addr, _ := net.ResolveTCPAddr("net", ":2003")
go OpenTSDB(DefaultRegistry, 1*time.Second, "some.prefix", addr)

func OpenTSDBWithConfig Uses

func OpenTSDBWithConfig(c OpenTSDBConfig)

OpenTSDBWithConfig is a blocking exporter function just like OpenTSDB, but it takes a OpenTSDBConfig instead.

Code:

addr, _ := net.ResolveTCPAddr("net", ":2003")
go OpenTSDBWithConfig(OpenTSDBConfig{
    Addr:          addr,
    Registry:      DefaultRegistry,
    FlushInterval: 1 * time.Second,
    DurationUnit:  time.Millisecond,
})

func Register Uses

func 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 RegisterDebugGCStats Uses

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 Uses

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 RunHealthchecks Uses

func RunHealthchecks()

Run all registered healthchecks.

func SampleMax Uses

func SampleMax(values []int64) int64

SampleMax returns the maximum value of the slice of int64.

func SampleMean Uses

func SampleMean(values []int64) float64

SampleMean returns the mean value of the slice of int64.

func SampleMin Uses

func SampleMin(values []int64) int64

SampleMin returns the minimum value of the slice of int64.

func SamplePercentile Uses

func SamplePercentile(values int64Slice, p float64) float64

SamplePercentiles returns an arbitrary percentile of the slice of int64.

func SamplePercentiles Uses

func SamplePercentiles(values int64Slice, ps []float64) []float64

SamplePercentiles returns a slice of arbitrary percentiles of the slice of int64.

func SampleStdDev Uses

func SampleStdDev(values []int64) float64

SampleStdDev returns the standard deviation of the slice of int64.

func SampleSum Uses

func SampleSum(values []int64) int64

SampleSum returns the sum of the slice of int64.

func SampleVariance Uses

func SampleVariance(values []int64) float64

SampleVariance returns the variance of the slice of int64.

func Syslog Uses

func Syslog(r Registry, d time.Duration, w *syslog.Writer)

Output each metric in the given registry to syslog periodically using the given syslogger.

func Unregister Uses

func Unregister(name string)

Unregister the metric with the given name.

func Write Uses

func Write(r Registry, d time.Duration, w io.Writer)

Write sorts writes each metric in the given registry periodically to the given io.Writer.

func WriteJSON Uses

func WriteJSON(r Registry, d time.Duration, w io.Writer)

WriteJSON writes metrics from the given registry periodically to the specified io.Writer as JSON.

func WriteJSONOnce Uses

func WriteJSONOnce(r Registry, w io.Writer)

WriteJSONOnce writes metrics from the given registry to the specified io.Writer as JSON.

func WriteOnce Uses

func WriteOnce(r Registry, w io.Writer)

WriteOnce sorts and writes metrics in the given registry to the given io.Writer.

type Counter Uses

type Counter interface {
    Clear()
    Count() int64
    Dec(int64)
    Inc(int64)
    Snapshot() Counter
}

Counters hold an int64 value that can be incremented and decremented.

func GetOrRegisterCounter Uses

func GetOrRegisterCounter(name string, r Registry) Counter

GetOrRegisterCounter returns an existing Counter or constructs and registers a new StandardCounter.

func NewCounter Uses

func NewCounter() Counter

NewCounter constructs a new StandardCounter.

func NewRegisteredCounter Uses

func NewRegisteredCounter(name string, r Registry) Counter

NewRegisteredCounter constructs and registers a new StandardCounter.

type CounterSnapshot Uses

type CounterSnapshot int64

CounterSnapshot is a read-only copy of another Counter.

func (CounterSnapshot) Clear Uses

func (CounterSnapshot) Clear()

Clear panics.

func (CounterSnapshot) Count Uses

func (c CounterSnapshot) Count() int64

Count returns the count at the time the snapshot was taken.

func (CounterSnapshot) Dec Uses

func (CounterSnapshot) Dec(int64)

Dec panics.

func (CounterSnapshot) Inc Uses

func (CounterSnapshot) Inc(int64)

Inc panics.

func (CounterSnapshot) Snapshot Uses

func (c CounterSnapshot) Snapshot() Counter

Snapshot returns the snapshot.

type DuplicateMetric Uses

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 Uses

func (err DuplicateMetric) Error() string

type EWMA Uses

type EWMA interface {
    Rate() float64
    Snapshot() EWMA
    Tick()
    Update(int64)
}

EWMAs continuously calculate an exponentially-weighted moving average based on an outside source of clock ticks.

func NewEWMA Uses

func NewEWMA(alpha float64) EWMA

NewEWMA constructs a new EWMA with the given alpha.

func NewEWMA1 Uses

func NewEWMA1() EWMA

NewEWMA1 constructs a new EWMA for a one-minute moving average.

func NewEWMA15 Uses

func NewEWMA15() EWMA

NewEWMA15 constructs a new EWMA for a fifteen-minute moving average.

func NewEWMA5 Uses

func NewEWMA5() EWMA

NewEWMA5 constructs a new EWMA for a five-minute moving average.

type EWMASnapshot Uses

type EWMASnapshot float64

EWMASnapshot is a read-only copy of another EWMA.

func (EWMASnapshot) Rate Uses

func (a EWMASnapshot) Rate() float64

Rate returns the rate of events per second at the time the snapshot was taken.

func (EWMASnapshot) Snapshot Uses

func (a EWMASnapshot) Snapshot() EWMA

Snapshot returns the snapshot.

func (EWMASnapshot) Tick Uses

func (EWMASnapshot) Tick()

Tick panics.

func (EWMASnapshot) Update Uses

func (EWMASnapshot) Update(int64)

Update panics.

type ExpDecaySample Uses

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 Uses

func (s *ExpDecaySample) Clear()

Clear clears all samples.

func (*ExpDecaySample) Count Uses

func (s *ExpDecaySample) Count() int64

Count returns the number of samples recorded, which may exceed the reservoir size.

func (*ExpDecaySample) Max Uses

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 Uses

func (s *ExpDecaySample) Mean() float64

Mean returns the mean of the values in the sample.

func (*ExpDecaySample) Min Uses

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 Uses

func (s *ExpDecaySample) Percentile(p float64) float64

Percentile returns an arbitrary percentile of values in the sample.

func (*ExpDecaySample) Percentiles Uses

func (s *ExpDecaySample) Percentiles(ps []float64) []float64

Percentiles returns a slice of arbitrary percentiles of values in the sample.

func (*ExpDecaySample) Size Uses

func (s *ExpDecaySample) Size() int

Size returns the size of the sample, which is at most the reservoir size.

func (*ExpDecaySample) Snapshot Uses

func (s *ExpDecaySample) Snapshot() Sample

Snapshot returns a read-only copy of the sample.

func (*ExpDecaySample) StdDev Uses

func (s *ExpDecaySample) StdDev() float64

StdDev returns the standard deviation of the values in the sample.

func (*ExpDecaySample) Sum Uses

func (s *ExpDecaySample) Sum() int64

Sum returns the sum of the values in the sample.

func (*ExpDecaySample) Update Uses

func (s *ExpDecaySample) Update(v int64)

Update samples a new value.

func (*ExpDecaySample) Values Uses

func (s *ExpDecaySample) Values() []int64

Values returns a copy of the values in the sample.

func (*ExpDecaySample) Variance Uses

func (s *ExpDecaySample) Variance() float64

Variance returns the variance of the values in the sample.

type FunctionalGauge Uses

type FunctionalGauge struct {
    // contains filtered or unexported fields
}

FunctionalGauge returns value from given function

func (FunctionalGauge) Snapshot Uses

func (g FunctionalGauge) Snapshot() Gauge

Snapshot returns the snapshot.

func (FunctionalGauge) Update Uses

func (FunctionalGauge) Update(int64)

Update panics.

func (FunctionalGauge) Value Uses

func (g FunctionalGauge) Value() int64

Value returns the gauge's current value.

type FunctionalGaugeFloat64 Uses

type FunctionalGaugeFloat64 struct {
    // contains filtered or unexported fields
}

FunctionalGaugeFloat64 returns value from given function

func (FunctionalGaugeFloat64) Snapshot Uses

func (g FunctionalGaugeFloat64) Snapshot() GaugeFloat64

Snapshot returns the snapshot.

func (FunctionalGaugeFloat64) Update Uses

func (FunctionalGaugeFloat64) Update(float64)

Update panics.

func (FunctionalGaugeFloat64) Value Uses

func (g FunctionalGaugeFloat64) Value() float64

Value returns the gauge's current value.

type Gauge Uses

type Gauge interface {
    Snapshot() Gauge
    Update(int64)
    Value() int64
}

Gauges hold an int64 value that can be set arbitrarily.

func GetOrRegisterGauge Uses

func GetOrRegisterGauge(name string, r Registry) Gauge

GetOrRegisterGauge returns an existing Gauge or constructs and registers a new StandardGauge.

Code:

m := "server.bytes_sent"
g := GetOrRegisterGauge(m, nil)
g.Update(47)
fmt.Println(g.Value())

Output:

47

func NewFunctionalGauge Uses

func NewFunctionalGauge(f func() int64) Gauge

NewFunctionalGauge constructs a new FunctionalGauge.

func NewGauge Uses

func NewGauge() Gauge

NewGauge constructs a new StandardGauge.

func NewRegisteredFunctionalGauge Uses

func NewRegisteredFunctionalGauge(name string, r Registry, f func() int64) Gauge

NewRegisteredFunctionalGauge constructs and registers a new StandardGauge.

func NewRegisteredGauge Uses

func NewRegisteredGauge(name string, r Registry) Gauge

NewRegisteredGauge constructs and registers a new StandardGauge.

type GaugeFloat64 Uses

type GaugeFloat64 interface {
    Snapshot() GaugeFloat64
    Update(float64)
    Value() float64
}

GaugeFloat64s hold a float64 value that can be set arbitrarily.

func GetOrRegisterGaugeFloat64 Uses

func GetOrRegisterGaugeFloat64(name string, r Registry) GaugeFloat64

GetOrRegisterGaugeFloat64 returns an existing GaugeFloat64 or constructs and registers a new StandardGaugeFloat64.

func NewFunctionalGaugeFloat64 Uses

func NewFunctionalGaugeFloat64(f func() float64) GaugeFloat64

NewFunctionalGauge constructs a new FunctionalGauge.

func NewGaugeFloat64 Uses

func NewGaugeFloat64() GaugeFloat64

NewGaugeFloat64 constructs a new StandardGaugeFloat64.

func NewRegisteredFunctionalGaugeFloat64 Uses

func NewRegisteredFunctionalGaugeFloat64(name string, r Registry, f func() float64) GaugeFloat64

NewRegisteredFunctionalGauge constructs and registers a new StandardGauge.

func NewRegisteredGaugeFloat64 Uses

func NewRegisteredGaugeFloat64(name string, r Registry) GaugeFloat64

NewRegisteredGaugeFloat64 constructs and registers a new StandardGaugeFloat64.

type GaugeFloat64Snapshot Uses

type GaugeFloat64Snapshot float64

GaugeFloat64Snapshot is a read-only copy of another GaugeFloat64.

func (GaugeFloat64Snapshot) Snapshot Uses

func (g GaugeFloat64Snapshot) Snapshot() GaugeFloat64

Snapshot returns the snapshot.

func (GaugeFloat64Snapshot) Update Uses

func (GaugeFloat64Snapshot) Update(float64)

Update panics.

func (GaugeFloat64Snapshot) Value Uses

func (g GaugeFloat64Snapshot) Value() float64

Value returns the value at the time the snapshot was taken.

type GaugeSnapshot Uses

type GaugeSnapshot int64

GaugeSnapshot is a read-only copy of another Gauge.

func (GaugeSnapshot) Snapshot Uses

func (g GaugeSnapshot) Snapshot() Gauge

Snapshot returns the snapshot.

func (GaugeSnapshot) Update Uses

func (GaugeSnapshot) Update(int64)

Update panics.

func (GaugeSnapshot) Value Uses

func (g GaugeSnapshot) Value() int64

Value returns the value at the time the snapshot was taken.

type GraphiteConfig Uses

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 Uses

type Healthcheck interface {
    Check()
    Error() error
    Healthy()
    Unhealthy(error)
}

Healthchecks hold an error value describing an arbitrary up/down status.

func NewHealthcheck Uses

func NewHealthcheck(f func(Healthcheck)) Healthcheck

NewHealthcheck constructs a new Healthcheck which will use the given function to update its status.

type Histogram Uses

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 Uses

func GetOrRegisterHistogram(name string, r Registry, s Sample) Histogram

GetOrRegisterHistogram returns an existing Histogram or constructs and registers a new StandardHistogram.

func NewHistogram Uses

func NewHistogram(s Sample) Histogram

NewHistogram constructs a new StandardHistogram from a Sample.

func NewRegisteredHistogram Uses

func NewRegisteredHistogram(name string, r Registry, s Sample) Histogram

NewRegisteredHistogram constructs and registers a new StandardHistogram from a Sample.

type HistogramSnapshot Uses

type HistogramSnapshot struct {
    // contains filtered or unexported fields
}

HistogramSnapshot is a read-only copy of another Histogram.

func (*HistogramSnapshot) Clear Uses

func (*HistogramSnapshot) Clear()

Clear panics.

func (*HistogramSnapshot) Count Uses

func (h *HistogramSnapshot) Count() int64

Count returns the number of samples recorded at the time the snapshot was taken.

func (*HistogramSnapshot) Max Uses

func (h *HistogramSnapshot) Max() int64

Max returns the maximum value in the sample at the time the snapshot was taken.

func (*HistogramSnapshot) Mean Uses

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 Uses

func (h *HistogramSnapshot) Min() int64

Min returns the minimum value in the sample at the time the snapshot was taken.

func (*HistogramSnapshot) Percentile Uses

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 Uses

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 Uses

func (h *HistogramSnapshot) Sample() Sample

Sample returns the Sample underlying the histogram.

func (*HistogramSnapshot) Snapshot Uses

func (h *HistogramSnapshot) Snapshot() Histogram

Snapshot returns the snapshot.

func (*HistogramSnapshot) StdDev Uses

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 Uses

func (h *HistogramSnapshot) Sum() int64

Sum returns the sum in the sample at the time the snapshot was taken.

func (*HistogramSnapshot) Update Uses

func (*HistogramSnapshot) Update(int64)

Update panics.

func (*HistogramSnapshot) Variance Uses

func (h *HistogramSnapshot) Variance() float64

Variance returns the variance of inputs at the time the snapshot was taken.

type Logger Uses

type Logger interface {
    Printf(format string, v ...interface{})
}

type Meter Uses

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 Uses

func GetOrRegisterMeter(name string, r Registry) Meter

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 Uses

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 Uses

func NewRegisteredMeter(name string, r Registry) Meter

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 Uses

type MeterSnapshot struct {
    // contains filtered or unexported fields
}

MeterSnapshot is a read-only copy of another Meter.

func (*MeterSnapshot) Count Uses

func (m *MeterSnapshot) Count() int64

Count returns the count of events at the time the snapshot was taken.

func (*MeterSnapshot) Mark Uses

func (*MeterSnapshot) Mark(n int64)

Mark panics.

func (*MeterSnapshot) Rate1 Uses

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 Uses

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 Uses

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 Uses

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 Uses

func (m *MeterSnapshot) Snapshot() Meter

Snapshot returns the snapshot.

func (*MeterSnapshot) Stop Uses

func (m *MeterSnapshot) Stop()

Stop is a no-op.

type NilCounter Uses

type NilCounter struct{}

NilCounter is a no-op Counter.

func (NilCounter) Clear Uses

func (NilCounter) Clear()

Clear is a no-op.

func (NilCounter) Count Uses

func (NilCounter) Count() int64

Count is a no-op.

func (NilCounter) Dec Uses

func (NilCounter) Dec(i int64)

Dec is a no-op.

func (NilCounter) Inc Uses

func (NilCounter) Inc(i int64)

Inc is a no-op.

func (NilCounter) Snapshot Uses

func (NilCounter) Snapshot() Counter

Snapshot is a no-op.

type NilEWMA Uses

type NilEWMA struct{}

NilEWMA is a no-op EWMA.

func (NilEWMA) Rate Uses

func (NilEWMA) Rate() float64

Rate is a no-op.

func (NilEWMA) Snapshot Uses

func (NilEWMA) Snapshot() EWMA

Snapshot is a no-op.

func (NilEWMA) Tick Uses

func (NilEWMA) Tick()

Tick is a no-op.

func (NilEWMA) Update Uses

func (NilEWMA) Update(n int64)

Update is a no-op.

type NilGauge Uses

type NilGauge struct{}

NilGauge is a no-op Gauge.

func (NilGauge) Snapshot Uses

func (NilGauge) Snapshot() Gauge

Snapshot is a no-op.

func (NilGauge) Update Uses

func (NilGauge) Update(v int64)

Update is a no-op.

func (NilGauge) Value Uses

func (NilGauge) Value() int64

Value is a no-op.

type NilGaugeFloat64 Uses

type NilGaugeFloat64 struct{}

NilGauge is a no-op Gauge.

func (NilGaugeFloat64) Snapshot Uses

func (NilGaugeFloat64) Snapshot() GaugeFloat64

Snapshot is a no-op.

func (NilGaugeFloat64) Update Uses

func (NilGaugeFloat64) Update(v float64)

Update is a no-op.

func (NilGaugeFloat64) Value Uses

func (NilGaugeFloat64) Value() float64

Value is a no-op.

type NilHealthcheck Uses

type NilHealthcheck struct{}

NilHealthcheck is a no-op.

func (NilHealthcheck) Check Uses

func (NilHealthcheck) Check()

Check is a no-op.

func (NilHealthcheck) Error Uses

func (NilHealthcheck) Error() error

Error is a no-op.

func (NilHealthcheck) Healthy Uses

func (NilHealthcheck) Healthy()

Healthy is a no-op.

func (NilHealthcheck) Unhealthy Uses

func (NilHealthcheck) Unhealthy(error)

Unhealthy is a no-op.

type NilHistogram Uses

type NilHistogram struct{}

NilHistogram is a no-op Histogram.

func (NilHistogram) Clear Uses

func (NilHistogram) Clear()

Clear is a no-op.

func (NilHistogram) Count Uses

func (NilHistogram) Count() int64

Count is a no-op.

func (NilHistogram) Max Uses

func (NilHistogram) Max() int64

Max is a no-op.

func (NilHistogram) Mean Uses

func (NilHistogram) Mean() float64

Mean is a no-op.

func (NilHistogram) Min Uses

func (NilHistogram) Min() int64

Min is a no-op.

func (NilHistogram) Percentile Uses

func (NilHistogram) Percentile(p float64) float64

Percentile is a no-op.

func (NilHistogram) Percentiles Uses

func (NilHistogram) Percentiles(ps []float64) []float64

Percentiles is a no-op.

func (NilHistogram) Sample Uses

func (NilHistogram) Sample() Sample

Sample is a no-op.

func (NilHistogram) Snapshot Uses

func (NilHistogram) Snapshot() Histogram

Snapshot is a no-op.

func (NilHistogram) StdDev Uses

func (NilHistogram) StdDev() float64

StdDev is a no-op.

func (NilHistogram) Sum Uses

func (NilHistogram) Sum() int64

Sum is a no-op.

func (NilHistogram) Update Uses

func (NilHistogram) Update(v int64)

Update is a no-op.

func (NilHistogram) Variance Uses

func (NilHistogram) Variance() float64

Variance is a no-op.

type NilMeter Uses

type NilMeter struct{}

NilMeter is a no-op Meter.

func (NilMeter) Count Uses

func (NilMeter) Count() int64

Count is a no-op.

func (NilMeter) Mark Uses

func (NilMeter) Mark(n int64)

Mark is a no-op.

func (NilMeter) Rate1 Uses

func (NilMeter) Rate1() float64

Rate1 is a no-op.

func (NilMeter) Rate15 Uses

func (NilMeter) Rate15() float64

Rate15is a no-op.

func (NilMeter) Rate5 Uses

func (NilMeter) Rate5() float64

Rate5 is a no-op.

func (NilMeter) RateMean Uses

func (NilMeter) RateMean() float64

RateMean is a no-op.

func (NilMeter) Snapshot Uses

func (NilMeter) Snapshot() Meter

Snapshot is a no-op.

func (NilMeter) Stop Uses

func (NilMeter) Stop()

Stop is a no-op.

type NilSample Uses

type NilSample struct{}

NilSample is a no-op Sample.

func (NilSample) Clear Uses

func (NilSample) Clear()

Clear is a no-op.

func (NilSample) Count Uses

func (NilSample) Count() int64

Count is a no-op.

func (NilSample) Max Uses

func (NilSample) Max() int64

Max is a no-op.

func (NilSample) Mean Uses

func (NilSample) Mean() float64

Mean is a no-op.

func (NilSample) Min Uses

func (NilSample) Min() int64

Min is a no-op.

func (NilSample) Percentile Uses

func (NilSample) Percentile(p float64) float64

Percentile is a no-op.

func (NilSample) Percentiles Uses

func (NilSample) Percentiles(ps []float64) []float64

Percentiles is a no-op.

func (NilSample) Size Uses

func (NilSample) Size() int

Size is a no-op.

func (NilSample) Snapshot Uses

func (NilSample) Snapshot() Sample

Sample is a no-op.

func (NilSample) StdDev Uses

func (NilSample) StdDev() float64

StdDev is a no-op.

func (NilSample) Sum Uses

func (NilSample) Sum() int64

Sum is a no-op.

func (NilSample) Update Uses

func (NilSample) Update(v int64)

Update is a no-op.

func (NilSample) Values Uses

func (NilSample) Values() []int64

Values is a no-op.

func (NilSample) Variance Uses

func (NilSample) Variance() float64

Variance is a no-op.

type NilTimer Uses

type NilTimer struct {
    // contains filtered or unexported fields
}

NilTimer is a no-op Timer.

func (NilTimer) Count Uses

func (NilTimer) Count() int64

Count is a no-op.

func (NilTimer) Max Uses

func (NilTimer) Max() int64

Max is a no-op.

func (NilTimer) Mean Uses

func (NilTimer) Mean() float64

Mean is a no-op.

func (NilTimer) Min Uses

func (NilTimer) Min() int64

Min is a no-op.

func (NilTimer) Percentile Uses

func (NilTimer) Percentile(p float64) float64

Percentile is a no-op.

func (NilTimer) Percentiles Uses

func (NilTimer) Percentiles(ps []float64) []float64

Percentiles is a no-op.

func (NilTimer) Rate1 Uses

func (NilTimer) Rate1() float64

Rate1 is a no-op.

func (NilTimer) Rate15 Uses

func (NilTimer) Rate15() float64

Rate15 is a no-op.

func (NilTimer) Rate5 Uses

func (NilTimer) Rate5() float64

Rate5 is a no-op.

func (NilTimer) RateMean Uses

func (NilTimer) RateMean() float64

RateMean is a no-op.

func (NilTimer) Snapshot Uses

func (NilTimer) Snapshot() Timer

Snapshot is a no-op.

func (NilTimer) StdDev Uses

func (NilTimer) StdDev() float64

StdDev is a no-op.

func (NilTimer) Stop Uses

func (NilTimer) Stop()

Stop is a no-op.

func (NilTimer) Sum Uses

func (NilTimer) Sum() int64

Sum is a no-op.

func (NilTimer) Time Uses

func (NilTimer) Time(func())

Time is a no-op.

func (NilTimer) Update Uses

func (NilTimer) Update(time.Duration)

Update is a no-op.

func (NilTimer) UpdateSince Uses

func (NilTimer) UpdateSince(time.Time)

UpdateSince is a no-op.

func (NilTimer) Variance Uses

func (NilTimer) Variance() float64

Variance is a no-op.

type OpenTSDBConfig Uses

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 Uses

type PrefixedRegistry struct {
    // contains filtered or unexported fields
}

func (*PrefixedRegistry) Each Uses

func (r *PrefixedRegistry) Each(fn func(string, interface{}))

Call the given function for each registered metric.

func (*PrefixedRegistry) Get Uses

func (r *PrefixedRegistry) Get(name string) interface{}

Get the metric by the given name or nil if none is registered.

func (*PrefixedRegistry) GetAll Uses

func (r *PrefixedRegistry) GetAll() map[string]map[string]interface{}

GetAll metrics in the Registry

func (*PrefixedRegistry) GetOrRegister Uses

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 Uses

func (p *PrefixedRegistry) MarshalJSON() ([]byte, error)

func (*PrefixedRegistry) Register Uses

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 Uses

func (r *PrefixedRegistry) RunHealthchecks()

Run all registered healthchecks.

func (*PrefixedRegistry) Unregister Uses

func (r *PrefixedRegistry) Unregister(name string)

Unregister the metric with the given name. The name will be prefixed.

func (*PrefixedRegistry) UnregisterAll Uses

func (r *PrefixedRegistry) UnregisterAll()

Unregister all metrics. (Mostly for testing.)

type Registry Uses

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 Uses

func NewPrefixedChildRegistry(parent Registry, prefix string) Registry

func NewPrefixedRegistry Uses

func NewPrefixedRegistry(prefix string) Registry

func NewRegistry Uses

func NewRegistry() Registry

Create a new registry.

type Sample Uses

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 Uses

func NewExpDecaySample(reservoirSize int, alpha float64) Sample

NewExpDecaySample constructs a new exponentially-decaying sample with the given reservoir size and alpha.

func NewUniformSample Uses

func NewUniformSample(reservoirSize int) Sample

NewUniformSample constructs a new uniform sample with the given reservoir size.

type SampleSnapshot Uses

type SampleSnapshot struct {
    // contains filtered or unexported fields
}

SampleSnapshot is a read-only copy of another Sample.

func NewSampleSnapshot Uses

func NewSampleSnapshot(count int64, values []int64) *SampleSnapshot

func (*SampleSnapshot) Clear Uses

func (*SampleSnapshot) Clear()

Clear panics.

func (*SampleSnapshot) Count Uses

func (s *SampleSnapshot) Count() int64

Count returns the count of inputs at the time the snapshot was taken.

func (*SampleSnapshot) Max Uses

func (s *SampleSnapshot) Max() int64

Max returns the maximal value at the time the snapshot was taken.

func (*SampleSnapshot) Mean Uses

func (s *SampleSnapshot) Mean() float64

Mean returns the mean value at the time the snapshot was taken.

func (*SampleSnapshot) Min Uses

func (s *SampleSnapshot) Min() int64

Min returns the minimal value at the time the snapshot was taken.

func (*SampleSnapshot) Percentile Uses

func (s *SampleSnapshot) Percentile(p float64) float64

Percentile returns an arbitrary percentile of values at the time the snapshot was taken.

func (*SampleSnapshot) Percentiles Uses

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 Uses

func (s *SampleSnapshot) Size() int

Size returns the size of the sample at the time the snapshot was taken.

func (*SampleSnapshot) Snapshot Uses

func (s *SampleSnapshot) Snapshot() Sample

Snapshot returns the snapshot.

func (*SampleSnapshot) StdDev Uses

func (s *SampleSnapshot) StdDev() float64

StdDev returns the standard deviation of values at the time the snapshot was taken.

func (*SampleSnapshot) Sum Uses

func (s *SampleSnapshot) Sum() int64

Sum returns the sum of values at the time the snapshot was taken.

func (*SampleSnapshot) Update Uses

func (*SampleSnapshot) Update(int64)

Update panics.

func (*SampleSnapshot) Values Uses

func (s *SampleSnapshot) Values() []int64

Values returns a copy of the values in the sample.

func (*SampleSnapshot) Variance Uses

func (s *SampleSnapshot) Variance() float64

Variance returns the variance of values at the time the snapshot was taken.

type StandardCounter Uses

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 Uses

func (c *StandardCounter) Clear()

Clear sets the counter to zero.

func (*StandardCounter) Count Uses

func (c *StandardCounter) Count() int64

Count returns the current count.

func (*StandardCounter) Dec Uses

func (c *StandardCounter) Dec(i int64)

Dec decrements the counter by the given amount.

func (*StandardCounter) Inc Uses

func (c *StandardCounter) Inc(i int64)

Inc increments the counter by the given amount.

func (*StandardCounter) Snapshot Uses

func (c *StandardCounter) Snapshot() Counter

Snapshot returns a read-only copy of the counter.

type StandardEWMA Uses

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 Uses

func (a *StandardEWMA) Rate() float64

Rate returns the moving average rate of events per second.

func (*StandardEWMA) Snapshot Uses

func (a *StandardEWMA) Snapshot() EWMA

Snapshot returns a read-only copy of the EWMA.

func (*StandardEWMA) Tick Uses

func (a *StandardEWMA) Tick()

Tick ticks the clock to update the moving average. It assumes it is called every five seconds.

func (*StandardEWMA) Update Uses

func (a *StandardEWMA) Update(n int64)

Update adds n uncounted events.

type StandardGauge Uses

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 Uses

func (g *StandardGauge) Snapshot() Gauge

Snapshot returns a read-only copy of the gauge.

func (*StandardGauge) Update Uses

func (g *StandardGauge) Update(v int64)

Update updates the gauge's value.

func (*StandardGauge) Value Uses

func (g *StandardGauge) Value() int64

Value returns the gauge's current value.

type StandardGaugeFloat64 Uses

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 Uses

func (g *StandardGaugeFloat64) Snapshot() GaugeFloat64

Snapshot returns a read-only copy of the gauge.

func (*StandardGaugeFloat64) Update Uses

func (g *StandardGaugeFloat64) Update(v float64)

Update updates the gauge's value.

func (*StandardGaugeFloat64) Value Uses

func (g *StandardGaugeFloat64) Value() float64

Value returns the gauge's current value.

type StandardHealthcheck Uses

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 Uses

func (h *StandardHealthcheck) Check()

Check runs the healthcheck function to update the healthcheck's status.

func (*StandardHealthcheck) Error Uses

func (h *StandardHealthcheck) Error() error

Error returns the healthcheck's status, which will be nil if it is healthy.

func (*StandardHealthcheck) Healthy Uses

func (h *StandardHealthcheck) Healthy()

Healthy marks the healthcheck as healthy.

func (*StandardHealthcheck) Unhealthy Uses

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 Uses

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 Uses

func (h *StandardHistogram) Clear()

Clear clears the histogram and its sample.

func (*StandardHistogram) Count Uses

func (h *StandardHistogram) Count() int64

Count returns the number of samples recorded since the histogram was last cleared.

func (*StandardHistogram) Max Uses

func (h *StandardHistogram) Max() int64

Max returns the maximum value in the sample.

func (*StandardHistogram) Mean Uses

func (h *StandardHistogram) Mean() float64

Mean returns the mean of the values in the sample.

func (*StandardHistogram) Min Uses

func (h *StandardHistogram) Min() int64

Min returns the minimum value in the sample.

func (*StandardHistogram) Percentile Uses

func (h *StandardHistogram) Percentile(p float64) float64

Percentile returns an arbitrary percentile of the values in the sample.

func (*StandardHistogram) Percentiles Uses

func (h *StandardHistogram) Percentiles(ps []float64) []float64

Percentiles returns a slice of arbitrary percentiles of the values in the sample.

func (*StandardHistogram) Sample Uses

func (h *StandardHistogram) Sample() Sample

Sample returns the Sample underlying the histogram.

func (*StandardHistogram) Snapshot Uses

func (h *StandardHistogram) Snapshot() Histogram

Snapshot returns a read-only copy of the histogram.

func (*StandardHistogram) StdDev Uses

func (h *StandardHistogram) StdDev() float64

StdDev returns the standard deviation of the values in the sample.

func (*StandardHistogram) Sum Uses

func (h *StandardHistogram) Sum() int64

Sum returns the sum in the sample.

func (*StandardHistogram) Update Uses

func (h *StandardHistogram) Update(v int64)

Update samples a new value.

func (*StandardHistogram) Variance Uses

func (h *StandardHistogram) Variance() float64

Variance returns the variance of the values in the sample.

type StandardMeter Uses

type StandardMeter struct {
    // contains filtered or unexported fields
}

StandardMeter is the standard implementation of a Meter.

func (*StandardMeter) Count Uses

func (m *StandardMeter) Count() int64

Count returns the number of events recorded.

func (*StandardMeter) Mark Uses

func (m *StandardMeter) Mark(n int64)

Mark records the occurance of n events.

func (*StandardMeter) Rate1 Uses

func (m *StandardMeter) Rate1() float64

Rate1 returns the one-minute moving average rate of events per second.

func (*StandardMeter) Rate15 Uses

func (m *StandardMeter) Rate15() float64

Rate15 returns the fifteen-minute moving average rate of events per second.

func (*StandardMeter) Rate5 Uses

func (m *StandardMeter) Rate5() float64

Rate5 returns the five-minute moving average rate of events per second.

func (*StandardMeter) RateMean Uses

func (m *StandardMeter) RateMean() float64

RateMean returns the meter's mean rate of events per second.

func (*StandardMeter) Snapshot Uses

func (m *StandardMeter) Snapshot() Meter

Snapshot returns a read-only copy of the meter.

func (*StandardMeter) Stop Uses

func (m *StandardMeter) Stop()

Stop stops the meter, Mark() will be a no-op if you use it after being stopped.

type StandardRegistry Uses

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 Uses

func (r *StandardRegistry) Each(f func(string, interface{}))

Call the given function for each registered metric.

func (*StandardRegistry) Get Uses

func (r *StandardRegistry) Get(name string) interface{}

Get the metric by the given name or nil if none is registered.

func (*StandardRegistry) GetAll Uses

func (r *StandardRegistry) GetAll() map[string]map[string]interface{}

GetAll metrics in the Registry

func (*StandardRegistry) GetOrRegister Uses

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 Uses

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 Uses

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 Uses

func (r *StandardRegistry) RunHealthchecks()

Run all registered healthchecks.

func (*StandardRegistry) Unregister Uses

func (r *StandardRegistry) Unregister(name string)

Unregister the metric with the given name.

func (*StandardRegistry) UnregisterAll Uses

func (r *StandardRegistry) UnregisterAll()

Unregister all metrics. (Mostly for testing.)

type StandardTimer Uses

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 Uses

func (t *StandardTimer) Count() int64

Count returns the number of events recorded.

func (*StandardTimer) Max Uses

func (t *StandardTimer) Max() int64

Max returns the maximum value in the sample.

func (*StandardTimer) Mean Uses

func (t *StandardTimer) Mean() float64

Mean returns the mean of the values in the sample.

func (*StandardTimer) Min Uses

func (t *StandardTimer) Min() int64

Min returns the minimum value in the sample.

func (*StandardTimer) Percentile Uses

func (t *StandardTimer) Percentile(p float64) float64

Percentile returns an arbitrary percentile of the values in the sample.

func (*StandardTimer) Percentiles Uses

func (t *StandardTimer) Percentiles(ps []float64) []float64

Percentiles returns a slice of arbitrary percentiles of the values in the sample.

func (*StandardTimer) Rate1 Uses

func (t *StandardTimer) Rate1() float64

Rate1 returns the one-minute moving average rate of events per second.

func (*StandardTimer) Rate15 Uses

func (t *StandardTimer) Rate15() float64

Rate15 returns the fifteen-minute moving average rate of events per second.

func (*StandardTimer) Rate5 Uses

func (t *StandardTimer) Rate5() float64

Rate5 returns the five-minute moving average rate of events per second.

func (*StandardTimer) RateMean Uses

func (t *StandardTimer) RateMean() float64

RateMean returns the meter's mean rate of events per second.

func (*StandardTimer) Snapshot Uses

func (t *StandardTimer) Snapshot() Timer

Snapshot returns a read-only copy of the timer.

func (*StandardTimer) StdDev Uses

func (t *StandardTimer) StdDev() float64

StdDev returns the standard deviation of the values in the sample.

func (*StandardTimer) Stop Uses

func (t *StandardTimer) Stop()

Stop stops the meter.

func (*StandardTimer) Sum Uses

func (t *StandardTimer) Sum() int64

Sum returns the sum in the sample.

func (*StandardTimer) Time Uses

func (t *StandardTimer) Time(f func())

Record the duration of the execution of the given function.

func (*StandardTimer) Update Uses

func (t *StandardTimer) Update(d time.Duration)

Record the duration of an event.

func (*StandardTimer) UpdateSince Uses

func (t *StandardTimer) UpdateSince(ts time.Time)

Record the duration of an event that started at a time and ends now.

func (*StandardTimer) Variance Uses

func (t *StandardTimer) Variance() float64

Variance returns the variance of the values in the sample.

type Stoppable Uses

type Stoppable interface {
    Stop()
}

Stoppable defines the metrics which has to be stopped.

type Timer Uses

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 Uses

func GetOrRegisterTimer(name string, r Registry) Timer

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.

Code:

m := "account.create.latency"
t := GetOrRegisterTimer(m, nil)
t.Update(47)
fmt.Println(t.Max())

Output:

47

func NewCustomTimer Uses

func NewCustomTimer(h Histogram, m Meter) Timer

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 Uses

func NewRegisteredTimer(name string, r Registry) Timer

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.

func NewTimer Uses

func NewTimer() Timer

NewTimer constructs a new StandardTimer using an exponentially-decaying sample with the same reservoir size and alpha as UNIX load averages. Be sure to call Stop() once the timer is of no use to allow for garbage collection.

type TimerSnapshot Uses

type TimerSnapshot struct {
    // contains filtered or unexported fields
}

TimerSnapshot is a read-only copy of another Timer.

func (*TimerSnapshot) Count Uses

func (t *TimerSnapshot) Count() int64

Count returns the number of events recorded at the time the snapshot was taken.

func (*TimerSnapshot) Max Uses

func (t *TimerSnapshot) Max() int64

Max returns the maximum value at the time the snapshot was taken.

func (*TimerSnapshot) Mean Uses

func (t *TimerSnapshot) Mean() float64

Mean returns the mean value at the time the snapshot was taken.

func (*TimerSnapshot) Min Uses

func (t *TimerSnapshot) Min() int64

Min returns the minimum value at the time the snapshot was taken.

func (*TimerSnapshot) Percentile Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

func (t *TimerSnapshot) Snapshot() Timer

Snapshot returns the snapshot.

func (*TimerSnapshot) StdDev Uses

func (t *TimerSnapshot) StdDev() float64

StdDev returns the standard deviation of the values at the time the snapshot was taken.

func (*TimerSnapshot) Stop Uses

func (t *TimerSnapshot) Stop()

Stop is a no-op.

func (*TimerSnapshot) Sum Uses

func (t *TimerSnapshot) Sum() int64

Sum returns the sum at the time the snapshot was taken.

func (*TimerSnapshot) Time Uses

func (*TimerSnapshot) Time(func())

Time panics.

func (*TimerSnapshot) Update Uses

func (*TimerSnapshot) Update(time.Duration)

Update panics.

func (*TimerSnapshot) UpdateSince Uses

func (*TimerSnapshot) UpdateSince(time.Time)

UpdateSince panics.

func (*TimerSnapshot) Variance Uses

func (t *TimerSnapshot) Variance() float64

Variance returns the variance of the values at the time the snapshot was taken.

type UniformSample Uses

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 Uses

func (s *UniformSample) Clear()

Clear clears all samples.

func (*UniformSample) Count Uses

func (s *UniformSample) Count() int64

Count returns the number of samples recorded, which may exceed the reservoir size.

func (*UniformSample) Max Uses

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 Uses

func (s *UniformSample) Mean() float64

Mean returns the mean of the values in the sample.

func (*UniformSample) Min Uses

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 Uses

func (s *UniformSample) Percentile(p float64) float64

Percentile returns an arbitrary percentile of values in the sample.

func (*UniformSample) Percentiles Uses

func (s *UniformSample) Percentiles(ps []float64) []float64

Percentiles returns a slice of arbitrary percentiles of values in the sample.

func (*UniformSample) Size Uses

func (s *UniformSample) Size() int

Size returns the size of the sample, which is at most the reservoir size.

func (*UniformSample) Snapshot Uses

func (s *UniformSample) Snapshot() Sample

Snapshot returns a read-only copy of the sample.

func (*UniformSample) StdDev Uses

func (s *UniformSample) StdDev() float64

StdDev returns the standard deviation of the values in the sample.

func (*UniformSample) Sum Uses

func (s *UniformSample) Sum() int64

Sum returns the sum of the values in the sample.

func (*UniformSample) Update Uses

func (s *UniformSample) Update(v int64)

Update samples a new value.

func (*UniformSample) Values Uses

func (s *UniformSample) Values() []int64

Values returns a copy of the values in the sample.

func (*UniformSample) Variance Uses

func (s *UniformSample) Variance() float64

Variance returns the variance of the values in the sample.

Directories

PathSynopsis
cmd/metrics-bench
cmd/metrics-example
cmd/never-read
expHook go-metrics into expvar on any /debug/metrics request, load all vars from the registry into expvar, and execute regular expvar handler
librato
stathatMetrics output to StatHat.

Package metrics imports 20 packages (graph) and is imported by 843 packages. Updated 2017-11-28. Refresh now. Tools for package owners.