This definition contains Prometheus statefulsets definitions set up to test remote read changes described here.
@bwplotka is using those to benchmark new remote read with Thanos sidecar on live Kubernetes cluster.
- Generate YAMLs from definitions:
You should see 2 Prometheus + Thanos definitions. One is baseline, second is a version with modified remote read that allows streaming encoded chunks.
Those resources are crafted for benchmark purposes -> they generate artificial metric data in the init container.
- Apply baseline or improved version:
kubectl apply -f benchmarks/remote-read/gen-manifests/<choose>.yaml
NOTE: because of init container generating data - init can take few minutes and lots of memory (roughly 6GB per 10k series).
Forward gRPC sidecar port:
kubectl port-forward pod/<pod name> 1234:19090
Perform tests using test.sh (modifying parameters in script itself - heavy queries!)
- This performs heavy queries (query all) against Thanos gRPC Store.Series of sidecar which will proxy requests as remote read to Prometheus
bash ./benchmarks/remote-read/test/test.sh localhost:1234
See resource consumption based on requests (assuming your
monitorPrometheus is running on localhost:9090)