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

Automate performance testing for CCR plugin #1428

Closed
5 tasks done
Tracked by #126
ankitkala opened this issue Jan 5, 2022 · 11 comments
Closed
5 tasks done
Tracked by #126

Automate performance testing for CCR plugin #1428

ankitkala opened this issue Jan 5, 2022 · 11 comments
Labels

Comments

@ankitkala
Copy link
Member

ankitkala commented Jan 5, 2022

Is your feature request related to a problem? Please describe

We want to to be able to run performance tests for cross cluster repliacation plugin using opensearch-benchmark.

Describe the solution you'd like

We'd like to add the support for replication performance testing as part of OS performance testing framework. Eventually, We'd want to have periodic runs for the replication plugin as part of Jenkins CI.

Describe alternatives you've considered

We explored whether we should have a separate dedicated Jenkins setup for CCR plugin but it seems like a duplication of effort and thus decided to just focus on making it work with OS performance framework instead.

Tasks:

@ankitkala ankitkala added enhancement New Enhancement untriaged Issues that have not yet been triaged labels Jan 5, 2022
@dblock
Copy link
Member

dblock commented Jan 10, 2022

After #126 we should be able to onboard plugins into whatever we come up with, including CCR.

@ankitkala
Copy link
Member Author

Yep, I've been following up that issue closely. Let me come up with the list of tasks required to support CCR perf suite and update here.

@dblock dblock added performance v1.3.0 and removed untriaged Issues that have not yet been triaged labels Jan 11, 2022
@dblock dblock changed the title Performance benchmarking for CCR plugin Automate performancet testing for CCR plugin Jan 11, 2022
@dblock dblock changed the title Automate performancet testing for CCR plugin Automate performance testing for CCR plugin Jan 11, 2022
@ankitkala
Copy link
Member Author

ankitkala commented Jan 12, 2022

@dblock I had an offline discussion with @bbarani and based on the discussion, here is the plan for automating the performance tests:

  • We'll add a script in replication repo that can be used by everyone contributing to CCR as well as opensearch build.
  • This script would be invoked as part of distribution build regularly within Jenkins.
  • Script would use PerfTestSuite & PerfTestCluster to setup multiple clusters and run the replication perf tests. If there are any changes required to support these on OS infra side, I'll take those up and raise the PRs.
  • The clusters would be created in build team's account.
  • For manually triggers, we'll be using our team's account (which we'd have to whitelisted with perf testing team).
  • We'd have read only access to Jenkins to monitor the jobs.
  • We'd be running perf tests only for latest and next release.
  • We'll start testing single node clusters. For testing on multinode cluster, perf testing team would have to remove the hardcoded ports so that we can send IP for a loadbalancer.
  • I've also been following up with perf testing team and they're planning to support multiple IPs incase of multinode clusters. It in a existing feature in OSB and only perf tool to add support in the APIs.

@dblock
Copy link
Member

dblock commented Jan 12, 2022

  • We'll add a script in replication repo that can be used by everyone contributing to CCR as well as opensearch build.
  • This script would be invoked as part of distribution build regularly within Jenkins.
  • Script would use PerfTestSuite & PerfTestCluster to setup multiple clusters and run the replication perf tests. If there are any changes required to support these on OS infra side, I'll take those up and raise the PRs.

What will a script do that existing scripts don't?
I would say this is already test.sh and it takes a manifest as input.

@ankitkala
Copy link
Member Author

These are the steps we have for running a replication perf test:

  1. Create 2 clusters(Leader and follower).
  2. Connect the two clusters and start replication.
  3. Start data ingestion on leader using OSB and monitor replication metrics.
  4. Stop the replication and remove the connection(Can be skipped in this case since these clusters won't be reused).

We need to execute the additional logic to setup the replication prior to running the tests. I'm assuming you'd prefer that we keep this logic(same for other plugin owners) in our own repo. If this is not the case, let me know, then we don't really need any separate script we can just call test.sh with an input manifest.

@gaiksaya
Copy link
Member

gaiksaya commented Jan 25, 2022

[Triage] Hi @ankitkala , In which repository is the work related to this issue is gonna happen?
We wanted to know where the code will reside for this.

@ankitkala
Copy link
Member Author

Sorry for late reply. The code is expected to be in build repo itself.

@bbarani
Copy link
Member

bbarani commented Mar 1, 2022

Hi @ankitkala , thanks for the update. I dont see any updates on the tasks listed on this META issue. Can you provide an update?

@ankitkala
Copy link
Member Author

I'll be resuming on this task by end of this week. Expect the PRs by early next week or so.

@ankitkala
Copy link
Member Author

@bbarani
Copy link
Member

bbarani commented Jul 6, 2022

@ankitkala I see that all the tasks associated with this issue are completed. Can we close this issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants