metrics

package
v2.0.1 Latest Latest
Warning

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

Go to latest
Published: Feb 2, 2026 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package metrics provides metrics utilities.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func PrometheusHandler

func PrometheusHandler() http.Handler

PrometheusHandler returns a standard /metrics http.Handler if the Prometheus client is linked; otherwise returns http.NotFoundHandler. This indirection avoids hard dependency on the Prometheus client.

Types

type Labels

type Labels map[string]string

Labels is a simple key:value map for metric dimensions.

type MetricsRecorder

type MetricsRecorder interface {
	IncCounter(name string, labels Labels)
	ObserveHistogram(name string, value float64, labels Labels)
}

MetricsRecorder captures counters and histograms.

type Middleware

type Middleware struct {
	M     MetricsRecorder
	Clock ports.Clock
}

Middleware instruments HTTP traffic using a provided recorder.

func New

func New(opts Options) (*Middleware, error)

New constructs a metrics middleware.

func (*Middleware) Handler

func (mw *Middleware) Handler(next http.Handler) http.Handler

Handler wraps the next handler to record counters and duration.

func (*Middleware) HandlerFunc

func (mw *Middleware) HandlerFunc() func(http.Handler) http.Handler

HandlerFunc exposes middleware as a plain function for router use.

func (*Middleware) Middleware

func (mw *Middleware) Middleware() func(http.Handler) http.Handler

Middleware implements ports.Middleware by returning Handler.

type NoopMetrics

type NoopMetrics struct{}

NoopMetrics is the default. Swap later for Prometheus, etc.

func (NoopMetrics) IncCounter

func (NoopMetrics) IncCounter(_ string, _ Labels)

IncCounter is a no-op implementation.

func (NoopMetrics) ObserveHistogram

func (NoopMetrics) ObserveHistogram(_ string, _ float64, _ Labels)

ObserveHistogram is a no-op implementation.

type Options

type Options struct {
	Recorder MetricsRecorder
	Clock    ports.Clock
}

Options configures the metrics middleware.

type PrometheusRecorder

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

PrometheusRecorder implements MetricsRecorder using Prometheus client. This is a minimal adapter; applications can supply their own recorder.

func NewPrometheusRecorder

func NewPrometheusRecorder(registerer prometheus.Registerer, buckets []float64) *PrometheusRecorder

NewPrometheusRecorder wires counters and histograms with standard names. Consumers may pass a custom registerer (e.g. for testing). When nil, the default Prometheus registerer is used.

func (*PrometheusRecorder) IncCounter

func (p *PrometheusRecorder) IncCounter(_ string, labels Labels)

IncCounter increments the Prometheus counter.

func (*PrometheusRecorder) ObserveHistogram

func (p *PrometheusRecorder) ObserveHistogram(_ string, value float64, labels Labels)

ObserveHistogram records the Prometheus histogram observation.

Jump to

Keyboard shortcuts

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