metrics

package
v1.1.0-alpha Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2017 License: Apache-2.0, Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetKey

func GetKey(name string, tags map[string]string, tagsSep string, tagKVSep string) string

GetKey converts name+tags into a single string of the form "name|tag1=value1|...|tagN=valueN", where tag names are sorted alphabetically.

func Init

func Init(metrics interface{}, factory Factory, globalTags map[string]string)

Init initializes the passed in metrics and initializes its fields using the passed in factory.

Types

type Counter

type Counter interface {
	// Inc adds the given value to the counter.
	Inc(int64)
}

Counter tracks the number of times an event has occurred

var NullCounter Counter = nullCounter{}

NullCounter counter that does nothing

type Factory

type Factory interface {
	Counter(name string, tags map[string]string) Counter
	Timer(name string, tags map[string]string) Timer
	Gauge(name string, tags map[string]string) Gauge

	// Namespace returns a nested metrics factory.
	Namespace(name string, tags map[string]string) Factory
}

Factory creates new metrics

var NullFactory Factory = nullFactory{}

NullFactory is a metrics factory that returns NullCounter, NullTimer, and NullGauge.

type Gauge

type Gauge interface {
	// Update the gauge to the value passed in.
	Update(int64)
}

Gauge returns instantaneous measurements of something as an int64 value

var NullGauge Gauge = nullGauge{}

NullGauge gauge that does nothing

type LocalBackend

type LocalBackend struct {
	TagsSep  string
	TagKVSep string
	// contains filtered or unexported fields
}

A LocalBackend is a metrics provider which aggregates data in-vm, and allows exporting snapshots to shove the data into a remote collector

func NewLocalBackend

func NewLocalBackend(collectionInterval time.Duration) *LocalBackend

NewLocalBackend returns a new LocalBackend. The collectionInterval is the histogram time window for each timer.

func (*LocalBackend) Clear

func (b *LocalBackend) Clear()

Clear discards accumulated stats

func (*LocalBackend) IncCounter

func (b *LocalBackend) IncCounter(name string, tags map[string]string, delta int64)

IncCounter increments a counter value

func (*LocalBackend) RecordTimer

func (b *LocalBackend) RecordTimer(name string, tags map[string]string, d time.Duration)

RecordTimer records a timing duration

func (*LocalBackend) Snapshot

func (b *LocalBackend) Snapshot() (counters, gauges map[string]int64)

Snapshot captures a snapshot of the current counter and gauge values

func (*LocalBackend) Stop

func (b *LocalBackend) Stop()

Stop cleanly closes the background goroutine spawned by NewLocalBackend.

func (*LocalBackend) UpdateGauge

func (b *LocalBackend) UpdateGauge(name string, tags map[string]string, value int64)

UpdateGauge updates the value of a gauge

type LocalFactory

type LocalFactory struct {
	*LocalBackend
	// contains filtered or unexported fields
}

LocalFactory stats factory that creates metrics that are stored locally

func NewLocalFactory

func NewLocalFactory(collectionInterval time.Duration) *LocalFactory

NewLocalFactory returns a new LocalMetricsFactory

func (*LocalFactory) Counter

func (l *LocalFactory) Counter(name string, tags map[string]string) Counter

Counter returns a local stats counter

func (*LocalFactory) Gauge

func (l *LocalFactory) Gauge(name string, tags map[string]string) Gauge

Gauge returns a local stats gauge.

func (*LocalFactory) Namespace

func (l *LocalFactory) Namespace(name string, tags map[string]string) Factory

Namespace returns a new namespace.

func (*LocalFactory) Timer

func (l *LocalFactory) Timer(name string, tags map[string]string) Timer

Timer returns a local stats timer.

type Stopwatch

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

A Stopwatch tracks the execution time of a specific event

func StartStopwatch

func StartStopwatch(timer Timer) Stopwatch

StartStopwatch begins recording the executing time of an event, returning a Stopwatch that should be used to stop the recording the time for that event. Multiple events can be occurring simultaneously each represented by different active Stopwatches

func (Stopwatch) ElapsedTime

func (s Stopwatch) ElapsedTime() time.Duration

ElapsedTime returns the amount of elapsed time (in time.Duration)

func (Stopwatch) Stop

func (s Stopwatch) Stop()

Stop stops executing of the stopwatch and records the amount of elapsed time

type Timer

type Timer interface {
	// Records the time passed in.
	Record(time.Duration)
}

Timer accumulates observations about how long some operation took, and also maintains a historgam of percentiles.

var NullTimer Timer = nullTimer{}

NullTimer timer that does nothing

Jump to

Keyboard shortcuts

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