Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time

Remote Read

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 (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/ localhost:1234
  • See resource consumption based on requests (assuming your monitor Prometheus is running on localhost:9090)