rate_limit_quota: preview mode for matchers#38576
Conversation
…e.g. ListMatcher. Signed-off-by: Brian Surber <[email protected]>
|
CC @envoyproxy/api-shepherds: Your approval is needed for changes made to |
…-entry into nested matchers. Signed-off-by: Brian Surber <[email protected]>
…eir rate limiting decisions. Signed-off-by: Brian Surber <[email protected]>
56f4948 to
123be93
Compare
|
This pull request has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in 7 days if no further activity occurs. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions! |
|
This pull request has been automatically closed because it has not had activity in the last 37 days. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions! |
…38726) Commit Message: - Add a `keep_matching` field to OnMatch to mark Matchers that should be recorded when matched but should not be the final matched + enforced action. - Implement support for `keep_matching` using MatcherTree re-entry. - Re-entry is implemented in PR #38564 as well for a separate review if this PR gets closed. - ListMatcher was chosen as the simplest example usecase / proof-of-concept for re-entry, but implementation in other MatcherTree children will follow in separate PRs (namely prefix_map_matcher). - Centralize recursion handling & re-entry logic into `evaluateMatch(...)`, leaving each MatchTree child class to implement the simplest possible `match(...)` logic (find a match and return it + optionally a reentrant). - Previously recursion handling was inconsistent across the MatchTree children, and this saves each child from having to re-implement recursion, `keep_handling` processing, etc. - TrieMatcher also required a reentrant implementation as part of moving recursion logic out of its `match(...)` logic. Additional Description: - The final goal is to implement preview / darklaunch Matchers whose actions are logged or added to metadata, but not enforced. - An initial implementation of preview matched actions just using re-entry was drafted for the rate_limit_quota filter in PR #38576, prompting the request to instead add this `keep_matching` feature to the Matcher API for re-usability. - This change will also depend on a duplicate, matcher proto change in [github.com/cnf/xds](cncf/xds#117). Risk Level: moderate - includes changes to widely-used libraries Testing: Unit + Integration testing, loadtesting WIP Docs Changes: Release Notes: Platform Specific Features: ~[Optional Runtime guard:]~ ~[Optional Fixes #Issue]~ ~[Optional Fixes commit #PR or SHA]~ ~[Optional Deprecated:]~ [API Considerations](https://github.com/envoyproxy/envoy/blob/main/api/review_checklist.md): The new `keep_matching` field is not marked as WIP as its implementation should be tested for any breaking changes. --------- Signed-off-by: Brian Surber <[email protected]> Signed-off-by: Raven Black <[email protected]> Co-authored-by: Raven Black <[email protected]>
|
Note: #38726 has the final keep_matching implementation, and an implementation of preview mode for the rate_limit_quota filter will look different enough to warrant a new branch |
Commit Message:
Additional Description: Branched from PR #38564 which provides the necessary re-entry interface for the MatcherTree and an implementation for ListMatcher
Risk Level: minor - all limited to in-development rate_limit_quota filter
Testing: Unit and integration
Docs Changes:
Release Notes:
Platform Specific Features: