Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add e2e Benchmarking for CI #1707

Closed
bwplotka opened this issue Nov 1, 2019 · 18 comments
Closed

Add e2e Benchmarking for CI #1707

bwplotka opened this issue Nov 1, 2019 · 18 comments

Comments

@bwplotka
Copy link
Member

bwplotka commented Nov 1, 2019

Something like prombench but for Thanos (:

We would love to have some auto benchmark to run on certain PRs to compare versions' resource usage.

I did something like this manually with thanosbench as mentioned here, so:

Dataset generated offline and exactly the same for every test run.

For a start Querier and Store GW tests:

  • Start store GW for version A and B
  • Start Querier for version A and B
  • Perform some queries like
  • Instant queries
  • Short range queries
  • Long range queries
  • Cardinality queries (e.g touching 100k series)

Then give dashboard / Prometheus UI with resource consumption and queries latency.

Why not just run on staging/production environment?

Because this might be not quite deterministic: dataset changes all the time (compactions, new blocks retention), queries are different and not isolated.

Help wanted! (:

@jojohappy
Copy link
Member

I'd like to take it. So questions about this proposal:

  • Should we use one of cloud kubernetes service, e.g. GKE like prombench?
  • How about the permission? Only maintainer can run the test in a PR?

@bwplotka
Copy link
Member Author

Should we use one of cloud Kubernetes service, e.g. GKE like prombench?

Yes, however, we might be able to get away with GH actions and kind potentially (:
As the first step, we might want to have it as part of thanosbench against any given Kubernetes

How about the permission? The only maintainer can run the test in a PR?

That's correct.

@rajibmitra
Copy link

I would like to work on this as part of community bridge program if its okay. @bwplotka @jojohappy
cc @GiedriusS

@KalanaDananjaya
Copy link

Hi. If is the project still available? I would like to work on this under community bridge mentorship if it is available

@bwplotka
Copy link
Member Author

bwplotka commented Dec 17, 2019

@rajibmitra @kdanW please apply for this as described here: https://docs.linuxfoundation.org/display/DOCS/Mentees

cc @GiedriusS

@rajibmitra
Copy link

I have applied , thanks @bwplotka , looking forward to it.

@KalanaDananjaya
Copy link

I have applied as well. Thanks @bwplotka

@bwplotka
Copy link
Member Author

Interesting work started by Grafana on this field, it's worth to sync with them: https://docs.google.com/document/d/1_fVDL9EGVjWSdZTYTvE8Ey_g8FlTY_7DVGazuTAWqFc/edit

(:

@stale
Copy link

stale bot commented Jan 18, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Jan 18, 2020
@GiedriusS GiedriusS added pinned and removed stale labels Jan 18, 2020
@bwplotka bwplotka removed the pinned label Jan 28, 2020
@yeya24
Copy link
Contributor

yeya24 commented Feb 8, 2020

https://github.com/prometheus/prombench/blob/master/funcbench/README.md is a useful tool to benchmark specific functions and I believe this is easy to integrate after we move to Github Actions. We can easily reuse the docker images from Prombench to implement a similar workflow.

  1. Github comments to trigger Github Actions
  2. Trigger function benchmark
  3. Post the result back to comment

@yeya24
Copy link
Contributor

yeya24 commented Feb 12, 2020

For doing micro-benchmarks between 2 go bench functions, we can reuse funcbench as well. It is not difficult to extend it to achieve this purpose.

@bwplotka
Copy link
Member Author

bwplotka commented Feb 12, 2020 via email

@stale
Copy link

stale bot commented Mar 13, 2020

This issue/PR has been automatically marked as stale because it has not had recent activity. Please comment on status otherwise the issue will be closed in a week. Thank you for your contributions.

@stale stale bot added the stale label Mar 13, 2020
@stale
Copy link

stale bot commented Apr 12, 2020

This issue/PR has been automatically marked as stale because it has not had recent activity. Please comment on status otherwise the issue will be closed in a week. Thank you for your contributions.

@bwplotka bwplotka removed the stale label Apr 13, 2020
@geekodour
Copy link

geekodour commented May 2, 2020

Thanks for sharing the grafana doc @bwplotka :) little surprised that they didn't mention https://github.com/kubernetes/test-infra/tree/master/prow which kind of resembles the proposed solution; but does feel like an overkill for smaller projects to self host and maintain.

We're planning for kind support for prombench too, but that'll mostly be for adding more tests/queries/e2e test of the test-infra itself etc; Interested to know if it'll be useful to run benchmarks aswell.

@stale
Copy link

stale bot commented Jun 1, 2020

Hello 👋 Looks like there was no activity on this issue for last 30 days.
Do you mind updating us on the status? Is this still reproducible or needed? If yes, just comment on this PR or push a commit. Thanks! 🤗
If there will be no activity for next week, this issue will be closed (we can always reopen an issue if we need!). Alternatively, use remind command if you wish to be reminded at some point in future.

@stale stale bot added the stale label Jun 1, 2020
@kakkoyun kakkoyun removed the stale label Jun 3, 2020
@stale
Copy link

stale bot commented Jul 3, 2020

Hello 👋 Looks like there was no activity on this issue for last 30 days.
Do you mind updating us on the status? Is this still reproducible or needed? If yes, just comment on this PR or push a commit. Thanks! 🤗
If there will be no activity for next week, this issue will be closed (we can always reopen an issue if we need!). Alternatively, use remind command if you wish to be reminded at some point in future.

@stale stale bot added the stale label Jul 3, 2020
@stale
Copy link

stale bot commented Jul 10, 2020

Closing for now as promised, let us know if you need this to be reopened! 🤗

@stale stale bot closed this as completed Jul 10, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants