v0.13.53
Changes
Allow to reduce per Host and Route metrics domains (#1755)
The number of metrics for latency per host and per route include the
HTTP response status code and the HTTP method as dimensions. It
generated flexible metrics, allowing queries rich in details, like: "the
P99 of GET requests to the route abc that resulted in a 503", but, also,
generates a lot of metrics not always used.
For example, imagine a 32 long histogram metric bucket, a cluster with
30 hosts, 4 different reported status code and 3 different reported
methods. It might generate 11520 different metrics (32304*3).
This commit adds the flags -serve-method-metric and
-serve-status-code-metric. It allow the disablement of the method
and/or status code labels from metrics. It implements the logic to
remove it from both codahale and prometheus metric flavours.
For compatibility reasons, yet another two flags are introduced:
-serve-host-counter and -serve-route-counter. These new counters
include all the dimensions, even if those are disabled for latency
buckets, for prometheus. That's due to prometheus [Histograms][0]
nature: "it also provides a sum of observations and an observation
count". So, users migrating from a full dimensions scenario to one
without them can still get counting metrics. The new counters have the
name skipper_serve_route_count and skipper_serve_host_count.
On the same example, removing the status code and method labels results
in 960 metrics, a ~90% reduction.
[0]: https://pkg.go.dev/github.com/prometheus/client_golang/prometheus#Histogram
Docker image
Docker image is available in Zalando's Open Source registry:
docker run -it registry.opensource.zalan.do/teapot/skipper:v0.13.53 skipper --help
# arm64
docker run -it registry.opensource.zalan.do/teapot/skipper-arm64:v0.13.53 skipper --help
# arm v7 32bit
docker run -it registry.opensource.zalan.do/teapot/skipper-armv7:v0.13.53 skipper --help