Documentation ¶
Overview ¶
Package metrics contains a type for aggregating and propagating metrics to various services based on configuration.
Index ¶
- Constants
- Variables
- func Descriptions() string
- func OptSetLogger(log log.Modular) func(Type)
- func SanitiseConfig(conf Config) (interface{}, error)
- type Blacklist
- func (h *Blacklist) Close() error
- func (h *Blacklist) GetCounter(path string) StatCounter
- func (h *Blacklist) GetCounterVec(path string, n []string) StatCounterVec
- func (h *Blacklist) GetGauge(path string) StatGauge
- func (h *Blacklist) GetGaugeVec(path string, n []string) StatGaugeVec
- func (h *Blacklist) GetTimer(path string) StatTimer
- func (h *Blacklist) GetTimerVec(path string, n []string) StatTimerVec
- func (h *Blacklist) HandlerFunc() http.HandlerFunc
- func (h *Blacklist) SetLogger(log log.Modular)
- type BlacklistConfig
- type Config
- type DudStat
- type DudType
- func (d DudType) Close() error
- func (d DudType) GetCounter(path string) StatCounter
- func (d DudType) GetCounterVec(path string, n []string) StatCounterVec
- func (d DudType) GetGauge(path string) StatGauge
- func (d DudType) GetGaugeVec(path string, n []string) StatGaugeVec
- func (d DudType) GetTimer(path string) StatTimer
- func (d DudType) GetTimerVec(path string, n []string) StatTimerVec
- func (d DudType) SetLogger(log log.Modular)
- type Flat
- type HTTP
- func (h *HTTP) Close() error
- func (h *HTTP) GetCounter(path string) StatCounter
- func (h *HTTP) GetCounterVec(path string, n []string) StatCounterVec
- func (h *HTTP) GetGauge(path string) StatGauge
- func (h *HTTP) GetGaugeVec(path string, n []string) StatGaugeVec
- func (h *HTTP) GetTimer(path string) StatTimer
- func (h *HTTP) GetTimerVec(path string, n []string) StatTimerVec
- func (h *HTTP) HandlerFunc() http.HandlerFunc
- func (h *HTTP) SetLogger(log log.Modular)
- type Local
- func (l *Local) Close() error
- func (l *Local) GetCounter(path string) StatCounter
- func (l *Local) GetCounterVec(path string, n []string) StatCounterVec
- func (l *Local) GetCounters() map[string]int64
- func (l *Local) GetGauge(path string) StatGauge
- func (l *Local) GetGaugeVec(path string, n []string) StatGaugeVec
- func (l *Local) GetTimer(path string) StatTimer
- func (l *Local) GetTimerVec(path string, n []string) StatTimerVec
- func (l *Local) GetTimings() map[string]int64
- func (l *Local) SetLogger(log log.Modular)
- type LocalStat
- type PromCounter
- type PromCounterVec
- type PromGauge
- type PromGaugeVec
- type PromTiming
- type PromTimingVec
- type Prometheus
- func (p *Prometheus) Close() error
- func (p *Prometheus) GetCounter(path string) StatCounter
- func (p *Prometheus) GetCounterVec(path string, labelNames []string) StatCounterVec
- func (p *Prometheus) GetGauge(path string) StatGauge
- func (p *Prometheus) GetGaugeVec(path string, labelNames []string) StatGaugeVec
- func (p *Prometheus) GetTimer(path string) StatTimer
- func (p *Prometheus) GetTimerVec(path string, labelNames []string) StatTimerVec
- func (p *Prometheus) HandlerFunc() http.HandlerFunc
- func (p *Prometheus) SetLogger(log log.Modular)
- type PrometheusConfig
- type Rename
- func (r *Rename) Close() error
- func (r *Rename) GetCounter(path string) StatCounter
- func (r *Rename) GetCounterVec(path string, n []string) StatCounterVec
- func (r *Rename) GetGauge(path string) StatGauge
- func (r *Rename) GetGaugeVec(path string, n []string) StatGaugeVec
- func (r *Rename) GetTimer(path string) StatTimer
- func (r *Rename) GetTimerVec(path string, n []string) StatTimerVec
- func (r *Rename) HandlerFunc() http.HandlerFunc
- func (r *Rename) SetLogger(log log.Modular)
- type RenameByRegexpConfig
- type RenameConfig
- type StatCounter
- type StatCounterVec
- type StatGauge
- type StatGaugeVec
- type StatTimer
- type StatTimerVec
- type Statsd
- func (h *Statsd) Close() error
- func (h *Statsd) GetCounter(path string) StatCounter
- func (h *Statsd) GetCounterVec(path string, n []string) StatCounterVec
- func (h *Statsd) GetGauge(path string) StatGauge
- func (h *Statsd) GetGaugeVec(path string, n []string) StatGaugeVec
- func (h *Statsd) GetTimer(path string) StatTimer
- func (h *Statsd) GetTimerVec(path string, n []string) StatTimerVec
- func (h *Statsd) SetLogger(log log.Modular)
- type StatsdConfig
- type StatsdStat
- type Type
- func Combine(t1, t2 Type) Type
- func Namespaced(t Type, ns string) Type
- func New(conf Config, opts ...func(Type)) (Type, error)
- func NewBlacklist(config Config, opts ...func(Type)) (Type, error)
- func NewHTTP(config Config, opts ...func(Type)) (Type, error)
- func NewPrometheus(config Config, opts ...func(Type)) (Type, error)
- func NewRename(config Config, opts ...func(Type)) (Type, error)
- func NewStatsd(config Config, opts ...func(Type)) (Type, error)
- func NewWhitelist(config Config, opts ...func(Type)) (Type, error)
- func WrapFlat(f Flat) Type
- type TypeSpec
- type Whitelist
- func (h *Whitelist) Close() error
- func (h *Whitelist) GetCounter(path string) StatCounter
- func (h *Whitelist) GetCounterVec(path string, n []string) StatCounterVec
- func (h *Whitelist) GetGauge(path string) StatGauge
- func (h *Whitelist) GetGaugeVec(path string, n []string) StatGaugeVec
- func (h *Whitelist) GetTimer(path string) StatTimer
- func (h *Whitelist) GetTimerVec(path string, n []string) StatTimerVec
- func (h *Whitelist) HandlerFunc() http.HandlerFunc
- func (h *Whitelist) SetLogger(log log.Modular)
- type WhitelistConfig
- type WithHandlerFunc
Constants ¶
const ( TypeBlackList = "blacklist" TypeHTTPServer = "http_server" TypePrometheus = "prometheus" TypeRename = "rename" TypeStatsd = "statsd" TypeWhiteList = "whitelist" )
String constants representing each metric type.
Variables ¶
var Constructors = map[string]TypeSpec{}
Constructors is a map of all metrics types with their specs.
var (
ErrInvalidMetricOutputType = errors.New("invalid metrics output type")
)
Errors for the metrics package.
var (
ErrTimedOut = errors.New("timed out")
)
Errors for the HTTP type.
Functions ¶
func Descriptions ¶
func Descriptions() string
Descriptions returns a formatted string of collated descriptions of each type.
func OptSetLogger ¶ added in v0.14.4
OptSetLogger sets the logging output to be used by the metrics clients.
func SanitiseConfig ¶
SanitiseConfig returns a sanitised version of the Config, meaning sections that aren't relevant to behaviour are removed.
Types ¶
type Blacklist ¶ added in v1.6.0
type Blacklist struct {
// contains filtered or unexported fields
}
Blacklist is a statistics object that wraps a separate statistics object and only permits statistics that pass through the Blacklist to be recorded.
func (*Blacklist) Close ¶ added in v1.6.0
Close stops the Statsd object from aggregating metrics and cleans up resources.
func (*Blacklist) GetCounter ¶ added in v1.6.0
func (h *Blacklist) GetCounter(path string) StatCounter
GetCounter returns a stat counter object for a path.
func (*Blacklist) GetCounterVec ¶ added in v1.6.0
func (h *Blacklist) GetCounterVec(path string, n []string) StatCounterVec
GetCounterVec returns a stat counter object for a path with the labels discarded.
func (*Blacklist) GetGaugeVec ¶ added in v1.6.0
func (h *Blacklist) GetGaugeVec(path string, n []string) StatGaugeVec
GetGaugeVec returns a stat timer object for a path with the labels discarded.
func (*Blacklist) GetTimerVec ¶ added in v1.6.0
func (h *Blacklist) GetTimerVec(path string, n []string) StatTimerVec
GetTimerVec returns a stat timer object for a path with the labels discarded.
func (*Blacklist) HandlerFunc ¶ added in v1.6.0
func (h *Blacklist) HandlerFunc() http.HandlerFunc
HandlerFunc returns an http.HandlerFunc for accessing metrics for appropriate child types
type BlacklistConfig ¶ added in v1.6.0
type BlacklistConfig struct { Paths []string `json:"paths" yaml:"paths"` Patterns []string `json:"patterns" yaml:"patterns"` Child *Config `json:"child" yaml:"child"` }
BlacklistConfig allows for the placement of filtering rules to only allow metrics that are not matched to be displayed or retrieved. It has a set of prefixes (direct string comparison) that are checked as well as a set of regular expressions for more precise control over metrics. It also has a metrics configuration that is wrapped by the Blacklist.
func NewBlacklistConfig ¶ added in v1.6.0
func NewBlacklistConfig() BlacklistConfig
NewBlacklistConfig returns the default configuration for a Blacklist
func (BlacklistConfig) MarshalJSON ¶ added in v1.6.0
func (w BlacklistConfig) MarshalJSON() ([]byte, error)
MarshalJSON prints an empty object instead of nil.
func (BlacklistConfig) MarshalYAML ¶ added in v1.6.0
func (w BlacklistConfig) MarshalYAML() (interface{}, error)
MarshalYAML prints an empty object instead of nil.
type Config ¶
type Config struct { Type string `json:"type" yaml:"type"` Prefix string `json:"prefix" yaml:"prefix"` Blacklist BlacklistConfig `json:"blacklist" yaml:"blacklist"` HTTP struct{} `json:"http_server" yaml:"http_server"` Prometheus PrometheusConfig `json:"prometheus" yaml:"prometheus"` Rename RenameConfig `json:"rename" yaml:"rename"` Statsd StatsdConfig `json:"statsd" yaml:"statsd"` Whitelist WhitelistConfig `json:"whitelist" yaml:"whitelist"` }
Config is the all encompassing configuration struct for all metric output types.
TODO: V2 move field prefix into specific implementations.
func NewConfig ¶
func NewConfig() Config
NewConfig returns a configuration struct fully populated with default values.
func (*Config) UnmarshalJSON ¶ added in v1.6.0
UnmarshalJSON ensures that when parsing configs that are in a map or slice the default values are still applied.
func (*Config) UnmarshalYAML ¶ added in v1.6.0
UnmarshalYAML ensures that when parsing configs that are in a map or slice the default values are still applied.
type DudStat ¶
type DudStat struct{}
DudStat implements the Stat interface but doesn't actual do anything.
type DudType ¶
type DudType struct {
ID int
}
DudType implements the Type interface but doesn't actual do anything.
func (DudType) GetCounter ¶
func (d DudType) GetCounter(path string) StatCounter
GetCounter returns a DudStat.
func (DudType) GetCounterVec ¶ added in v0.25.0
func (d DudType) GetCounterVec(path string, n []string) StatCounterVec
GetCounterVec returns a DudStat.
func (DudType) GetGaugeVec ¶ added in v0.25.0
func (d DudType) GetGaugeVec(path string, n []string) StatGaugeVec
GetGaugeVec returns a DudStat.
func (DudType) GetTimerVec ¶ added in v0.25.0
func (d DudType) GetTimerVec(path string, n []string) StatTimerVec
GetTimerVec returns a DudStat.
type Flat ¶ added in v0.13.3
type Flat interface { // Flat is an interface for setting metrics via flat paths. // Incr increments a metric by an amount. Incr(path string, count int64) error // Decr decrements a metric by an amount. Decr(path string, count int64) error // Timing sets a timing metric. Timing(path string, delta int64) error // Gauge sets a gauge metric. Gauge(path string, value int64) error // Close stops aggregating stats and cleans up resources. Close() error }
Flat is an interface for setting metrics via flat paths.
type HTTP ¶
type HTTP struct {
// contains filtered or unexported fields
}
HTTP is an object with capability to hold internal stats as a JSON endpoint.
func (*HTTP) GetCounter ¶
func (h *HTTP) GetCounter(path string) StatCounter
GetCounter returns a stat counter object for a path.
func (*HTTP) GetCounterVec ¶ added in v0.25.0
func (h *HTTP) GetCounterVec(path string, n []string) StatCounterVec
GetCounterVec returns a stat counter object for a path with the labels discarded.
func (*HTTP) GetGaugeVec ¶ added in v0.25.0
func (h *HTTP) GetGaugeVec(path string, n []string) StatGaugeVec
GetGaugeVec returns a stat timer object for a path with the labels discarded.
func (*HTTP) GetTimerVec ¶ added in v0.25.0
func (h *HTTP) GetTimerVec(path string, n []string) StatTimerVec
GetTimerVec returns a stat timer object for a path with the labels discarded.
func (*HTTP) HandlerFunc ¶
func (h *HTTP) HandlerFunc() http.HandlerFunc
HandlerFunc returns an http.HandlerFunc for accessing metrics as a JSON blob.
type Local ¶ added in v0.15.3
Local is a metrics aggregator that stores metrics locally.
func NewLocal ¶ added in v0.15.3
func NewLocal() *Local
NewLocal creates and returns a new Local aggregator.
func (*Local) Close ¶ added in v0.15.3
Close stops the Local object from aggregating metrics and cleans up resources.
func (*Local) GetCounter ¶ added in v0.15.3
func (l *Local) GetCounter(path string) StatCounter
GetCounter returns a stat counter object for a path.
func (*Local) GetCounterVec ¶ added in v0.25.0
func (l *Local) GetCounterVec(path string, n []string) StatCounterVec
GetCounterVec returns a stat counter object for a path with the labels discarded.
func (*Local) GetCounters ¶ added in v0.15.3
GetCounters returns a map of metric paths to counters.
func (*Local) GetGaugeVec ¶ added in v0.25.0
func (l *Local) GetGaugeVec(path string, n []string) StatGaugeVec
GetGaugeVec returns a stat timer object for a path with the labels discarded.
func (*Local) GetTimerVec ¶ added in v0.25.0
func (l *Local) GetTimerVec(path string, n []string) StatTimerVec
GetTimerVec returns a stat timer object for a path with the labels discarded.
func (*Local) GetTimings ¶ added in v0.15.3
GetTimings returns a map of metric paths to timers.
type LocalStat ¶ added in v0.15.3
type LocalStat struct {
// contains filtered or unexported fields
}
LocalStat is a representation of a single metric stat. Interactions with this stat are thread safe.
type PromCounter ¶ added in v0.23.11
type PromCounter struct {
// contains filtered or unexported fields
}
PromCounter is a representation of a single metric stat. Interactions with this stat are thread safe.
func (*PromCounter) Incr ¶ added in v0.23.11
func (p *PromCounter) Incr(count int64) error
Incr increments a metric by an amount.
type PromCounterVec ¶ added in v0.25.0
type PromCounterVec struct {
// contains filtered or unexported fields
}
PromCounterVec creates StatCounters with dynamic labels.
func (*PromCounterVec) With ¶ added in v0.25.0
func (p *PromCounterVec) With(labelValues ...string) StatCounter
With returns a StatCounter with a set of label values.
type PromGauge ¶
type PromGauge struct {
// contains filtered or unexported fields
}
PromGauge is a representation of a single metric stat. Interactions with this stat are thread safe.
type PromGaugeVec ¶ added in v0.25.0
type PromGaugeVec struct {
// contains filtered or unexported fields
}
PromGaugeVec creates StatGauges with dynamic labels.
func (*PromGaugeVec) With ¶ added in v0.25.0
func (p *PromGaugeVec) With(labelValues ...string) StatGauge
With returns a StatGauge with a set of label values.
type PromTiming ¶
type PromTiming struct {
// contains filtered or unexported fields
}
PromTiming is a representation of a single metric stat. Interactions with this stat are thread safe.
func (*PromTiming) Timing ¶
func (p *PromTiming) Timing(val int64) error
Timing sets a timing metric.
type PromTimingVec ¶ added in v0.25.0
type PromTimingVec struct {
// contains filtered or unexported fields
}
PromTimingVec creates StatTimers with dynamic labels.
func (*PromTimingVec) With ¶ added in v0.25.0
func (p *PromTimingVec) With(labelValues ...string) StatTimer
With returns a StatTimer with a set of label values.
type Prometheus ¶
Prometheus is a stats object with capability to hold internal stats as a JSON endpoint.
func (*Prometheus) Close ¶
func (p *Prometheus) Close() error
Close stops the Prometheus object from aggregating metrics and cleans up resources.
func (*Prometheus) GetCounter ¶
func (p *Prometheus) GetCounter(path string) StatCounter
GetCounter returns a stat counter object for a path.
func (*Prometheus) GetCounterVec ¶ added in v0.25.0
func (p *Prometheus) GetCounterVec(path string, labelNames []string) StatCounterVec
GetCounterVec returns an editable counter stat for a given path with labels, these labels must be consistent with any other metrics registered on the same path.
func (*Prometheus) GetGauge ¶
func (p *Prometheus) GetGauge(path string) StatGauge
GetGauge returns a stat gauge object for a path.
func (*Prometheus) GetGaugeVec ¶ added in v0.25.0
func (p *Prometheus) GetGaugeVec(path string, labelNames []string) StatGaugeVec
GetGaugeVec returns an editable gauge stat for a given path with labels, these labels must be consistent with any other metrics registered on the same path.
func (*Prometheus) GetTimer ¶
func (p *Prometheus) GetTimer(path string) StatTimer
GetTimer returns a stat timer object for a path.
func (*Prometheus) GetTimerVec ¶ added in v0.25.0
func (p *Prometheus) GetTimerVec(path string, labelNames []string) StatTimerVec
GetTimerVec returns an editable timer stat for a given path with labels, these labels must be consistent with any other metrics registered on the same path.
func (*Prometheus) HandlerFunc ¶
func (p *Prometheus) HandlerFunc() http.HandlerFunc
HandlerFunc returns an http.HandlerFunc for scraping metrics.
func (*Prometheus) SetLogger ¶ added in v0.14.4
func (p *Prometheus) SetLogger(log log.Modular)
SetLogger does nothing.
type PrometheusConfig ¶
type PrometheusConfig struct { PushURL string `json:"push_url" yaml:"push_url"` PushInterval string `json:"push_interval" yaml:"push_interval"` PushJobName string `json:"push_job_name" yaml:"push_job_name"` }
PrometheusConfig is config for the Prometheus metrics type.
func NewPrometheusConfig ¶
func NewPrometheusConfig() PrometheusConfig
NewPrometheusConfig creates an PrometheusConfig struct with default values.
type Rename ¶ added in v1.7.0
type Rename struct {
// contains filtered or unexported fields
}
Rename is a statistics object that wraps a separate statistics object and only permits statistics that pass through the whitelist to be recorded.
func (*Rename) Close ¶ added in v1.7.0
Close stops the Statsd object from aggregating metrics and cleans up resources.
func (*Rename) GetCounter ¶ added in v1.7.0
func (r *Rename) GetCounter(path string) StatCounter
GetCounter returns a stat counter object for a path.
func (*Rename) GetCounterVec ¶ added in v1.7.0
func (r *Rename) GetCounterVec(path string, n []string) StatCounterVec
GetCounterVec returns a stat counter object for a path with the labels discarded.
func (*Rename) GetGaugeVec ¶ added in v1.7.0
func (r *Rename) GetGaugeVec(path string, n []string) StatGaugeVec
GetGaugeVec returns a stat timer object for a path with the labels discarded.
func (*Rename) GetTimerVec ¶ added in v1.7.0
func (r *Rename) GetTimerVec(path string, n []string) StatTimerVec
GetTimerVec returns a stat timer object for a path with the labels discarded.
func (*Rename) HandlerFunc ¶ added in v1.7.0
func (r *Rename) HandlerFunc() http.HandlerFunc
HandlerFunc returns an http.HandlerFunc for accessing metrics for appropriate child types
type RenameByRegexpConfig ¶ added in v1.7.0
type RenameByRegexpConfig struct { Pattern string `json:"pattern" yaml:"pattern"` Value string `json:"value" yaml:"value"` }
RenameByRegexpConfig contains config fields for a rename by regular expression pattern.
type RenameConfig ¶ added in v1.7.0
type RenameConfig struct { ByRegexp []RenameByRegexpConfig `json:"by_regexp" yaml:"by_regexp"` Child *Config `json:"child" yaml:"child"` }
RenameConfig contains config fields for the Rename metric type.
func NewRenameConfig ¶ added in v1.7.0
func NewRenameConfig() RenameConfig
NewRenameConfig returns a RenameConfig with default values.
func (RenameConfig) MarshalJSON ¶ added in v1.7.0
func (w RenameConfig) MarshalJSON() ([]byte, error)
MarshalJSON prints an empty object instead of nil.
func (RenameConfig) MarshalYAML ¶ added in v1.7.0
func (w RenameConfig) MarshalYAML() (interface{}, error)
MarshalYAML prints an empty object instead of nil.
type StatCounter ¶
StatCounter is a representation of a single counter metric stat. Interactions with this stat are thread safe.
type StatCounterVec ¶ added in v0.25.0
type StatCounterVec interface { // With returns a StatCounter with a set of label values. With(labelValues ...string) StatCounter }
StatCounterVec creates StatCounters with dynamic labels.
type StatGauge ¶
type StatGauge interface { // Set sets the value of a gauge metric. Set(value int64) error // Incr increments a gauge by an amount. Incr(count int64) error // Decr decrements a gauge by an amount. Decr(count int64) error }
StatGauge is a representation of a single gauge metric stat. Interactions with this stat are thread safe.
type StatGaugeVec ¶ added in v0.25.0
type StatGaugeVec interface { // With returns a StatGauge with a set of label values. With(labelValues ...string) StatGauge }
StatGaugeVec creates StatGauges with dynamic labels.
type StatTimer ¶
StatTimer is a representation of a single timer metric stat. Interactions with this stat are thread safe.
type StatTimerVec ¶ added in v0.25.0
type StatTimerVec interface { // With returns a StatTimer with a set of label values. With(labelValues ...string) StatTimer }
StatTimerVec creates StatTimers with dynamic labels.
type Statsd ¶
type Statsd struct {
// contains filtered or unexported fields
}
Statsd is a stats object with capability to hold internal stats as a JSON endpoint.
func (*Statsd) Close ¶
Close stops the Statsd object from aggregating metrics and cleans up resources.
func (*Statsd) GetCounter ¶
func (h *Statsd) GetCounter(path string) StatCounter
GetCounter returns a stat counter object for a path.
func (*Statsd) GetCounterVec ¶ added in v0.25.0
func (h *Statsd) GetCounterVec(path string, n []string) StatCounterVec
GetCounterVec returns a stat counter object for a path with the labels discarded.
func (*Statsd) GetGaugeVec ¶ added in v0.25.0
func (h *Statsd) GetGaugeVec(path string, n []string) StatGaugeVec
GetGaugeVec returns a stat timer object for a path with the labels discarded.
func (*Statsd) GetTimerVec ¶ added in v0.25.0
func (h *Statsd) GetTimerVec(path string, n []string) StatTimerVec
GetTimerVec returns a stat timer object for a path with the labels discarded.
type StatsdConfig ¶
type StatsdConfig struct { Address string `json:"address" yaml:"address"` FlushPeriod string `json:"flush_period" yaml:"flush_period"` Network string `json:"network" yaml:"network"` }
StatsdConfig is config for the Statsd metrics type.
func NewStatsdConfig ¶
func NewStatsdConfig() StatsdConfig
NewStatsdConfig creates an StatsdConfig struct with default values.
type StatsdStat ¶
type StatsdStat struct {
// contains filtered or unexported fields
}
StatsdStat is a representation of a single metric stat. Interactions with this stat are thread safe.
func (*StatsdStat) Decr ¶
func (s *StatsdStat) Decr(count int64) error
Decr decrements a metric by an amount.
func (*StatsdStat) Incr ¶
func (s *StatsdStat) Incr(count int64) error
Incr increments a metric by an amount.
func (*StatsdStat) Set ¶ added in v0.23.11
func (s *StatsdStat) Set(value int64) error
Set sets a gauge metric.
func (*StatsdStat) Timing ¶
func (s *StatsdStat) Timing(delta int64) error
Timing sets a timing metric.
type Type ¶
type Type interface { // GetCounter returns an editable counter stat for a given path. GetCounter(path string) StatCounter // GetCounterVec returns an editable counter stat for a given path with // labels, these labels must be consistent with any other metrics registered // on the same path. GetCounterVec(path string, labelNames []string) StatCounterVec // GetTimer returns an editable timer stat for a given path. GetTimer(path string) StatTimer // GetTimerVec returns an editable timer stat for a given path with labels, // these labels must be consistent with any other metrics registered on the // same path. GetTimerVec(path string, labelNames []string) StatTimerVec // GetGauge returns an editable gauge stat for a given path. GetGauge(path string) StatGauge // GetGaugeVec returns an editable gauge stat for a given path with labels, // these labels must be consistent with any other metrics registered on the // same path. GetGaugeVec(path string, labelNames []string) StatGaugeVec // SetLogger sets the logging mechanism of the metrics type. SetLogger(log log.Modular) // Close stops aggregating stats and cleans up resources. Close() error }
Type is an interface for metrics aggregation.
func Combine ¶ added in v0.15.3
Combine returns a Type implementation that feeds metrics into two underlying Type implementations.
func Namespaced ¶
Namespaced embeds an existing metrics aggregator under a new namespace. The prefix of the embedded aggregator is still the ultimate prefix of metrics.
func NewBlacklist ¶ added in v1.6.0
NewBlacklist creates and returns a new Blacklist object
func NewPrometheus ¶
NewPrometheus creates and returns a new Prometheus object.
func NewWhitelist ¶ added in v1.6.0
NewWhitelist creates and returns a new Whitelist object
type TypeSpec ¶ added in v1.6.0
type TypeSpec struct {
// contains filtered or unexported fields
}
TypeSpec is a constructor and a usage description for each metric output type.
type Whitelist ¶ added in v1.6.0
type Whitelist struct {
// contains filtered or unexported fields
}
Whitelist is a statistics object that wraps a separate statistics object and only permits statistics that pass through the whitelist to be recorded.
func (*Whitelist) Close ¶ added in v1.6.0
Close stops the Statsd object from aggregating metrics and cleans up resources.
func (*Whitelist) GetCounter ¶ added in v1.6.0
func (h *Whitelist) GetCounter(path string) StatCounter
GetCounter returns a stat counter object for a path.
func (*Whitelist) GetCounterVec ¶ added in v1.6.0
func (h *Whitelist) GetCounterVec(path string, n []string) StatCounterVec
GetCounterVec returns a stat counter object for a path with the labels discarded.
func (*Whitelist) GetGaugeVec ¶ added in v1.6.0
func (h *Whitelist) GetGaugeVec(path string, n []string) StatGaugeVec
GetGaugeVec returns a stat timer object for a path with the labels discarded.
func (*Whitelist) GetTimerVec ¶ added in v1.6.0
func (h *Whitelist) GetTimerVec(path string, n []string) StatTimerVec
GetTimerVec returns a stat timer object for a path with the labels discarded.
func (*Whitelist) HandlerFunc ¶ added in v1.6.0
func (h *Whitelist) HandlerFunc() http.HandlerFunc
HandlerFunc returns an http.HandlerFunc for accessing metrics for appropriate child types
type WhitelistConfig ¶ added in v1.6.0
type WhitelistConfig struct { Paths []string `json:"paths" yaml:"paths"` Patterns []string `json:"patterns" yaml:"patterns"` Child *Config `json:"child" yaml:"child"` }
WhitelistConfig allows for the placement of filtering rules to only allow select metrics to be displayed or retrieved. It consists of a set of prefixes (direct string comparison) that are checked, and a standard metrics configuration that is wrapped by the whitelist.
func NewWhitelistConfig ¶ added in v1.6.0
func NewWhitelistConfig() WhitelistConfig
NewWhitelistConfig returns the default configuration for a whitelist
func (WhitelistConfig) MarshalJSON ¶ added in v1.6.0
func (w WhitelistConfig) MarshalJSON() ([]byte, error)
MarshalJSON prints an empty object instead of nil.
func (WhitelistConfig) MarshalYAML ¶ added in v1.6.0
func (w WhitelistConfig) MarshalYAML() (interface{}, error)
MarshalYAML prints an empty object instead of nil.
type WithHandlerFunc ¶
type WithHandlerFunc interface {
HandlerFunc() http.HandlerFunc
}
WithHandlerFunc is an interface for metrics types that can expose their metrics through an HTTP HandlerFunc endpoint. If a Type can be cast into WithHandlerFunc then you should register its endpoint to the an HTTP server.