Documentation ¶
Overview ¶
Package metrics contains a type for aggregating and propagating metrics to various services based on configuration.
Index ¶
Constants ¶
This section is empty.
Variables ¶
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.
Types ¶
type Config ¶
type Config struct { Type string `json:"type" yaml:"type"` HTTP HTTPConfig `json:"http_server" yaml:"http_server"` Riemann RiemannConfig `json:"riemann" yaml:"riemann"` Statsd StatsdConfig `json:"statsd" yaml:"statsd"` }
Config is the all encompassing configuration struct for all metric output types.
type DudType ¶
type DudType struct{}
DudType implements the Type interface but doesn't actual do anything.
type HTTP ¶
HTTP is an object with capability to hold internal stats as a JSON endpoint.
func (*HTTP) JSONHandler ¶
func (h *HTTP) JSONHandler() http.HandlerFunc
JSONHandler returns a handler for accessing metrics as a JSON blob.
type HTTPConfig ¶
type HTTPConfig struct { Prefix string `json:"stats_prefix" yaml:"stats_prefix"` Address string `json:"address" yaml:"address"` Path string `json:"path" yaml:"path"` }
HTTPConfig contains config for the HTTP metrics type.
func NewHTTPConfig ¶
func NewHTTPConfig() HTTPConfig
NewHTTPConfig creates an HTTPConfig struct with default values.
type Riemann ¶
Riemann is a Riemann client that supports the Type interface.
type RiemannConfig ¶
type RiemannConfig struct { Server string `json:"server" yaml:"server"` TTL float32 `json:"ttl" yaml:"ttl"` Tags []string `json:"tags" yaml:"tags"` FlushInterval string `json:"flush_interval" yaml:"flush_interval"` Prefix string `json:"prefix" yaml:"prefix"` }
RiemannConfig contains configuration fields for a riemann service.
func NewRiemannConfig ¶
func NewRiemannConfig() RiemannConfig
NewRiemannConfig creates a new riemann config with default values.
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.
type StatsdConfig ¶
type StatsdConfig struct { Address string `json:"address" yaml:"address"` FlushPeriod string `json:"flush_period" yaml:"flush_period"` MaxPacketSize int `json:"max_packet_size" yaml:"max_packet_size"` Network string `json:"network" yaml:"network"` Prefix string `json:"prefix" yaml:"prefix"` }
StatsdConfig is config for the Statsd metrics type.
func NewStatsdConfig ¶
func NewStatsdConfig() StatsdConfig
NewStatsdConfig creates an StatsdConfig struct with default values.
type Type ¶
type Type interface { // 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 clean up resources. Close() error }
Type is an interface for metrics aggregation.
func NewRiemann ¶
NewRiemann creates a new riemann client.