Back to godoc.org
github.com/juju/juju / apiserver / observer / metricobserver

Package metricobserver

v0.0.0-...-90199a1
Latest Go to latest

The latest major version is .

Published: today | License: AGPL-3.0 | Module: github.com/juju/juju

Overview

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

Index

Constants

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

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

Variables

var MetricLabelNames = []string{
	MetricLabelFacade,
	MetricLabelVersion,
	MetricLabelMethod,
	MetricLabelErrorCode,
}

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 github.com/golang/mock/mockgen -package mocks -destination mocks/metrics_collector_mock.go github.com/juju/juju/apiserver/observer/metricobserver MetricsCollector,SummaryVec go:generate go run github.com/golang/mock/mockgen -package mocks -destination mocks/metrics_mock.go github.com/prometheus/client_golang/prometheus 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