Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func PrometheusHandler ¶ added in v1.0.1
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 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
}
Middleware instruments HTTP traffic using a provided recorder.
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 ¶ added in v1.0.1
func (mw *Middleware) HandlerFunc() func(http.Handler) http.Handler
HandlerFunc exposes middleware as a plain function for router use.
func (*Middleware) Middleware ¶ added in v1.0.2
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)
func (NoopMetrics) ObserveHistogram ¶
func (NoopMetrics) ObserveHistogram(_ string, _ float64, _ Labels)
type PrometheusRecorder ¶ added in v1.0.1
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 ¶ added in v1.0.1
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 ¶ added in v1.0.1
func (p *PrometheusRecorder) IncCounter(_ string, labels Labels)
func (*PrometheusRecorder) ObserveHistogram ¶ added in v1.0.1
func (p *PrometheusRecorder) ObserveHistogram(_ string, value float64, labels Labels)