metrics

package
v1.12.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 8, 2023 License: Apache-2.0 Imports: 3 Imported by: 20

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetStatusString

func GetStatusString(status bool) string

GetStatusString returns a classification string (success / failure) based on the input boolean

func InitNopMetricsCollector

func InitNopMetricsCollector() error

func InitPrometheusMetricsCollector

func InitPrometheusMetricsCollector(
	gaugeMap map[MetricName]PrometheusGaugeVec,
	histogramMap map[MetricName]PrometheusHistogramVec,
	counterMap map[MetricName]PrometheusCounterVec,
) error

InitPrometheusMetricsCollector initializes the collectors for all metrics defined for the app and registers them with the DefaultRegisterer.

func SetGlobMetricsCollector

func SetGlobMetricsCollector(c Collector)

SetGlobMetricsCollector is used to update the global metrics collector instance with the input

Types

type Collector

type Collector interface {
	MeasureDurationMsSince(key MetricName, starttime time.Time, labels map[string]string) error
	// MeasureDurationMs is a deferrable version of MeasureDurationMsSince which evaluates labels
	// at the time of logging
	MeasureDurationMs(key MetricName, labels map[string]func() string) func()
	RecordGauge(key MetricName, value float64, labels map[string]string) error
	Inc(key MetricName, labels map[string]string) error
}

Collector defines the common interface for all metrics collection engines

func Glob

func Glob() Collector

Glob returns the global metrics collector

type MetricName

type MetricName string

MetricName is a type used to define the names of the various metrics collected in the App.

type NopMetricsCollector

type NopMetricsCollector struct {
}

NopMetricsCollector implements the Collector interface with a set of Nop methods

func (NopMetricsCollector) Inc

func (c NopMetricsCollector) Inc(key MetricName, labels map[string]string) error

Inc satisfies the Collector interface

func (NopMetricsCollector) MeasureDurationMs

func (NopMetricsCollector) MeasureDurationMs(MetricName, map[string]func() string) func()

MeasureDurationMs satisfies the Collector interface

func (NopMetricsCollector) MeasureDurationMsSince

func (NopMetricsCollector) MeasureDurationMsSince(MetricName, time.Time, map[string]string) error

MeasureDurationMsSince satisfies the Collector interface

func (NopMetricsCollector) RecordGauge

RecordGauge satisfies the Collector interface

type PrometheusClient

type PrometheusClient struct {
	// contains filtered or unexported fields
}

PrometheusClient satisfies the Collector interface

func (PrometheusClient) Inc

func (p PrometheusClient) Inc(key MetricName, labels map[string]string) error

func (PrometheusClient) MeasureDurationMs

func (p PrometheusClient) MeasureDurationMs(
	key MetricName,
	labelValueGetters map[string]func() string,
) func()

MeasureDurationMs takes in the Metric name and a map of labels and functions to obtain the label values - this allows for MeasureDurationMs to be deferred and do a delayed evaluation of the labels. It returns a function which, when executed, will log the duration in ms since MeasureDurationMs was called. If errors occur in accessing the metric or associating the labels, they will simply be logged.

func (PrometheusClient) MeasureDurationMsSince

func (p PrometheusClient) MeasureDurationMsSince(
	key MetricName,
	starttime time.Time,
	labels map[string]string,
) error

MeasureDurationMsSince takes in the Metric name, the start time and a map of labels and values to be associated to the metric. Error will be thrown if errors occur in accessing the metric or associating the labels.

func (PrometheusClient) RecordGauge

func (p PrometheusClient) RecordGauge(
	key MetricName,
	value float64,
	labels map[string]string,
) error

RecordGauge takes in the Metric name, the count and a map of labels and values to be associated to the metric. Error will be thrown if errors occur in accessing the metric or associating the labels.

func (PrometheusClient) RegisterMetrics

func (p PrometheusClient) RegisterMetrics(
	gaugeMap map[MetricName]PrometheusGaugeVec,
	histogramMap map[MetricName]PrometheusHistogramVec,
	counterMap map[MetricName]PrometheusCounterVec,
) error

type PrometheusCounterVec

type PrometheusCounterVec interface {
	GetMetricWith(prometheus.Labels) (prometheus.Counter, error)
	prometheus.Collector
}

PrometheusCounterVec is an interface that captures the methods from the Prometheus CounterVec type that are used in the app. This is added for unit testing.

type PrometheusGaugeVec

type PrometheusGaugeVec interface {
	GetMetricWith(prometheus.Labels) (prometheus.Gauge, error)
	prometheus.Collector
}

PrometheusGaugeVec is an interface that captures the methods from the Prometheus GaugeVec type that are used in the app. This is added for unit testing.

type PrometheusHistogramVec

type PrometheusHistogramVec interface {
	GetMetricWith(prometheus.Labels) (prometheus.Observer, error)
	prometheus.Collector
}

PrometheusHistogramVec is an interface that captures the methods from the the Prometheus HistogramVec type that are used in the app. This is added for unit testing.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL