Back to / apiserver / observer / metricobserver

Package metricobserver

Latest Go to latest

The latest major version is .

Published: today | License: AGPL-3.0 | Module:


Package metricobserver provides an implementation of apiserver/observer.ObserverFactory that maintains Prometheus metrics.



const (
	MetricLabelFacade    = "facade"
	MetricLabelVersion   = "version"
	MetricLabelMethod    = "method"
	MetricLabelErrorCode = "error_code"

MetricLabels used for setting labels for the Counter and Summary vectors.


var MetricLabelNames = []string{

MetricLabelNames holds the names for reporting the names of the metric types when calling the observers.

func NewObserverFactory

func NewObserverFactory(config Config) (observer.ObserverFactory, error)

NewObserverFactory returns a function that, when called, returns a new Observer. NewObserverFactory registers the API request metrics, and each Observer updates those metrics.

type Config

type Config struct {
	// Clock is the clock to use for all time-related operations.
	Clock clock.Clock

	// MetricsCollector defines .
	MetricsCollector MetricsCollector

Config contains the configuration for an Observer.

func (Config) Validate

func (cfg Config) Validate() error

Validate validates the observer factory configuration.

type MetricsCollector

type MetricsCollector interface {
	// APIRequestDuration returns a SummaryVec for updating the duration of
	// api request duration.
	APIRequestDuration() SummaryVec

MetricsCollector represents a bundle of metrics that is used by the observer factory. go:generate go run -package mocks -destination mocks/metrics_collector_mock.go MetricsCollector,SummaryVec go:generate go run -package mocks -destination mocks/metrics_mock.go Summary

type Observer

type Observer struct {
	// contains filtered or unexported fields

Observer is an API server request observer that collects Prometheus metrics.

func (*Observer) Join

func (*Observer) Join(req *http.Request, connectionID uint64)

Join is part of the observer.Observer interface.

func (*Observer) Leave

func (*Observer) Leave()

Leave is part of the observer.Observer interface.

func (*Observer) Login

func (*Observer) Login(entity names.Tag, _ names.ModelTag, _ bool, _ string)

Login is part of the observer.Observer interface.

func (*Observer) RPCObserver

func (o *Observer) RPCObserver() rpc.Observer

RPCObserver is part of the observer.Observer interface.

type SummaryVec

type SummaryVec interface {
	// With returns a Summary for a given labels slice
	With(prometheus.Labels) prometheus.Observer

SummaryVec is a Collector that bundles a set of Summaries that all share the same description.

Package Files

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier