tally: github.com/uber-go/tally/prometheus Index | Files | Directories

package prometheus

import "github.com/uber-go/tally/prometheus"

Index

Package Files

config.go reporter.go sanitize.go

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,
    }
)

func DefaultHistogramBuckets Uses

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 Uses

func DefaultSummaryObjectives() map[float64]float64

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

type Configuration Uses

type Configuration struct {
    // HandlerPath if specified will be used instead of using the default
    // HTTP handler path "/metrics".
    HandlerPath string `yaml:"handlerPath"`

    // 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 Uses

func (c Configuration) NewReporter(
    configOpts ConfigurationOptions,
) (Reporter, error)

NewReporter creates a new M3 reporter from this configuration.

type ConfigurationOptions Uses

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 Uses

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 Uses

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 Uses

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 Uses

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 Uses

func NewReporter(opts Options) Reporter

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 Uses

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 TimerType Uses

type TimerType int

TimerType describes a type of timer

const (
    // SummaryTimerType is a timer type that reports into a summary
    SummaryTimerType TimerType = iota

    // HistogramTimerType is a timer type that reports into a histogram
    HistogramTimerType
)

type TimerUnion Uses

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.

Directories

PathSynopsis
example

Package prometheus imports 11 packages (graph) and is imported by 11 packages. Updated 2019-05-23. Refresh now. Tools for package owners.