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 configurable.
Index ¶
- Constants
- type CirconusMetrics
- func (m *CirconusMetrics) Add(metric string, val uint64)
- func (m *CirconusMetrics) AddGauge(metric string, val interface{})
- func (m *CirconusMetrics) AddGaugeWithTags(metric string, tags Tags, val interface{})
- func (m *CirconusMetrics) AddMetricTags(name string, tags []string) bool
- func (m *CirconusMetrics) AddWithTags(metric string, tags Tags, val uint64)
- func (m *CirconusMetrics) Custom(metricName string, metric Metric) error
- func (m *CirconusMetrics) EncodeMetricStreamTags(metricName string, tags Tags) string
- func (m *CirconusMetrics) EncodeMetricTags(metricName string, tags Tags) []string
- func (m *CirconusMetrics) Flush()
- func (m *CirconusMetrics) FlushMetrics() *Metrics
- func (m *CirconusMetrics) FlushMetricsNoReset() *Metrics
- func (m *CirconusMetrics) Gauge(metric string, val interface{})
- func (m *CirconusMetrics) GaugeWithTags(metric string, tags Tags, val interface{})
- func (m *CirconusMetrics) GetBrokerTLSConfig() *tls.Config
- func (m *CirconusMetrics) GetCheckBundle() *apiclient.CheckBundle
- func (m *CirconusMetrics) GetCounterTest(metric string) (uint64, error)
- func (m *CirconusMetrics) GetGaugeTest(metric string) (interface{}, error)
- func (m *CirconusMetrics) GetHistogramTest(metric string) ([]string, error)
- func (m *CirconusMetrics) Increment(metric string)
- func (m *CirconusMetrics) IncrementByValue(metric string, val uint64)
- func (m *CirconusMetrics) IncrementByValueWithTags(metric string, tags Tags, val uint64)
- func (m *CirconusMetrics) IncrementWithTags(metric string, tags Tags)
- func (m *CirconusMetrics) MetricNameWithStreamTags(metric string, tags Tags) string
- func (m *CirconusMetrics) NewHistogram(metric string) *Histogram
- func (m *CirconusMetrics) NewHistogramWithTags(metric string, tags Tags) *Histogram
- func (m *CirconusMetrics) PromOutput() (*bytes.Buffer, error)
- func (m *CirconusMetrics) Ready() bool
- func (m *CirconusMetrics) RecordCountForValue(metric string, val float64, n int64)
- func (m *CirconusMetrics) RecordCountForValueWithTags(metric string, tags Tags, val float64, n int64)
- func (m *CirconusMetrics) RecordDuration(metric string, val time.Duration)
- func (m *CirconusMetrics) RecordDurationWithTags(metric string, tags Tags, val time.Duration)
- func (m *CirconusMetrics) RecordValue(metric string, val float64)
- func (m *CirconusMetrics) RecordValueWithTags(metric string, tags Tags, val float64)
- func (m *CirconusMetrics) RemoveCounter(metric string)
- func (m *CirconusMetrics) RemoveCounterFunc(metric string)
- func (m *CirconusMetrics) RemoveCounterFuncWithTags(metric string, tags Tags)
- func (m *CirconusMetrics) RemoveCounterWithTags(metric string, tags Tags)
- func (m *CirconusMetrics) RemoveGauge(metric string)
- func (m *CirconusMetrics) RemoveGaugeFunc(metric string)
- func (m *CirconusMetrics) RemoveGaugeFuncWithTags(metric string, tags Tags)
- func (m *CirconusMetrics) RemoveGaugeWithTags(metric string, tags Tags)
- func (m *CirconusMetrics) RemoveHistogram(metric string)
- func (m *CirconusMetrics) RemoveHistogramWithTags(metric string, tags Tags)
- func (m *CirconusMetrics) RemoveText(metric string)
- func (m *CirconusMetrics) RemoveTextFunc(metric string)
- func (m *CirconusMetrics) RemoveTextFuncWithTags(metric string, tags Tags)
- func (m *CirconusMetrics) RemoveTextWithTags(metric string, tags Tags)
- func (m *CirconusMetrics) Reset()
- func (m *CirconusMetrics) Set(metric string, val uint64)
- func (m *CirconusMetrics) SetCounterFunc(metric string, fn func() uint64)
- func (m *CirconusMetrics) SetCounterFuncWithTags(metric string, tags Tags, fn func() uint64)
- func (m *CirconusMetrics) SetGauge(metric string, val interface{})
- func (m *CirconusMetrics) SetGaugeFunc(metric string, fn func() int64)
- func (m *CirconusMetrics) SetGaugeFuncWithTags(metric string, tags Tags, fn func() int64)
- func (m *CirconusMetrics) SetGaugeWithTags(metric string, tags Tags, val interface{})
- func (m *CirconusMetrics) SetHistogramDuration(metric string, val time.Duration)
- func (m *CirconusMetrics) SetHistogramDurationWithTags(metric string, tags Tags, val time.Duration)
- func (m *CirconusMetrics) SetHistogramValue(metric string, val float64)
- func (m *CirconusMetrics) SetHistogramValueWithTags(metric string, tags Tags, val float64)
- func (m *CirconusMetrics) SetMetricTags(name string, tags []string) bool
- func (m *CirconusMetrics) SetSubmitTimestamp(ts time.Time)
- func (m *CirconusMetrics) SetText(metric string, val string)
- func (m *CirconusMetrics) SetTextFunc(metric string, fn func() string)
- func (m *CirconusMetrics) SetTextFuncWithTags(metric string, tags Tags, fn func() string)
- func (m *CirconusMetrics) SetTextValue(metric string, val string)
- func (m *CirconusMetrics) SetTextValueWithTags(metric string, tags Tags, val string)
- func (m *CirconusMetrics) SetTextWithTags(metric string, tags Tags, val string)
- func (m *CirconusMetrics) SetWithTags(metric string, tags Tags, val uint64)
- func (m *CirconusMetrics) Start()
- func (m *CirconusMetrics) Timing(metric string, val float64)
- func (m *CirconusMetrics) TimingWithTags(metric string, tags Tags, val float64)
- func (m *CirconusMetrics) TrackHTTPLatency(name string, handler func(http.ResponseWriter, *http.Request)) func(http.ResponseWriter, *http.Request)
- type Config
- type Histogram
- type Logger
- type Metric
- type Metrics
- type Tag
- type Tags
Constants ¶
const ( // MetricTypeInt32 reconnoiter MetricTypeInt32 = "i" // MetricTypeUint32 reconnoiter MetricTypeUint32 = "I" // MetricTypeInt64 reconnoiter MetricTypeInt64 = "l" // MetricTypeUint64 reconnoiter MetricTypeUint64 = "L" // MetricTypeFloat64 reconnoiter MetricTypeFloat64 = "n" // MetricTypeString reconnoiter MetricTypeString = "s" // MetricTypeHistogram reconnoiter MetricTypeHistogram = "h" // MetricTypeCumulativeHistogram reconnoiter MetricTypeCumulativeHistogram = "H" )
const ( MaxTagLen = 256 // sync w/NOIT_TAG_MAX_PAIR_LEN https://github.com/circonus-labs/reconnoiter/blob/master/src/noit_metric.h#L102 MaxTagCat = 254 // sync w/NOIT_TAG_MAX_CAT_LEN https://github.com/circonus-labs/reconnoiter/blob/master/src/noit_metric.h#L104 // MaxTags reconnoiter will accept in stream tagged metric name MaxTags = 256 // sync w/MAX_TAGS https://github.com/circonus-labs/reconnoiter/blob/master/src/noit_metric.h#L46 // MaxMetricNameLen reconnoiter will accept (name+stream tags) MaxMetricNameLen = 4096 // sync w/MAX_METRIC_TAGGED_NAME https://github.com/circonus-labs/reconnoiter/blob/master/src/noit_metric.h#L45 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CirconusMetrics ¶
type CirconusMetrics struct { Log Logger Debug bool DumpMetrics bool // contains filtered or unexported fields }
CirconusMetrics state
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) AddGaugeWithTags ¶
func (m *CirconusMetrics) AddGaugeWithTags(metric string, tags Tags, val interface{})
AddGaugeWithTags adds value to existing gauge metric with tags
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 Note: does not work with checks using metric_filters (the default) use metric `*WithTags` helper methods or manual manage stream tags in metric names.
func (*CirconusMetrics) AddWithTags ¶
func (m *CirconusMetrics) AddWithTags(metric string, tags Tags, val uint64)
AddWithTags updates counter metric with tags by supplied value
func (*CirconusMetrics) Custom ¶ added in v3.3.3
func (m *CirconusMetrics) Custom(metricName string, metric Metric) error
Custom adds a user defined metric
func (*CirconusMetrics) EncodeMetricStreamTags ¶
func (m *CirconusMetrics) EncodeMetricStreamTags(metricName string, tags Tags) string
EncodeMetricStreamTags encodes Tags into a string suitable for use with stream tags. Tags directly embedded into metric names using the `metric_name|ST[<tags>]` syntax.
func (*CirconusMetrics) EncodeMetricTags ¶
func (m *CirconusMetrics) EncodeMetricTags(metricName string, tags Tags) []string
EncodeMetricTags encodes Tags into an array of strings. The format check_bundle.metircs.metric.tags needs. This helper is intended to work with legacy check bundle metrics. Tags directly on named metrics are being removed in favor of stream tags.
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) FlushMetricsNoReset ¶ added in v3.0.2
func (m *CirconusMetrics) FlushMetricsNoReset() *Metrics
FlushMetricsNoReset 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) GaugeWithTags ¶
func (m *CirconusMetrics) GaugeWithTags(metric string, tags Tags, val interface{})
GaugeWithTags sets a gauge metric with tags to a value
func (*CirconusMetrics) GetBrokerTLSConfig ¶ added in v3.4.2
func (m *CirconusMetrics) GetBrokerTLSConfig() *tls.Config
GetBrokerTLSConfig returns the tls.Config for the broker
func (*CirconusMetrics) GetCheckBundle ¶ added in v3.4.2
func (m *CirconusMetrics) GetCheckBundle() *apiclient.CheckBundle
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 histogram. (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) IncrementByValueWithTags ¶
func (m *CirconusMetrics) IncrementByValueWithTags(metric string, tags Tags, val uint64)
IncrementByValueWithTags updates counter metric with tags by supplied value
func (*CirconusMetrics) IncrementWithTags ¶
func (m *CirconusMetrics) IncrementWithTags(metric string, tags Tags)
IncrementWithTags counter by 1, with tags
func (*CirconusMetrics) MetricNameWithStreamTags ¶
func (m *CirconusMetrics) MetricNameWithStreamTags(metric string, tags Tags) string
MetricNameWithStreamTags will encode tags as stream tags into supplied metric name. Note: if metric name already has stream tags it is assumed the metric name and embedded stream tags are being managed manually and calling this method will nave no effect.
func (*CirconusMetrics) NewHistogram ¶
func (m *CirconusMetrics) NewHistogram(metric string) *Histogram
NewHistogram returns a histogram instance.
func (*CirconusMetrics) NewHistogramWithTags ¶
func (m *CirconusMetrics) NewHistogramWithTags(metric string, tags Tags) *Histogram
NewHistogramWithTags returns a histogram metric with tags 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) RecordCountForValueWithTags ¶
func (m *CirconusMetrics) RecordCountForValueWithTags(metric string, tags Tags, val float64, n int64)
RecordCountForValueWithTags adds count n for value to a histogram metric with tags
func (*CirconusMetrics) RecordDuration ¶
func (m *CirconusMetrics) RecordDuration(metric string, val time.Duration)
RecordDuration adds a time.Duration to a histogram metric (duration is normalized to time.Second, but supports nanosecond granularity).
func (*CirconusMetrics) RecordDurationWithTags ¶
func (m *CirconusMetrics) RecordDurationWithTags(metric string, tags Tags, val time.Duration)
RecordDurationWithTags adds a time.Duration to a histogram metric with tags (duration is normalized to time.Second, but supports nanosecond granularity).
func (*CirconusMetrics) RecordValue ¶
func (m *CirconusMetrics) RecordValue(metric string, val float64)
RecordValue adds a value to a histogram
func (*CirconusMetrics) RecordValueWithTags ¶
func (m *CirconusMetrics) RecordValueWithTags(metric string, tags Tags, val float64)
RecordValueWithTags adds a value to a histogram metric with tags
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) RemoveCounterFuncWithTags ¶
func (m *CirconusMetrics) RemoveCounterFuncWithTags(metric string, tags Tags)
RemoveCounterFuncWithTags removes the named counter metric function with tags
func (*CirconusMetrics) RemoveCounterWithTags ¶
func (m *CirconusMetrics) RemoveCounterWithTags(metric string, tags Tags)
RemoveCounterWithTags removes the named counter metric with tags
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) RemoveGaugeFuncWithTags ¶
func (m *CirconusMetrics) RemoveGaugeFuncWithTags(metric string, tags Tags)
RemoveGaugeFuncWithTags removes a gauge metric with tags function
func (*CirconusMetrics) RemoveGaugeWithTags ¶
func (m *CirconusMetrics) RemoveGaugeWithTags(metric string, tags Tags)
RemoveGaugeWithTags removes a gauge metric with tags
func (*CirconusMetrics) RemoveHistogram ¶
func (m *CirconusMetrics) RemoveHistogram(metric string)
RemoveHistogram removes a histogram
func (*CirconusMetrics) RemoveHistogramWithTags ¶
func (m *CirconusMetrics) RemoveHistogramWithTags(metric string, tags Tags)
RemoveHistogramWithTags removes a histogram metric with tags
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) RemoveTextFuncWithTags ¶
func (m *CirconusMetrics) RemoveTextFuncWithTags(metric string, tags Tags)
RemoveTextFuncWithTags removes a text metric with tags function
func (*CirconusMetrics) RemoveTextWithTags ¶
func (m *CirconusMetrics) RemoveTextWithTags(metric string, tags Tags)
RemoveTextWithTags removes a text metric with tags
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) SetCounterFuncWithTags ¶
func (m *CirconusMetrics) SetCounterFuncWithTags(metric string, tags Tags, fn func() uint64)
SetCounterFuncWithTags set counter metric with tags 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) SetGaugeFuncWithTags ¶
func (m *CirconusMetrics) SetGaugeFuncWithTags(metric string, tags Tags, fn func() int64)
SetGaugeFuncWithTags sets a gauge metric with tags to a function [called at flush interval]
func (*CirconusMetrics) SetGaugeWithTags ¶
func (m *CirconusMetrics) SetGaugeWithTags(metric string, tags Tags, val interface{})
SetGaugeWithTags sets a gauge metric with tags to a value
func (*CirconusMetrics) SetHistogramDuration ¶
func (m *CirconusMetrics) SetHistogramDuration(metric string, val time.Duration)
SetHistogramDuration adds a value to a histogram
func (*CirconusMetrics) SetHistogramDurationWithTags ¶
func (m *CirconusMetrics) SetHistogramDurationWithTags(metric string, tags Tags, val time.Duration)
SetHistogramDurationWithTags adds a value to a histogram with tags
func (*CirconusMetrics) SetHistogramValue ¶
func (m *CirconusMetrics) SetHistogramValue(metric string, val float64)
SetHistogramValue adds a value to a histogram
func (*CirconusMetrics) SetHistogramValueWithTags ¶
func (m *CirconusMetrics) SetHistogramValueWithTags(metric string, tags Tags, val float64)
SetHistogramValueWithTags adds a value to a histogram metric with tags
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 Note: does not work with checks using metric_filters (the default) use metric `*WithTags` helper methods or manual manage stream tags in metric names.
func (*CirconusMetrics) SetSubmitTimestamp ¶ added in v3.4.4
func (m *CirconusMetrics) SetSubmitTimestamp(ts time.Time)
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) SetTextFuncWithTags ¶
func (m *CirconusMetrics) SetTextFuncWithTags(metric string, tags Tags, fn func() string)
SetTextFuncWithTags sets a text metric with tags 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) SetTextValueWithTags ¶
func (m *CirconusMetrics) SetTextValueWithTags(metric string, tags Tags, val string)
SetTextValueWithTags sets a text metric with tags
func (*CirconusMetrics) SetTextWithTags ¶
func (m *CirconusMetrics) SetTextWithTags(metric string, tags Tags, val string)
SetTextWithTags sets a text metric with tags
func (*CirconusMetrics) SetWithTags ¶
func (m *CirconusMetrics) SetWithTags(metric string, tags Tags, val uint64)
SetWithTags sets a counter metric with tags to specific value
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) TimingWithTags ¶
func (m *CirconusMetrics) TimingWithTags(metric string, tags Tags, val float64)
TimingWithTags adds a value to a histogram metric with tags
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 Logger 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) // how frequently to submit metrics to Circonus, default 10 seconds. // Set to 0 to disable automatic flushes and call Flush manually. Interval string // API, Check and Broker configuration options CheckManager checkmgr.Config Debug bool DumpMetrics bool }
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) RecordDuration ¶
RecordDuration records the given time.Duration to a histogram instance. RecordDuration normalizes the value to seconds.
func (*Histogram) RecordValue ¶
RecordValue records the given value to a histogram instance
type Logger ¶
type Logger interface {
Printf(string, ...interface{})
}
Logger facilitates use of any logger supporting the required methods rather than just standard log package log.Logger