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

Throttler multi-metrics: an incremental PR #16012

Conversation

shlomi-noach
Copy link
Contributor

@shlomi-noach shlomi-noach commented May 26, 2024

Replaced by #16039

Notes

This PR is the incremental version of #15988, and will be the base of multiple coming up PR merges. DO NOT MERGE

Description

This PR adds multi-metrics support to the tablet throttler. It is pretty large as will be explained shortly, and is submitted as Draft. I will break it down into hopefully smaller and more manageable PRs, something I could not do in the process of writing this code. To explain a bit, adding multi-metrics support adds a new dimension of complexity to the already multi-dimensioned throttler. I chose do remove legacy or unused dimensions from the existing codebase so as to simplify the result. While this PR is not a redesign (the main elements remain the same), it shaves and refactors a lot of code.

See full changes and documentation in #15988 . We are breaking down #15988 into smaller changes which will make it easier to review. This changes will merge onto this branch, with the intention that at the end of the process this PR/branch will be (mostly) identical to #15988 , at which time it will be merged as a whole.

There will only be a handful of PRs that we will merge directly to main. These will be some cleanup-related changes, bugfixes, CI fixes, etc. But the multi-metric redesign will merge into this branch and then as a whole into main. There is a lot of backwards-compatibility and testing involved, and I feel the complete PR is correct to merge as a whole.

Related Issue(s)

#15624

Checklist

  • "Backport to:" labels have been added if this change should be back-ported to release branches
  • If this change is to be back-ported to previous releases, a justification is included in the PR description
  • Tests were added or are not required
  • Did the new or modified tests pass consistently locally and on CI?
  • Documentation was added or is not required

Deployment Notes

Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Copy link
Contributor

vitess-bot bot commented May 26, 2024

Review Checklist

Hello reviewers! 👋 Please follow this checklist when reviewing this Pull Request.

General

  • Ensure that the Pull Request has a descriptive title.
  • Ensure there is a link to an issue (except for internal cleanup and flaky test fixes), new features should have an RFC that documents use cases and test cases.

Tests

  • Bug fixes should have at least one unit or end-to-end test, enhancement and new features should have a sufficient number of tests.

Documentation

  • Apply the release notes (needs details) label if users need to know about this change.
  • New features should be documented.
  • There should be some code comments as to why things are implemented the way they are.
  • There should be a comment at the top of each new or modified test to explain what the test does.

New flags

  • Is this flag really necessary?
  • Flag names must be clear and intuitive, use dashes (-), and have a clear help text.

If a workflow is added or modified:

  • Each item in Jobs should be named in order to mark it as required.
  • If the workflow needs to be marked as required, the maintainer team must be notified.

Backward compatibility

  • Protobuf changes should be wire-compatible.
  • Changes to _vt tables and RPCs need to be backward compatible.
  • RPC changes should be compatible with vitess-operator
  • If a flag is removed, then it should also be removed from vitess-operator and arewefastyet, if used there.
  • vtctl command output order should be stable and awk-able.

@vitess-bot vitess-bot bot added NeedsBackportReason If backport labels have been applied to a PR, a justification is required NeedsDescriptionUpdate The description is not clear or comprehensive enough, and needs work NeedsIssue A linked issue is missing for this Pull Request NeedsWebsiteDocsUpdate What it says labels May 26, 2024
@shlomi-noach shlomi-noach added Type: Bug Type: Enhancement Logical improvement (somewhere between a bug and feature) Component: Throttler and removed NeedsDescriptionUpdate The description is not clear or comprehensive enough, and needs work NeedsIssue A linked issue is missing for this Pull Request NeedsBackportReason If backport labels have been applied to a PR, a justification is required labels May 26, 2024
@github-actions github-actions bot added this to the v20.0.0 milestone May 26, 2024
Copy link

codecov bot commented May 26, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 68.25%. Comparing base (d95ce48) to head (e9b68ee).

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #16012      +/-   ##
==========================================
- Coverage   68.27%   68.25%   -0.02%     
==========================================
  Files        1562     1562              
  Lines      197319   197319              
==========================================
- Hits       134714   134689      -25     
- Misses      62605    62630      +25     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@shlomi-noach
Copy link
Contributor Author

This PR is now closed, replaced by #16039

For logistics reasons, we will use #16039 as the icnremental PR into which we merge further multi-metric throttler changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: Throttler NeedsWebsiteDocsUpdate What it says Type: Bug Type: Enhancement Logical improvement (somewhere between a bug and feature)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants