circonusgometrics

package
v1.1.11 Latest Latest
Warning

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

Go to latest
Published: Mar 9, 2023 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Package circonusgometrics provides instrumentation for your applications in the form of counters, gauges and histograms and allows you to publish them to Circonus

Counters

A counter is a monotonically-increasing, unsigned, 64-bit integer used to represent the number of times an event has occurred. By tracking the deltas between measurements of a counter over intervals of time, an aggregation layer can derive rates, acceleration, etc.

Gauges

A gauge returns instantaneous measurements of something using signed, 64-bit integers. This value does not need to be monotonic.

Histograms

A histogram tracks the distribution of a stream of values (e.g. the number of seconds it takes to handle requests). Circonus can calculate complex analytics on these.

Reporting

A period push to a Circonus httptrap is confgurable.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CirconusMetrics

type CirconusMetrics struct {
	Log   *log.Logger
	Debug bool
	// contains filtered or unexported fields
}

CirconusMetrics state

func New

func New(cfg *Config) (*CirconusMetrics, error)

New returns a CirconusMetrics instance

func NewCirconusMetrics

func NewCirconusMetrics(cfg *Config) (*CirconusMetrics, error)

NewCirconusMetrics returns a CirconusMetrics instance

func (*CirconusMetrics) Add

func (m *CirconusMetrics) Add(metric string, val uint64)

Add updates counter by supplied value

func (*CirconusMetrics) AddGauge

func (m *CirconusMetrics) AddGauge(metric string, val interface{})

AddGauge adds value to existing gauge

func (*CirconusMetrics) AddMetricTags

func (m *CirconusMetrics) AddMetricTags(name string, tags []string) bool

AddMetricTags appends tags to any existing tags for the named metric and flags a check update is needed

func (*CirconusMetrics) Flush

func (m *CirconusMetrics) Flush()

Flush metrics kicks off the process of sending metrics to Circonus

func (*CirconusMetrics) FlushMetrics

func (m *CirconusMetrics) FlushMetrics() *Metrics

FlushMetrics flushes current metrics to a structure and returns it (does NOT send to Circonus)

func (*CirconusMetrics) Gauge

func (m *CirconusMetrics) Gauge(metric string, val interface{})

Gauge sets a gauge to a value

func (*CirconusMetrics) GetCounterTest

func (m *CirconusMetrics) GetCounterTest(metric string) (uint64, error)

GetCounterTest returns the current value for a counter. (note: it is a function specifically for "testing", disable automatic submission during testing.)

func (*CirconusMetrics) GetGaugeTest

func (m *CirconusMetrics) GetGaugeTest(metric string) (interface{}, error)

GetGaugeTest returns the current value for a gauge. (note: it is a function specifically for "testing", disable automatic submission during testing.)

func (*CirconusMetrics) GetHistogramTest

func (m *CirconusMetrics) GetHistogramTest(metric string) ([]string, error)

GetHistogramTest returns the current value for a gauge. (note: it is a function specifically for "testing", disable automatic submission during testing.)

func (*CirconusMetrics) Increment

func (m *CirconusMetrics) Increment(metric string)

Increment counter by 1

func (*CirconusMetrics) IncrementByValue

func (m *CirconusMetrics) IncrementByValue(metric string, val uint64)

IncrementByValue updates counter by supplied value

func (*CirconusMetrics) NewHistogram

func (m *CirconusMetrics) NewHistogram(metric string) *Histogram

NewHistogram returns a histogram instance.

func (*CirconusMetrics) PromOutput

func (m *CirconusMetrics) PromOutput() (*bytes.Buffer, error)

PromOutput returns lines of metrics in prom format

func (*CirconusMetrics) Ready

func (m *CirconusMetrics) Ready() bool

Ready returns true or false indicating if the check is ready to accept metrics

func (*CirconusMetrics) RecordCountForValue

func (m *CirconusMetrics) RecordCountForValue(metric string, val float64, n int64)

RecordCountForValue adds count n for value to a histogram

func (*CirconusMetrics) RecordValue

func (m *CirconusMetrics) RecordValue(metric string, val float64)

RecordValue adds a value to a histogram

func (*CirconusMetrics) RemoveCounter

func (m *CirconusMetrics) RemoveCounter(metric string)

RemoveCounter removes the named counter

func (*CirconusMetrics) RemoveCounterFunc

func (m *CirconusMetrics) RemoveCounterFunc(metric string)

RemoveCounterFunc removes the named counter function

func (*CirconusMetrics) RemoveGauge

func (m *CirconusMetrics) RemoveGauge(metric string)

RemoveGauge removes a gauge

func (*CirconusMetrics) RemoveGaugeFunc

func (m *CirconusMetrics) RemoveGaugeFunc(metric string)

RemoveGaugeFunc removes a gauge function

func (*CirconusMetrics) RemoveHistogram

func (m *CirconusMetrics) RemoveHistogram(metric string)

RemoveHistogram removes a histogram

func (*CirconusMetrics) RemoveText

func (m *CirconusMetrics) RemoveText(metric string)

RemoveText removes a text metric

func (*CirconusMetrics) RemoveTextFunc

func (m *CirconusMetrics) RemoveTextFunc(metric string)

RemoveTextFunc a text metric function

func (*CirconusMetrics) Reset

func (m *CirconusMetrics) Reset()

Reset removes all existing counters and gauges.

func (*CirconusMetrics) Set

func (m *CirconusMetrics) Set(metric string, val uint64)

Set a counter to specific value

func (*CirconusMetrics) SetCounterFunc

func (m *CirconusMetrics) SetCounterFunc(metric string, fn func() uint64)

SetCounterFunc set counter to a function [called at flush interval]

func (*CirconusMetrics) SetGauge

func (m *CirconusMetrics) SetGauge(metric string, val interface{})

SetGauge sets a gauge to a value

func (*CirconusMetrics) SetGaugeFunc

func (m *CirconusMetrics) SetGaugeFunc(metric string, fn func() int64)

SetGaugeFunc sets a gauge to a function [called at flush interval]

func (*CirconusMetrics) SetHistogramValue

func (m *CirconusMetrics) SetHistogramValue(metric string, val float64)

SetHistogramValue adds a value to a histogram

func (*CirconusMetrics) SetMetricTags

func (m *CirconusMetrics) SetMetricTags(name string, tags []string) bool

SetMetricTags sets the tags for the named metric and flags a check update is needed

func (*CirconusMetrics) SetText

func (m *CirconusMetrics) SetText(metric string, val string)

SetText sets a text metric

func (*CirconusMetrics) SetTextFunc

func (m *CirconusMetrics) SetTextFunc(metric string, fn func() string)

SetTextFunc sets a text metric to a function [called at flush interval]

func (*CirconusMetrics) SetTextValue

func (m *CirconusMetrics) SetTextValue(metric string, val string)

SetTextValue sets a text metric

func (*CirconusMetrics) Start

func (m *CirconusMetrics) Start()

Start deprecated NOP, automatic flush is started in New if flush interval > 0.

func (*CirconusMetrics) Timing

func (m *CirconusMetrics) Timing(metric string, val float64)

Timing adds a value to a histogram

func (*CirconusMetrics) TrackHTTPLatency

func (m *CirconusMetrics) TrackHTTPLatency(name string, handler func(http.ResponseWriter, *http.Request)) func(http.ResponseWriter, *http.Request)

TrackHTTPLatency wraps Handler functions registered with an http.ServerMux tracking latencies. Metrics are of the for go`HTTP`<method>`<name>`latency and are tracked in a histogram in units of seconds (as a float64) providing nanosecond ganularity.

type Config

type Config struct {
	Log             *log.Logger
	Debug           bool
	ResetCounters   string // reset/delete counters on flush (default true)
	ResetGauges     string // reset/delete gauges on flush (default true)
	ResetHistograms string // reset/delete histograms on flush (default true)
	ResetText       string // reset/delete text on flush (default true)

	// API, Check and Broker configuration options
	CheckManager checkmgr.Config

	// how frequenly to submit metrics to Circonus, default 10 seconds.
	// Set to 0 to disable automatic flushes and call Flush manually.
	Interval string
}

Config options for circonus-gometrics

type Histogram

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

Histogram measures the distribution of a stream of values.

func (*Histogram) Name

func (h *Histogram) Name() string

Name returns the name from a histogram instance

func (*Histogram) RecordValue

func (h *Histogram) RecordValue(v float64)

RecordValue records the given value to a histogram instance

type Metric

type Metric struct {
	Type  string      `json:"_type"`
	Value interface{} `json:"_value"`
}

Metric defines an individual metric

type Metrics

type Metrics map[string]Metric

Metrics holds host metrics

Directories

Path Synopsis
api
Package api provides methods for interacting with the Circonus API.
Package api provides methods for interacting with the Circonus API.
Package checkmgr provides a check management interface to circonus-gometrics
Package checkmgr provides a check management interface to circonus-gometrics

Jump to

Keyboard shortcuts

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