Documentation
¶
Overview ¶
Package middleware will measure metrics of different http handler types using a `metrics.Recorder`.
The metrics measured are based on RED and/or Four golden signals.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// Recorder is the way the metrics will be recorder in the different backends.
Recorder metrics.Recorder
// Service is an optional identifier for the metrics, this can be useful if
// a same service has multiple servers (e.g API, metrics and healthchecks).
Service string
// GroupedStatus will group the status label in the form of `\dxx`, for example,
// 200, 201, and 203 will have the label `code="2xx"`. This impacts on the cardinality
// of the metrics and also improves the performance of queries that are grouped by
// status code because there are already aggregated in the metric.
// By default will be false.
GroupedStatus bool
// DisableMeasureSize will disable the recording metrics about the response size,
// by default measuring size is enabled (`DisableMeasureSize` is false).
DisableMeasureSize bool
// DisableMeasureInflight will disable the recording metrics about the inflight requests number,
// by default measuring inflights is enabled (`DisableMeasureInflight` is false).
DisableMeasureInflight bool
// IgnoredPaths is a list of paths that will not be measured for the request duration
// and the response size. They will still be counted in the RequestsInflight metric.
IgnoredPaths []string
}
Config is the configuration for the middleware factory.
type Middleware ¶
type Middleware struct {
// contains filtered or unexported fields
}
Middleware is a service that knows how to measure an HTTP handler by wrapping another handler.
Depending on the framework/library we want to measure, this can change a lot, to abstract the way how we measure on the different libraries, Middleware will receive a `Reporter` that knows how to get the data the Middleware service needs to measure.
func (Middleware) Measure ¶ added in v0.7.0
func (m Middleware) Measure(handlerID string, reporter Reporter, next func())
Measure abstracts the HTTP handler implementation by only requesting a reporter, this reporter will return the required data to be measured. it accepts a next function that will be called as the wrapped logic before and after measurement actions.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package echo is a helper package to get an echo compatible middleware
|
Package echo is a helper package to get an echo compatible middleware |
|
Package fasthttp is a helper package to get a fasthttp compatible middleware.
|
Package fasthttp is a helper package to get a fasthttp compatible middleware. |
|
Package gin is a helper package to get a gin compatible middleware.
|
Package gin is a helper package to get a gin compatible middleware. |
|
Package goji is a helper package to get a goji compatible middleware.
|
Package goji is a helper package to get a goji compatible middleware. |
|
Package gorestful is a helper package to get a gorestful compatible middleware.
|
Package gorestful is a helper package to get a gorestful compatible middleware. |
|
Package httprouter is a helper package to get a httprouter compatible middleware.
|
Package httprouter is a helper package to get a httprouter compatible middleware. |
|
Package iris is a helper package to get an Iris compatible middleware.
|
Package iris is a helper package to get an Iris compatible middleware. |
|
Package negroni is a helper package to get a negroni compatible middleware.
|
Package negroni is a helper package to get a negroni compatible middleware. |
|
Package std is a helper package to get a standard `http.Handler` compatible middleware.
|
Package std is a helper package to get a standard `http.Handler` compatible middleware. |