Documentation
¶
Index ¶
Constants ¶
const ( // DefaultSeparator is the default separator that should be used with // a tally scope for a prometheus reporter. DefaultSeparator = "_" )
Variables ¶
var ( // DefaultSanitizerOpts are the options for the default Prometheus sanitizer. DefaultSanitizerOpts = tally.SanitizeOptions{ NameCharacters: tally.ValidCharacters{ Ranges: tally.AlphanumericRange, Characters: tally.UnderscoreCharacters, }, KeyCharacters: tally.ValidCharacters{ Ranges: tally.AlphanumericRange, Characters: tally.UnderscoreCharacters, }, ValueCharacters: tally.ValidCharacters{ Ranges: tally.AlphanumericRange, Characters: tally.UnderscoreCharacters, }, ReplacementCharacter: tally.DefaultReplacementCharacter, } )
Functions ¶
func DefaultHistogramBuckets ¶ added in v1.1.0
func DefaultHistogramBuckets() []float64
DefaultHistogramBuckets is the default histogram buckets used when creating a new Histogram in the prometheus registry. See: https://godoc.org/github.com/prometheus/client_golang/prometheus#HistogramOpts
func DefaultSummaryObjectives ¶ added in v1.1.0
DefaultSummaryObjectives is the default objectives used when creating a new Summary in the prometheus registry. See: https://godoc.org/github.com/prometheus/client_golang/prometheus#SummaryOpts
Types ¶
type Configuration ¶
type Configuration struct {
// HandlerPath if specified will be used instead of using the default
// HTTP handler path "/metrics".
HandlerPath string `yaml:"handlerPath"`
// ListenNetwork if specified will be used instead of using tcp network.
// Supported networks: tcp, tcp4, tcp6 and unix.
ListenNetwork string `yaml:"listenNetwork"`
// ListenAddress if specified will be used instead of just registering the
// handler on the default HTTP serve mux without listening.
ListenAddress string `yaml:"listenAddress"`
// TimerType is the default Prometheus type to use for Tally timers.
TimerType string `yaml:"timerType"`
// DefaultHistogramBuckets if specified will set the default histogram
// buckets to be used by the reporter.
DefaultHistogramBuckets []HistogramObjective `yaml:"defaultHistogramBuckets"`
// DefaultSummaryObjectives if specified will set the default summary
// objectives to be used by the reporter.
DefaultSummaryObjectives []SummaryObjective `yaml:"defaultSummaryObjectives"`
// OnError specifies what to do when an error either with listening
// on the specified listen address or registering a metric with the
// Prometheus. By default the registerer will panic.
OnError string `yaml:"onError"`
}
Configuration is a configuration for a Prometheus reporter.
func (Configuration) NewReporter ¶
func (c Configuration) NewReporter( configOpts ConfigurationOptions, ) (Reporter, error)
NewReporter creates a new M3 reporter from this configuration.
type ConfigurationOptions ¶
type ConfigurationOptions struct {
// Registry if not nil will specify the specific registry to use
// for registering metrics.
Registry *prom.Registry
// OnError allows for customization of what to do when a metric
// registration error fails, the default is to panic.
OnError func(e error)
}
ConfigurationOptions allows some programatic options, such as using a specific registry and what error callback to register.
type HistogramObjective ¶
type HistogramObjective struct {
Upper float64 `yaml:"upper"`
}
HistogramObjective is a Prometheus histogram bucket. See: https://godoc.org/github.com/prometheus/client_golang/prometheus#HistogramOpts
type Options ¶ added in v1.1.0
type Options struct {
// Registerer is the prometheus registerer to register
// metrics with. Use nil to specify the default registerer.
Registerer prom.Registerer
// Gatherer is the prometheus gatherer to gather
// metrics with. Use nil to specify the default gatherer.
Gatherer prom.Gatherer
// DefaultTimerType is the default type timer type to create
// when using timers. It's default value is a summary timer type.
DefaultTimerType TimerType
// DefaultHistogramBuckets is the default histogram buckets
// to use. Use nil to specify the default histogram buckets.
DefaultHistogramBuckets []float64
// DefaultSummaryObjectives is the default summary objectives
// to use. Use nil to specify the default summary objectives.
DefaultSummaryObjectives map[float64]float64
// OnRegisterError defines a method to call to when registering
// a metric with the registerer fails. Use nil to specify
// to panic by default when registering fails.
OnRegisterError func(err error)
}
Options is a set of options for the tally reporter.
type RegisterTimerOptions ¶ added in v1.1.0
type RegisterTimerOptions struct {
TimerType TimerType
HistogramBuckets []float64
SummaryObjectives map[float64]float64
}
RegisterTimerOptions provides options when registering a timer on demand. By default you can pass nil for the options to get the reporter defaults.
type Reporter ¶
type Reporter interface {
tally.CachedStatsReporter
// HTTPHandler provides the Prometheus HTTP scrape handler.
HTTPHandler() http.Handler
// RegisterCounter is a helper method to initialize a counter
// in the Prometheus backend with a given help text.
// If not called explicitly, the Reporter will create one for
// you on first use, with a not super helpful HELP string.
RegisterCounter(
name string,
tagKeys []string,
desc string,
) (*prom.CounterVec, error)
// RegisterGauge is a helper method to initialize a gauge
// in the prometheus backend with a given help text.
// If not called explicitly, the Reporter will create one for
// you on first use, with a not super helpful HELP string.
RegisterGauge(
name string,
tagKeys []string,
desc string,
) (*prom.GaugeVec, error)
// RegisterTimer is a helper method to initialize a timer
// summary or histogram vector in the prometheus backend
// with a given help text.
// If not called explicitly, the Reporter will create one for
// you on first use, with a not super helpful HELP string.
// You may pass opts as nil to get the default timer type
// and objectives/buckets.
// You may also pass objectives/buckets as nil in opts to
// get the default objectives/buckets for the specified
// timer type.
RegisterTimer(
name string,
tagKeys []string,
desc string,
opts *RegisterTimerOptions,
) (TimerUnion, error)
}
Reporter is a Prometheus backed tally reporter.
func NewReporter ¶
NewReporter returns a new Reporter for Prometheus client backed metrics objectives is the objectives used when creating a new Summary histogram for Timers. See https://godoc.org/github.com/prometheus/client_golang/prometheus#SummaryOpts for more details.
type SummaryObjective ¶
type SummaryObjective struct {
Percentile float64 `yaml:"percentile"`
AllowedError float64 `yaml:"allowedError"`
}
SummaryObjective is a Prometheus summary objective. See: https://godoc.org/github.com/prometheus/client_golang/prometheus#SummaryOpts
type TimerUnion ¶ added in v1.1.0
type TimerUnion struct {
TimerType TimerType
Histogram *prom.HistogramVec
Summary *prom.SummaryVec
}
TimerUnion is a representation of either a summary or a histogram described by the TimerType.