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:
make gen
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/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
monitor
Prometheus is running on localhost:9090)