Back to godoc.org

Package push

v1.3.0
Latest Go to latest
Published: Jan 21, 2020 | License: MIT | Module: go.uber.org/net/metrics

Overview

Package push integrates go.uber.org/net/metrics with push-based telemetry systems like Graphite and M3. To integrate with such a system, implement the Target interface and use the Push method on metrics.Root.

See the go.uber.org/net/metrics/tallypush package for an example integration with both StatsD- and M3-based systems.

Index

Package Files

type Counter

type Counter interface {
	Set(total int64)
}

A Counter models monotonically increasing values, like a car's odometer. Implementations should expect to be called with the total accumulated value of the counter.

Implementations do not need to be safe for concurrent use.

type Gauge

type Gauge interface {
	Set(total int64)
}

A Gauge models moment-in-time measurements, like a car's speedometer. Implementations should expect to be called with the current value of the gauge.

Implementations do not need to be safe for concurrent use.

type Histogram

type Histogram interface {
	Set(bucket int64, total int64)
}

A Histogram approximates a distribution of values. Implementations should expect to be called with the upper bound of a bucket and the total accumulated number of observations in that bucket.

Implementations do not need to be safe for concurrent use.

type HistogramSpec

type HistogramSpec struct {
	Spec

	Buckets []int64 // upper bounds, inclusive
}

A HistogramSpec configures histograms.

type Spec

type Spec struct {
	Name string
	Tags map[string]string
}

A Spec configures counters and gauges.

type Target

type Target interface {
	NewCounter(Spec) Counter
	NewGauge(Spec) Gauge
	NewHistogram(HistogramSpec) Histogram
}

A Target bridges the metrics package's representations of counters, gauges, and histograms with push-based telemetry systems. Targets are designed to work with the metrics.Root struct's Push method, so they don't need to be safe for concurrent use.

A concrete implementation of this interface that works with StatsD and M3 is available in the go.uber.org/net/metrics/tallypush package.

func NewNop

func NewNop() Target

NewNop returns a no-op Target.

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier