import "github.com/Jeffail/leaps/lib/util/service/metrics"
Package metrics - Create a type for aggregating and propagating metrics to various services based on configuration. Use it like this:
“` go conf := metrics.NewConfig() conf.Type = "http_server"
met, err := metrics.New(conf) if err != nil {
panic(err)
}
met.Incr("path.to.metric", 1) “`
constructor.go dud_type.go http.go interface.go package.go riemann.go statsd.go
Errors for the metrics package.
Errors for the HTTP type.
Descriptions - Returns a formatted string of collated descriptions of each type.
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 - The all encompassing configuration struct for all metric output types.
NewConfig - Returns a configuration struct fully populated with default values.
type DudType struct{}
DudType - Implements the Type interface but doesn't actual do anything.
Close - Does nothing.
Decr - Does nothing.
Gauge - Does nothing.
Incr - Does nothing.
Timing - Does nothing.
HTTP - A stats object with capability to hold internal stats as a JSON endpoint.
Close - Stops the HTTP object from aggregating metrics and cleans up resources.
Decr - Decrement a stat by a value.
Gauge - Set a stat as a gauge value.
Incr - Increment a stat by a value.
func (h *HTTP) JSONHandler() http.HandlerFunc
JSONHandler - Returns a handler for accessing metrics as a JSON blob.
Timing - Set a stat representing a duration.
type HTTPConfig struct { Prefix string `json:"stats_prefix" yaml:"stats_prefix"` Address string `json:"address" yaml:"address"` Path string `json:"path" yaml:"path"` }
HTTPConfig - Config for the HTTP metrics type.
func NewHTTPConfig() HTTPConfig
NewHTTPConfig - Creates an HTTPConfig struct with default values.
type Riemann struct { sync.Mutex Client *raidman.Client // contains filtered or unexported fields }
Riemann - A Riemann client that supports the Type interface.
Close - Close the riemann client and stop batch uploading.
Decr - Decrement a stat by a value.
Gauge - Set a stat as a gauge value.
Incr - Increment a stat by a value.
Timing - Set a stat representing a duration.
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 - Configuration fields for a riemann service.
func NewRiemannConfig() RiemannConfig
NewRiemannConfig - Create a new riemann config with default values.
type Statsd struct {
// contains filtered or unexported fields
}
Statsd - A stats object with capability to hold internal stats as a JSON endpoint.
Close - Stops the Statsd object from aggregating metrics and cleans up resources.
Decr - Decrement a stat by a value.
Gauge - Set a stat as a gauge value.
Incr - Increment a stat by a value.
Timing - Set a stat representing a duration.
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 - Config for the Statsd metrics type.
func NewStatsdConfig() StatsdConfig
NewStatsdConfig - Creates an StatsdConfig struct with default values.
type Type interface { // Incr - Increment a metric by an amount. Incr(path string, count int64) error // Decr - Decrement a metric by an amount. Decr(path string, count int64) error // Timing - Set a timing metric. Timing(path string, delta int64) error // Gauge - Set a gauge metric. Gauge(path string, value int64) error // Close - Stop aggregating stats and clean up resources. Close() error }
Type - An interface for metrics aggregation.
New - Create a metric output type based on a configuration.
NewHTTP - Create and return a new HTTP object.
NewRiemann - Create a new riemann client.
NewStatsd - Create and return a new Statsd object.
Package metrics imports 12 packages (graph) and is imported by 3 packages. Updated 2018-02-20. Refresh now. Tools for package owners.