Documentation ¶
Index ¶
- type AvgMetrics
- func (m *AvgMetrics) Collect(ch chan<- prometheus.Metric)
- func (m *AvgMetrics) Describe(ch chan<- *prometheus.Desc)
- func (m *AvgMetrics) GetRequestCountMetric(method, path string, statusCode int) prometheus.Counter
- func (m *AvgMetrics) GetRequestDurationMetric(method, path string) prometheus.Observer
- type Handler
- type Metrics
- type Option
- type SLOMetrics
- func (m *SLOMetrics) Collect(ch chan<- prometheus.Metric)
- func (m *SLOMetrics) Describe(ch chan<- *prometheus.Desc)
- func (m *SLOMetrics) GetRequestCountMetric(method, path string, statusCode int) prometheus.Counter
- func (m *SLOMetrics) GetRequestDurationMetric(method, path string) prometheus.Observer
- type Server
- type WithHandlers
- type WithMetrics
- type WithPort
- type WithPrometheus
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AvgMetrics ¶ added in v0.4.0
type AvgMetrics struct {
// contains filtered or unexported fields
}
AvgMetrics uses a Summary to record request duration metrics. Use this if you are only interested in the average time to service requests.
func (*AvgMetrics) Collect ¶ added in v0.5.0
func (m *AvgMetrics) Collect(ch chan<- prometheus.Metric)
func (*AvgMetrics) Describe ¶ added in v0.5.0
func (m *AvgMetrics) Describe(ch chan<- *prometheus.Desc)
func (*AvgMetrics) GetRequestCountMetric ¶ added in v0.4.0
func (m *AvgMetrics) GetRequestCountMetric(method, path string, statusCode int) prometheus.Counter
GetRequestCountMetric returns the Counter to record request count
func (*AvgMetrics) GetRequestDurationMetric ¶ added in v0.4.0
func (m *AvgMetrics) GetRequestDurationMetric(method, path string) prometheus.Observer
GetRequestDurationMetric returns the Observer to record request duration
type Handler ¶
type Handler struct { // Path of the endpoint (e.g. "/health"). Can be any path that's valid for gorilla/mux router's Path(). Path string // Handler that implements the endpoint Handler http.Handler // Methods that the handler should support. If empty, defaults to http.MethodGet Methods []string }
Handler contains an endpoint to be registered in the Server's HTTP server
type Metrics ¶
type Metrics interface { GetRequestDurationMetric(method, path string) prometheus.Observer GetRequestCountMetric(method, path string, statusCode int) prometheus.Counter prometheus.Collector }
Metrics interface contains the methods httpserver's middleware expects to record performance metrics
func NewAvgMetrics ¶ added in v0.4.0
NewAvgMetrics creates a new AvgMetrics.
func NewSLOMetrics ¶ added in v0.4.0
NewSLOMetrics creates a new SLOMetrics, where latency is measured using a histogram with the provided list of buckets. If the list is empty, NewSLOMetrics will use prometheus.DefBuckets.
type Option ¶ added in v0.3.0
type Option interface {
// contains filtered or unexported methods
}
Option specified configuration options for Server
type SLOMetrics ¶ added in v0.4.0
type SLOMetrics struct {
// contains filtered or unexported fields
}
SLOMetrics uses a histogram to record request duration metrics. Use this to measure an SLO (e.g. 95% of all requests must be serviced below x seconds). SLOMetrics uses Prometheus' default buckets.
func (*SLOMetrics) Collect ¶ added in v0.5.0
func (m *SLOMetrics) Collect(ch chan<- prometheus.Metric)
func (*SLOMetrics) Describe ¶ added in v0.5.0
func (m *SLOMetrics) Describe(ch chan<- *prometheus.Desc)
func (*SLOMetrics) GetRequestCountMetric ¶ added in v0.4.0
func (m *SLOMetrics) GetRequestCountMetric(method, path string, statusCode int) prometheus.Counter
GetRequestCountMetric returns the Counter to record request count
func (*SLOMetrics) GetRequestDurationMetric ¶ added in v0.4.0
func (m *SLOMetrics) GetRequestDurationMetric(method, path string) prometheus.Observer
GetRequestDurationMetric returns the Observer to record request duration
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server implements a configurable HTTP Server. See the different WithXXX structs for available options.
type WithHandlers ¶ added in v0.3.0
type WithHandlers struct {
Handlers []Handler
}
WithHandlers adds the specified handlers to the server
type WithMetrics ¶ added in v0.3.0
type WithMetrics struct {
Metrics Metrics
}
WithMetrics will collect the specified metrics to instrument the Server's Handlers.
type WithPort ¶ added in v0.3.0
type WithPort struct {
Port int
}
WithPort specifies the Server's listening port. If no port is specified, Server will listen on a random port. Use GetPort() to determine the actual listening port
type WithPrometheus ¶ added in v0.3.0
type WithPrometheus struct {
Path string
}
WithPrometheus adds a Prometheus metrics endpoint to the server at the specified Path. Default path is "/metrics"