Documentation ¶
Overview ¶
Package metrics provides an internal abstraction for metrics API, and command line flags for configuring the metrics backend.
Index ¶
- func Init(m interface{}, factory Factory, globalTags map[string]string) error
- func MustInit(metrics interface{}, factory Factory, globalTags map[string]string)
- type Counter
- type Factory
- type Gauge
- type Histogram
- type HistogramOptions
- type NSOptions
- type Options
- type Stopwatch
- type Timer
- type TimerOptions
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Init ¶ added in v1.36.0
Init does the same as MustInit, but returns an error instead of panicking.
func MustInit ¶ added in v1.36.0
MustInit initializes the passed in metrics and initializes its fields using the passed in factory.
It uses reflection to initialize a struct containing metrics fields by assigning new Counter/Gauge/Timer values with the metric name retrieved from the `metric` tag and stats tags retrieved from the `tags` tag.
Note: all fields of the struct must be exported, have a `metric` tag, and be of type Counter or Gauge or Timer.
Errors during Init lead to a panic.
Types ¶
type Counter ¶ added in v1.36.0
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 ¶ added in v1.36.0
type Factory interface { Counter(metric Options) Counter Timer(metric TimerOptions) Timer Gauge(metric Options) Gauge Histogram(metric HistogramOptions) Histogram // Namespace returns a nested metrics factory. Namespace(scope NSOptions) Factory }
Factory creates new metrics
var NullFactory Factory = nullFactory{}
NullFactory is a metrics factory that returns NullCounter, NullTimer, and NullGauge.
type Gauge ¶ added in v1.36.0
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 Histogram ¶ added in v1.36.0
type Histogram interface { // Records the value passed in. Record(float64) }
Histogram that keeps track of a distribution of values.
var NullHistogram Histogram = nullHistogram{}
NullHistogram that does nothing
type HistogramOptions ¶ added in v1.36.0
HistogramOptions defines the information associated with a metric
type NSOptions ¶ added in v1.36.0
NSOptions defines the name and tags map associated with a factory namespace
type Stopwatch ¶ added in v1.36.0
type Stopwatch struct {
// contains filtered or unexported fields
}
A Stopwatch tracks the execution time of a specific event
func StartStopwatch ¶ added in v1.36.0
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 ¶ added in v1.36.0
ElapsedTime returns the amount of elapsed time (in time.Duration)