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

Automatic deployment sizing conversion in kbn-alert-load tool #88388

Closed
mikecote opened this issue Jan 14, 2021 · 5 comments
Closed

Automatic deployment sizing conversion in kbn-alert-load tool #88388

mikecote opened this issue Jan 14, 2021 · 5 comments
Labels
enhancement New value added to drive a business result estimate:needs-research Estimated as too large and requires research to break down into workable issues Feature:Alerting Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams)

Comments

@mikecote
Copy link
Contributor

When building the kbn-alert-load tool, we've continuously had to change the RAM options when changing Cloud environments (see here). It would be nice to have this automated.

@mikecote mikecote added enhancement New value added to drive a business result Feature:Alerting Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams) labels Jan 14, 2021
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-alerting-services (Team:Alerting Services)

@pmuellr
Copy link
Member

pmuellr commented Jan 14, 2021

I started looking into how to do this, so this is from memory.

One of listStacks() or listTemplates() can be used to list all the available options that can be used when generating the json we send to create the deployment, including available RAM sizes. The createDeployment() function first passes the args you want to ecctl deployment create with the --generatePayload option, which will return the complete json payload given the args provided - it doesn't actually create the deployment, it's more like --dry-run (show me what you would do).

Those functions are here: https://github.com/pmuellr/kbn-alert-load/blob/main/lib/ec-commands.js

So, my thinking was:

  • get the list of templates (or stacks or whatever)
  • do the createDeployment() as we currently do, where we generate the payload for it
  • figure out which stack/template it selected
  • look up that stack/template in the list we got from step 1, to figure out what RAM sizes it supports
  • calculate the "closest" RAM support to the size of RAM requested, and override that in the payload that createDeployment() builds

The RAM sizes seem to diverge at 15/16GB - I think I've only seen two unique patterns:

  • 16GB / 32GB / 64GB
  • 15GB / 31GB / 58GB

For that case, we'd want to have 64GB as the deployment ram setting for the tool, but it would end up using the 58GB value when the deployment is actually created.

@gmmorris gmmorris added the loe:needs-research This issue requires some research before it can be worked on or estimated label Jul 14, 2021
@gmmorris gmmorris added the estimate:needs-research Estimated as too large and requires research to break down into workable issues label Aug 18, 2021
@gmmorris gmmorris removed the loe:needs-research This issue requires some research before it can be worked on or estimated label Sep 2, 2021
@kobelb kobelb added the needs-team Issues missing a team label label Jan 31, 2022
@botelastic botelastic bot removed the needs-team Issues missing a team label label Jan 31, 2022
@mikecote
Copy link
Contributor Author

@EricDavisX have you experienced issues communicating to Cloud APIs the deployment sizes when running tests? Trying to see if this issue is still relevant or not.

@EricDavisX
Copy link
Contributor

I have not seen it. @mikecote
That may be because we don't try many different configurations (sizes). ...In the baseline test we setup and which is run in the MLR QA Jenkins, we have a fairly modest stack setup and it isn't changing. The Jenkins job is the only consume that the QA group uses of kbn-alert-load (we don't do much ad-hoc manual setup of tests). I might guess it was still a problem, but I question if we want to spend time as it isn't bugging us currently.

@mikecote
Copy link
Contributor Author

@EricDavisX fair enough, thanks! I will close the issue for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New value added to drive a business result estimate:needs-research Estimated as too large and requires research to break down into workable issues Feature:Alerting Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams)
Projects
None yet
Development

No branches or pull requests

6 participants