metrics

package
v4.0.1+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 2, 2016 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation ¶

Index ¶

Constants ¶

This section is empty.

Variables ¶

View Source
var (
	M_Instance_Start                       Counter
	M_Page_Status_200                      Counter
	M_Page_Status_500                      Counter
	M_Page_Status_404                      Counter
	M_Page_Status_Unknown                  Counter
	M_Api_Status_200                       Counter
	M_Api_Status_404                       Counter
	M_Api_Status_500                       Counter
	M_Api_Status_Unknown                   Counter
	M_Proxy_Status_200                     Counter
	M_Proxy_Status_404                     Counter
	M_Proxy_Status_500                     Counter
	M_Proxy_Status_Unknown                 Counter
	M_Api_User_SignUpStarted               Counter
	M_Api_User_SignUpCompleted             Counter
	M_Api_User_SignUpInvite                Counter
	M_Api_Dashboard_Save                   Timer
	M_Api_Dashboard_Get                    Timer
	M_Api_Dashboard_Search                 Timer
	M_Api_Admin_User_Create                Counter
	M_Api_Login_Post                       Counter
	M_Api_Login_OAuth                      Counter
	M_Api_Org_Create                       Counter
	M_Api_Dashboard_Snapshot_Create        Counter
	M_Api_Dashboard_Snapshot_External      Counter
	M_Api_Dashboard_Snapshot_Get           Counter
	M_Models_Dashboard_Insert              Counter
	M_Alerting_Result_State_Alerting       Counter
	M_Alerting_Result_State_Ok             Counter
	M_Alerting_Result_State_Paused         Counter
	M_Alerting_Result_State_NoData         Counter
	M_Alerting_Result_State_Pending        Counter
	M_Alerting_Notification_Sent_Slack     Counter
	M_Alerting_Notification_Sent_Email     Counter
	M_Alerting_Notification_Sent_Webhook   Counter
	M_Alerting_Notification_Sent_PagerDuty Counter

	// Timers
	M_DataSource_ProxyReq_Timer Timer
	M_Alerting_Exeuction_Time   Timer

	// StatTotals
	M_Alerting_Active_Alerts Gauge
	M_StatTotal_Dashboards   Gauge
	M_StatTotal_Users        Gauge
	M_StatTotal_Orgs         Gauge
	M_StatTotal_Playlists    Gauge
)
View Source
var UseNilMetrics bool

Functions ¶

func Init ¶

func Init()

func SampleMax ¶

func SampleMax(values []int64) int64

SampleMax returns the maximum value of the slice of int64.

func SampleMean ¶

func SampleMean(values []int64) float64

SampleMean returns the mean value of the slice of int64.

func SampleMin ¶

func SampleMin(values []int64) int64

SampleMin returns the minimum value of the slice of int64.

func SamplePercentile ¶

func SamplePercentile(values int64Slice, p float64) float64

SamplePercentiles returns an arbitrary percentile of the slice of int64.

func SamplePercentiles ¶

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

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

func SampleStdDev ¶

func SampleStdDev(values []int64) float64

SampleStdDev returns the standard deviation of the slice of int64.

func SampleSum ¶

func SampleSum(values []int64) int64

SampleSum returns the sum of the slice of int64.

func SampleVariance ¶

func SampleVariance(values []int64) float64

SampleVariance returns the variance of the slice of int64.

Types ¶

type Counter ¶

type Counter interface {
	Metric

	Clear()
	Count() int64
	Dec(int64)
	Inc(int64)
}

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

func NewCounter ¶

func NewCounter(meta *MetricMeta) Counter

NewCounter constructs a new StandardCounter.

func RegCounter ¶

func RegCounter(name string, tagStrings ...string) Counter

type EWMA ¶

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 ¶

func NewEWMA(alpha float64) EWMA

NewEWMA constructs a new EWMA with the given alpha.

func NewEWMA1 ¶

func NewEWMA1() EWMA

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

func NewEWMA15 ¶

func NewEWMA15() EWMA

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

func NewEWMA5 ¶

func NewEWMA5() EWMA

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

type EWMASnapshot ¶

type EWMASnapshot float64

EWMASnapshot is a read-only copy of another EWMA.

func (EWMASnapshot) Rate ¶

func (a EWMASnapshot) Rate() float64

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

func (EWMASnapshot) Snapshot ¶

func (a EWMASnapshot) Snapshot() EWMA

Snapshot returns the snapshot.

func (EWMASnapshot) Tick ¶

func (EWMASnapshot) Tick()

Tick panics.

func (EWMASnapshot) Update ¶

func (EWMASnapshot) Update(int64)

Update panics.

type ExpDecaySample ¶

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

ExpDecaySample is an exponentially-decaying sample using a forward-decaying priority reservoir. See Cormode et al's "Forward Decay: A Practical Time Decay Model for Streaming Systems".

<http://www.research.att.com/people/Cormode_Graham/library/publications/CormodeShkapenyukSrivastavaXu09.pdf>

func (*ExpDecaySample) Clear ¶

func (s *ExpDecaySample) Clear()

Clear clears all samples.

func (*ExpDecaySample) Count ¶

func (s *ExpDecaySample) Count() int64

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

func (*ExpDecaySample) Max ¶

func (s *ExpDecaySample) Max() int64

Max returns the maximum value in the sample, which may not be the maximum value ever to be part of the sample.

func (*ExpDecaySample) Mean ¶

func (s *ExpDecaySample) Mean() float64

Mean returns the mean of the values in the sample.

func (*ExpDecaySample) Min ¶

func (s *ExpDecaySample) Min() int64

Min returns the minimum value in the sample, which may not be the minimum value ever to be part of the sample.

func (*ExpDecaySample) Percentile ¶

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

Percentile returns an arbitrary percentile of values in the sample.

func (*ExpDecaySample) Percentiles ¶

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

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

func (*ExpDecaySample) Size ¶

func (s *ExpDecaySample) Size() int

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

func (*ExpDecaySample) Snapshot ¶

func (s *ExpDecaySample) Snapshot() Sample

Snapshot returns a read-only copy of the sample.

func (*ExpDecaySample) StdDev ¶

func (s *ExpDecaySample) StdDev() float64

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

func (*ExpDecaySample) Sum ¶

func (s *ExpDecaySample) Sum() int64

Sum returns the sum of the values in the sample.

func (*ExpDecaySample) Update ¶

func (s *ExpDecaySample) Update(v int64)

Update samples a new value.

func (*ExpDecaySample) Values ¶

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

Values returns a copy of the values in the sample.

func (*ExpDecaySample) Variance ¶

func (s *ExpDecaySample) Variance() float64

Variance returns the variance of the values in the sample.

type Gauge ¶

type Gauge interface {
	Metric

	Update(int64)
	Value() int64
}

Gauges hold an int64 value that can be set arbitrarily.

func NewGauge ¶

func NewGauge(meta *MetricMeta) Gauge

func RegGauge ¶

func RegGauge(name string, tagStrings ...string) Gauge

type GaugeSnapshot ¶

type GaugeSnapshot struct {
	*MetricMeta
	// contains filtered or unexported fields
}

GaugeSnapshot is a read-only copy of another Gauge.

func (GaugeSnapshot) Snapshot ¶

func (g GaugeSnapshot) Snapshot() Metric

Snapshot returns the snapshot.

func (GaugeSnapshot) Update ¶

func (GaugeSnapshot) Update(int64)

Update panics.

func (GaugeSnapshot) Value ¶

func (g GaugeSnapshot) Value() int64

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

type GraphitePublisher ¶

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

func CreateGraphitePublisher ¶

func CreateGraphitePublisher() (*GraphitePublisher, error)

func (*GraphitePublisher) Publish ¶

func (this *GraphitePublisher) Publish(metrics []Metric)

type Histogram ¶

type Histogram interface {
	Metric

	Clear()
	Count() int64
	Max() int64
	Mean() float64
	Min() int64
	Percentile(float64) float64
	Percentiles([]float64) []float64
	StdDev() float64
	Sum() int64
	Update(int64)
	Variance() float64
}

Histograms calculate distribution statistics from a series of int64 values.

func NewHistogram ¶

func NewHistogram(meta *MetricMeta, s Sample) Histogram

type HistogramSnapshot ¶

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

HistogramSnapshot is a read-only copy of another Histogram.

func (*HistogramSnapshot) Clear ¶

func (*HistogramSnapshot) Clear()

Clear panics.

func (*HistogramSnapshot) Count ¶

func (h *HistogramSnapshot) Count() int64

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

func (*HistogramSnapshot) Max ¶

func (h *HistogramSnapshot) Max() int64

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

func (*HistogramSnapshot) Mean ¶

func (h *HistogramSnapshot) Mean() float64

Mean returns the mean of the values in the sample at the time the snapshot was taken.

func (*HistogramSnapshot) Min ¶

func (h *HistogramSnapshot) Min() int64

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

func (*HistogramSnapshot) Percentile ¶

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

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

func (*HistogramSnapshot) Percentiles ¶

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

Percentiles returns a slice of arbitrary percentiles of values in the sample at the time the snapshot was taken.

func (*HistogramSnapshot) Sample ¶

func (h *HistogramSnapshot) Sample() Sample

Sample returns the Sample underlying the histogram.

func (*HistogramSnapshot) Snapshot ¶

func (h *HistogramSnapshot) Snapshot() Metric

Snapshot returns the snapshot.

func (*HistogramSnapshot) StdDev ¶

func (h *HistogramSnapshot) StdDev() float64

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

func (*HistogramSnapshot) Sum ¶

func (h *HistogramSnapshot) Sum() int64

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

func (*HistogramSnapshot) Update ¶

func (*HistogramSnapshot) Update(int64)

Update panics.

func (*HistogramSnapshot) Variance ¶

func (h *HistogramSnapshot) Variance() float64

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

type Meter ¶

type Meter interface {
	Metric

	Count() int64
	Mark(int64)
	Rate1() float64
	Rate5() float64
	Rate15() float64
	RateMean() float64
}

Meters count events to produce exponentially-weighted moving average rates at one-, five-, and fifteen-minutes and a mean rate.

func NewMeter ¶

func NewMeter(meta *MetricMeta) Meter

NewMeter constructs a new StandardMeter and launches a goroutine.

type MeterSnapshot ¶

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

func (*MeterSnapshot) Count ¶

func (m *MeterSnapshot) Count() int64

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

func (*MeterSnapshot) Mark ¶

func (*MeterSnapshot) Mark(n int64)

Mark panics.

func (*MeterSnapshot) Rate1 ¶

func (m *MeterSnapshot) Rate1() float64

Rate1 returns the one-minute moving average rate of events per second at the time the snapshot was taken.

func (*MeterSnapshot) Rate15 ¶

func (m *MeterSnapshot) Rate15() float64

Rate15 returns the fifteen-minute moving average rate of events per second at the time the snapshot was taken.

func (*MeterSnapshot) Rate5 ¶

func (m *MeterSnapshot) Rate5() float64

Rate5 returns the five-minute moving average rate of events per second at the time the snapshot was taken.

func (*MeterSnapshot) RateMean ¶

func (m *MeterSnapshot) RateMean() float64

RateMean returns the meter's mean rate of events per second at the time the snapshot was taken.

func (*MeterSnapshot) Snapshot ¶

func (m *MeterSnapshot) Snapshot() Metric

Snapshot returns the snapshot.

type Metric ¶

type Metric interface {
	Name() string
	GetTagsCopy() map[string]string
	StringifyTags() string
	Snapshot() Metric
}

type MetricMeta ¶

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

func NewMetricMeta ¶

func NewMetricMeta(name string, tagStrings []string) *MetricMeta

func (*MetricMeta) GetTagsCopy ¶

func (m *MetricMeta) GetTagsCopy() map[string]string

func (*MetricMeta) Name ¶

func (m *MetricMeta) Name() string

func (*MetricMeta) StringifyTags ¶

func (m *MetricMeta) StringifyTags() string

type MetricPublisher ¶

type MetricPublisher interface {
	Publish(metrics []Metric)
}

type MetricSettings ¶

type MetricSettings struct {
	Enabled         bool
	IntervalSeconds int64

	Publishers []MetricPublisher
}

type NilEWMA ¶

type NilEWMA struct{}

NilEWMA is a no-op EWMA.

func (NilEWMA) Rate ¶

func (NilEWMA) Rate() float64

Rate is a no-op.

func (NilEWMA) Snapshot ¶

func (NilEWMA) Snapshot() EWMA

Snapshot is a no-op.

func (NilEWMA) Tick ¶

func (NilEWMA) Tick()

Tick is a no-op.

func (NilEWMA) Update ¶

func (NilEWMA) Update(n int64)

Update is a no-op.

type NilGauge ¶

type NilGauge struct{ *MetricMeta }

NilGauge is a no-op Gauge.

func (NilGauge) Snapshot ¶

func (NilGauge) Snapshot() Metric

Snapshot is a no-op.

func (NilGauge) Update ¶

func (NilGauge) Update(v int64)

Update is a no-op.

func (NilGauge) Value ¶

func (NilGauge) Value() int64

Value is a no-op.

type NilHistogram ¶

type NilHistogram struct {
	*MetricMeta
}

NilHistogram is a no-op Histogram.

func (NilHistogram) Clear ¶

func (NilHistogram) Clear()

Clear is a no-op.

func (NilHistogram) Count ¶

func (NilHistogram) Count() int64

Count is a no-op.

func (NilHistogram) Max ¶

func (NilHistogram) Max() int64

Max is a no-op.

func (NilHistogram) Mean ¶

func (NilHistogram) Mean() float64

Mean is a no-op.

func (NilHistogram) Min ¶

func (NilHistogram) Min() int64

Min is a no-op.

func (NilHistogram) Percentile ¶

func (NilHistogram) Percentile(p float64) float64

Percentile is a no-op.

func (NilHistogram) Percentiles ¶

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

Percentiles is a no-op.

func (NilHistogram) Sample ¶

func (NilHistogram) Sample() Sample

Sample is a no-op.

func (NilHistogram) Snapshot ¶

func (n NilHistogram) Snapshot() Metric

Snapshot is a no-op.

func (NilHistogram) StdDev ¶

func (NilHistogram) StdDev() float64

StdDev is a no-op.

func (NilHistogram) Sum ¶

func (NilHistogram) Sum() int64

Sum is a no-op.

func (NilHistogram) Update ¶

func (NilHistogram) Update(v int64)

Update is a no-op.

func (NilHistogram) Variance ¶

func (NilHistogram) Variance() float64

Variance is a no-op.

type NilMeter ¶

type NilMeter struct{ *MetricMeta }

NilMeter is a no-op Meter.

func (NilMeter) Count ¶

func (NilMeter) Count() int64

Count is a no-op.

func (NilMeter) Mark ¶

func (NilMeter) Mark(n int64)

Mark is a no-op.

func (NilMeter) Rate1 ¶

func (NilMeter) Rate1() float64

Rate1 is a no-op.

func (NilMeter) Rate15 ¶

func (NilMeter) Rate15() float64

Rate15is a no-op.

func (NilMeter) Rate5 ¶

func (NilMeter) Rate5() float64

Rate5 is a no-op.

func (NilMeter) RateMean ¶

func (NilMeter) RateMean() float64

RateMean is a no-op.

func (NilMeter) Snapshot ¶

func (NilMeter) Snapshot() Metric

Snapshot is a no-op.

type NilSample ¶

type NilSample struct{}

NilSample is a no-op Sample.

func (NilSample) Clear ¶

func (NilSample) Clear()

Clear is a no-op.

func (NilSample) Count ¶

func (NilSample) Count() int64

Count is a no-op.

func (NilSample) Max ¶

func (NilSample) Max() int64

Max is a no-op.

func (NilSample) Mean ¶

func (NilSample) Mean() float64

Mean is a no-op.

func (NilSample) Min ¶

func (NilSample) Min() int64

Min is a no-op.

func (NilSample) Percentile ¶

func (NilSample) Percentile(p float64) float64

Percentile is a no-op.

func (NilSample) Percentiles ¶

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

Percentiles is a no-op.

func (NilSample) Size ¶

func (NilSample) Size() int

Size is a no-op.

func (NilSample) Snapshot ¶

func (NilSample) Snapshot() Sample

Sample is a no-op.

func (NilSample) StdDev ¶

func (NilSample) StdDev() float64

StdDev is a no-op.

func (NilSample) Sum ¶

func (NilSample) Sum() int64

Sum is a no-op.

func (NilSample) Update ¶

func (NilSample) Update(v int64)

Update is a no-op.

func (NilSample) Values ¶

func (NilSample) Values() []int64

Values is a no-op.

func (NilSample) Variance ¶

func (NilSample) Variance() float64

Variance is a no-op.

type NilTimer ¶

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

NilTimer is a no-op Timer.

func (NilTimer) Count ¶

func (NilTimer) Count() int64

Count is a no-op.

func (NilTimer) Max ¶

func (NilTimer) Max() int64

Max is a no-op.

func (NilTimer) Mean ¶

func (NilTimer) Mean() float64

Mean is a no-op.

func (NilTimer) Min ¶

func (NilTimer) Min() int64

Min is a no-op.

func (NilTimer) Percentile ¶

func (NilTimer) Percentile(p float64) float64

Percentile is a no-op.

func (NilTimer) Percentiles ¶

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

Percentiles is a no-op.

func (NilTimer) Rate1 ¶

func (NilTimer) Rate1() float64

Rate1 is a no-op.

func (NilTimer) Rate15 ¶

func (NilTimer) Rate15() float64

Rate15 is a no-op.

func (NilTimer) Rate5 ¶

func (NilTimer) Rate5() float64

Rate5 is a no-op.

func (NilTimer) RateMean ¶

func (NilTimer) RateMean() float64

RateMean is a no-op.

func (NilTimer) Snapshot ¶

func (n NilTimer) Snapshot() Metric

Snapshot is a no-op.

func (NilTimer) StdDev ¶

func (NilTimer) StdDev() float64

StdDev is a no-op.

func (NilTimer) Sum ¶

func (NilTimer) Sum() int64

Sum is a no-op.

func (NilTimer) Time ¶

func (NilTimer) Time(func())

Time is a no-op.

func (NilTimer) Update ¶

func (NilTimer) Update(time.Duration)

Update is a no-op.

func (NilTimer) UpdateSince ¶

func (NilTimer) UpdateSince(time.Time)

UpdateSince is a no-op.

func (NilTimer) Variance ¶

func (NilTimer) Variance() float64

Variance is a no-op.

type Registry ¶

type Registry interface {
	GetSnapshots() []Metric
	Register(metric Metric)
}
var MetricStats Registry

func NewRegistry ¶

func NewRegistry() Registry

Create a new registry.

type Sample ¶

type Sample interface {
	Clear()
	Count() int64
	Max() int64
	Mean() float64
	Min() int64
	Percentile(float64) float64
	Percentiles([]float64) []float64
	Size() int
	Snapshot() Sample
	StdDev() float64
	Sum() int64
	Update(int64)
	Values() []int64
	Variance() float64
}

Samples maintain a statistically-significant selection of values from a stream.

func NewExpDecaySample ¶

func NewExpDecaySample(reservoirSize int, alpha float64) Sample

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

func NewUniformSample ¶

func NewUniformSample(reservoirSize int) Sample

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

type SampleSnapshot ¶

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

SampleSnapshot is a read-only copy of another Sample.

func (*SampleSnapshot) Clear ¶

func (*SampleSnapshot) Clear()

Clear panics.

func (*SampleSnapshot) Count ¶

func (s *SampleSnapshot) Count() int64

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

func (*SampleSnapshot) Max ¶

func (s *SampleSnapshot) Max() int64

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

func (*SampleSnapshot) Mean ¶

func (s *SampleSnapshot) Mean() float64

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

func (*SampleSnapshot) Min ¶

func (s *SampleSnapshot) Min() int64

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

func (*SampleSnapshot) Percentile ¶

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

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

func (*SampleSnapshot) Percentiles ¶

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

Percentiles returns a slice of arbitrary percentiles of values at the time the snapshot was taken.

func (*SampleSnapshot) Size ¶

func (s *SampleSnapshot) Size() int

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

func (*SampleSnapshot) Snapshot ¶

func (s *SampleSnapshot) Snapshot() Sample

Snapshot returns the snapshot.

func (*SampleSnapshot) StdDev ¶

func (s *SampleSnapshot) StdDev() float64

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

func (*SampleSnapshot) Sum ¶

func (s *SampleSnapshot) Sum() int64

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

func (*SampleSnapshot) Update ¶

func (*SampleSnapshot) Update(int64)

Update panics.

func (*SampleSnapshot) Values ¶

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

Values returns a copy of the values in the sample.

func (*SampleSnapshot) Variance ¶

func (s *SampleSnapshot) Variance() float64

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

type StandardCounter ¶

type StandardCounter struct {
	*MetricMeta
	// 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 ¶

func (c *StandardCounter) Clear()

Clear sets the counter to zero.

func (*StandardCounter) Count ¶

func (c *StandardCounter) Count() int64

Count returns the current count.

func (*StandardCounter) Dec ¶

func (c *StandardCounter) Dec(i int64)

Dec decrements the counter by the given amount.

func (*StandardCounter) Inc ¶

func (c *StandardCounter) Inc(i int64)

Inc increments the counter by the given amount.

func (*StandardCounter) Snapshot ¶

func (c *StandardCounter) Snapshot() Metric

type StandardEWMA ¶

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

StandardEWMA is the standard implementation of an EWMA and tracks the number of uncounted events and processes them on each tick. It uses the sync/atomic package to manage uncounted events.

func (*StandardEWMA) Rate ¶

func (a *StandardEWMA) Rate() float64

Rate returns the moving average rate of events per second.

func (*StandardEWMA) Snapshot ¶

func (a *StandardEWMA) Snapshot() EWMA

Snapshot returns a read-only copy of the EWMA.

func (*StandardEWMA) Tick ¶

func (a *StandardEWMA) Tick()

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

func (*StandardEWMA) Update ¶

func (a *StandardEWMA) Update(n int64)

Update adds n uncounted events.

type StandardGauge ¶

type StandardGauge struct {
	*MetricMeta
	// 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. atomic needs 64-bit aligned memory which is ensure for first word

func (*StandardGauge) Snapshot ¶

func (g *StandardGauge) Snapshot() Metric

Snapshot returns a read-only copy of the gauge.

func (*StandardGauge) Update ¶

func (g *StandardGauge) Update(v int64)

Update updates the gauge's value.

func (*StandardGauge) Value ¶

func (g *StandardGauge) Value() int64

Value returns the gauge's current value.

type StandardHistogram ¶

type StandardHistogram struct {
	*MetricMeta
	// contains filtered or unexported fields
}

StandardHistogram is the standard implementation of a Histogram and uses a Sample to bound its memory use.

func (*StandardHistogram) Clear ¶

func (h *StandardHistogram) Clear()

Clear clears the histogram and its sample.

func (*StandardHistogram) Count ¶

func (h *StandardHistogram) Count() int64

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

func (*StandardHistogram) Max ¶

func (h *StandardHistogram) Max() int64

Max returns the maximum value in the sample.

func (*StandardHistogram) Mean ¶

func (h *StandardHistogram) Mean() float64

Mean returns the mean of the values in the sample.

func (*StandardHistogram) Min ¶

func (h *StandardHistogram) Min() int64

Min returns the minimum value in the sample.

func (*StandardHistogram) Percentile ¶

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

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

func (*StandardHistogram) Percentiles ¶

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

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

func (*StandardHistogram) Sample ¶

func (h *StandardHistogram) Sample() Sample

Sample returns the Sample underlying the histogram.

func (*StandardHistogram) Snapshot ¶

func (h *StandardHistogram) Snapshot() Metric

Snapshot returns a read-only copy of the histogram.

func (*StandardHistogram) StdDev ¶

func (h *StandardHistogram) StdDev() float64

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

func (*StandardHistogram) Sum ¶

func (h *StandardHistogram) Sum() int64

Sum returns the sum in the sample.

func (*StandardHistogram) Update ¶

func (h *StandardHistogram) Update(v int64)

Update samples a new value.

func (*StandardHistogram) Variance ¶

func (h *StandardHistogram) Variance() float64

Variance returns the variance of the values in the sample.

type StandardMeter ¶

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

StandardMeter is the standard implementation of a Meter.

func (*StandardMeter) Count ¶

func (m *StandardMeter) Count() int64

Count returns the number of events recorded.

func (*StandardMeter) Mark ¶

func (m *StandardMeter) Mark(n int64)

Mark records the occurance of n events.

func (*StandardMeter) Rate1 ¶

func (m *StandardMeter) Rate1() float64

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

func (*StandardMeter) Rate15 ¶

func (m *StandardMeter) Rate15() float64

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

func (*StandardMeter) Rate5 ¶

func (m *StandardMeter) Rate5() float64

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

func (*StandardMeter) RateMean ¶

func (m *StandardMeter) RateMean() float64

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

func (*StandardMeter) Snapshot ¶

func (m *StandardMeter) Snapshot() Metric

Snapshot returns a read-only copy of the meter.

type StandardRegistry ¶

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

The standard implementation of a Registry is a mutex-protected map of names to metrics.

func (*StandardRegistry) GetSnapshots ¶

func (r *StandardRegistry) GetSnapshots() []Metric

Call the given function for each registered metric.

func (*StandardRegistry) Register ¶

func (r *StandardRegistry) Register(metric Metric)

type StandardTimer ¶

type StandardTimer struct {
	*MetricMeta
	// contains filtered or unexported fields
}

StandardTimer is the standard implementation of a Timer and uses a Histogram and Meter.

func (*StandardTimer) Count ¶

func (t *StandardTimer) Count() int64

Count returns the number of events recorded.

func (*StandardTimer) Max ¶

func (t *StandardTimer) Max() int64

Max returns the maximum value in the sample.

func (*StandardTimer) Mean ¶

func (t *StandardTimer) Mean() float64

Mean returns the mean of the values in the sample.

func (*StandardTimer) Min ¶

func (t *StandardTimer) Min() int64

Min returns the minimum value in the sample.

func (*StandardTimer) Percentile ¶

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

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

func (*StandardTimer) Percentiles ¶

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

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

func (*StandardTimer) Rate1 ¶

func (t *StandardTimer) Rate1() float64

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

func (*StandardTimer) Rate15 ¶

func (t *StandardTimer) Rate15() float64

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

func (*StandardTimer) Rate5 ¶

func (t *StandardTimer) Rate5() float64

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

func (*StandardTimer) RateMean ¶

func (t *StandardTimer) RateMean() float64

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

func (*StandardTimer) Snapshot ¶

func (t *StandardTimer) Snapshot() Metric

Snapshot returns a read-only copy of the timer.

func (*StandardTimer) StdDev ¶

func (t *StandardTimer) StdDev() float64

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

func (*StandardTimer) Sum ¶

func (t *StandardTimer) Sum() int64

Sum returns the sum in the sample.

func (*StandardTimer) Time ¶

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

Record the duration of the execution of the given function.

func (*StandardTimer) Update ¶

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

Record the duration of an event.

func (*StandardTimer) UpdateSince ¶

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

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

func (*StandardTimer) Variance ¶

func (t *StandardTimer) Variance() float64

Variance returns the variance of the values in the sample.

type Timer ¶

type Timer interface {
	Metric

	Count() int64
	Max() int64
	Mean() float64
	Min() int64
	Percentile(float64) float64
	Percentiles([]float64) []float64
	Rate1() float64
	Rate5() float64
	Rate15() float64
	RateMean() float64
	StdDev() float64
	Sum() int64
	Time(func())
	Update(time.Duration)
	UpdateSince(time.Time)
	Variance() float64
}

Timers capture the duration and rate of events.

func NewCustomTimer ¶

func NewCustomTimer(meta *MetricMeta, h Histogram, m Meter) Timer

NewCustomTimer constructs a new StandardTimer from a Histogram and a Meter.

func NewTimer ¶

func NewTimer(meta *MetricMeta) Timer

NewTimer constructs a new StandardTimer using an exponentially-decaying sample with the same reservoir size and alpha as UNIX load averages.

func RegTimer ¶

func RegTimer(name string, tagStrings ...string) Timer

type TimerSnapshot ¶

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

TimerSnapshot is a read-only copy of another Timer.

func (*TimerSnapshot) Count ¶

func (t *TimerSnapshot) Count() int64

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

func (*TimerSnapshot) Max ¶

func (t *TimerSnapshot) Max() int64

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

func (*TimerSnapshot) Mean ¶

func (t *TimerSnapshot) Mean() float64

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

func (*TimerSnapshot) Min ¶

func (t *TimerSnapshot) Min() int64

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

func (*TimerSnapshot) Percentile ¶

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

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

func (*TimerSnapshot) Percentiles ¶

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

Percentiles returns a slice of arbitrary percentiles of sampled values at the time the snapshot was taken.

func (*TimerSnapshot) Rate1 ¶

func (t *TimerSnapshot) Rate1() float64

Rate1 returns the one-minute moving average rate of events per second at the time the snapshot was taken.

func (*TimerSnapshot) Rate15 ¶

func (t *TimerSnapshot) Rate15() float64

Rate15 returns the fifteen-minute moving average rate of events per second at the time the snapshot was taken.

func (*TimerSnapshot) Rate5 ¶

func (t *TimerSnapshot) Rate5() float64

Rate5 returns the five-minute moving average rate of events per second at the time the snapshot was taken.

func (*TimerSnapshot) RateMean ¶

func (t *TimerSnapshot) RateMean() float64

RateMean returns the meter's mean rate of events per second at the time the snapshot was taken.

func (*TimerSnapshot) Snapshot ¶

func (t *TimerSnapshot) Snapshot() Metric

Snapshot returns the snapshot.

func (*TimerSnapshot) StdDev ¶

func (t *TimerSnapshot) StdDev() float64

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

func (*TimerSnapshot) Sum ¶

func (t *TimerSnapshot) Sum() int64

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

func (*TimerSnapshot) Time ¶

func (*TimerSnapshot) Time(func())

Time panics.

func (*TimerSnapshot) Update ¶

func (*TimerSnapshot) Update(time.Duration)

Update panics.

func (*TimerSnapshot) UpdateSince ¶

func (*TimerSnapshot) UpdateSince(time.Time)

UpdateSince panics.

func (*TimerSnapshot) Variance ¶

func (t *TimerSnapshot) Variance() float64

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

type UniformSample ¶

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

A uniform sample using Vitter's Algorithm R.

<http://www.cs.umd.edu/~samir/498/vitter.pdf>

func (*UniformSample) Clear ¶

func (s *UniformSample) Clear()

Clear clears all samples.

func (*UniformSample) Count ¶

func (s *UniformSample) Count() int64

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

func (*UniformSample) Max ¶

func (s *UniformSample) Max() int64

Max returns the maximum value in the sample, which may not be the maximum value ever to be part of the sample.

func (*UniformSample) Mean ¶

func (s *UniformSample) Mean() float64

Mean returns the mean of the values in the sample.

func (*UniformSample) Min ¶

func (s *UniformSample) Min() int64

Min returns the minimum value in the sample, which may not be the minimum value ever to be part of the sample.

func (*UniformSample) Percentile ¶

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

Percentile returns an arbitrary percentile of values in the sample.

func (*UniformSample) Percentiles ¶

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

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

func (*UniformSample) Size ¶

func (s *UniformSample) Size() int

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

func (*UniformSample) Snapshot ¶

func (s *UniformSample) Snapshot() Sample

Snapshot returns a read-only copy of the sample.

func (*UniformSample) StdDev ¶

func (s *UniformSample) StdDev() float64

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

func (*UniformSample) Sum ¶

func (s *UniformSample) Sum() int64

Sum returns the sum of the values in the sample.

func (*UniformSample) Update ¶

func (s *UniformSample) Update(v int64)

Update samples a new value.

func (*UniformSample) Values ¶

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

Values returns a copy of the values in the sample.

func (*UniformSample) Variance ¶

func (s *UniformSample) Variance() float64

Variance returns the variance of the values in the sample.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL