thanos-io / kube-thanos

Kubernetes specific configuration for deploying Thanos.
Apache License 2.0
520 stars 177 forks source link

Query: Allow configuring telemetry.request options #299

Closed jacobbaungard closed 1 year ago

jacobbaungard commented 1 year ago

Changes

With this commit we allow configuring the following Thanos query options:

Note that the jsonnet variable expects a comma seperated list, which will be expanded to the format required by Thanos. As an example the following jsonnet configuration:

telemetryDurationQuantiles: '1, 2, 3',
telemetrySamplesQuantiles: '100,1000,10000,100000',
telemetrySeriesQuantiles: '10,100,1000,10000',

Will result in the following command line arguments to Thanos

--query.telemetry.request-duration-seconds-quantiles=1
--query.telemetry.request-duration-seconds-quantiles=2
--query.telemetry.request-duration-seconds-quantiles=3
--query.telemetry.request-samples-quantiles=100
--query.telemetry.request-samples-quantiles=1000
--query.telemetry.request-samples-quantiles=10000
--query.telemetry.request-samples-quantiles=100000
--query.telemetry.request-series-seconds-quantiles=10
--query.telemetry.request-series-seconds-quantiles=100
--query.telemetry.request-series-seconds-quantiles=1000
--query.telemetry.request-series-seconds-quantiles=10000

Verification

jacobbaungard commented 1 year ago

I think the linter fails due to a bug in older version of jsonnet-lint. At least it seems to work OK on the latest version (see below). Can we update the tooling ?

❯ ~/go/bin/jsonnet-lint --version
Jsonnet linter v0.20.0
❯ ~/go/bin/jsonnet-lint  -J vendor ./jsonnet/kube-thanos/kube-thanos-query.libsonnet
❯ echo $?
0
❯ /home/jacobhansen/go/bin/jsonnet-lint-v0.17.1-0.20210101181740-31d71aaccda6 -J vendor ./jsonnet/kube-thanos/kube-thanos-query.libsonnet
./jsonnet/kube-thanos/kube-thanos-query.libsonnet:162:71-85 Indexed object has no field "stripChars"

            '--query.telemetry.request-duration-seconds-quantiles=' + std.stripChars(quantile, ' ')
....