-
Notifications
You must be signed in to change notification settings - Fork 560
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
Support Retry Budget #2734
Support Retry Budget #2734
Conversation
😊 Welcome @quraynai! This is either your first contribution to the Istio api repo, or it's been You can learn more about the Istio working groups, code of conduct, and contributing guidelines Thanks for contributing! Courtesy of your friendly welcome wagon. |
Hi @quraynai. Thanks for your PR. I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/ok-to-test |
@quraynai re your message on the initial PR, i think having istioctl analyze to report the mismatch (between VS and DR) is reasonable. I can't think of a better way to represent this either - I don't want to hold up your PR, unless someone else has a better way. |
hi @linsun & @quraynai, this is a bit unrelated, but how can you configure it for your service where the retry budget depends on something like active requests and active pending requests which is very low level and not easy to measure compared to the number of requests we're sending to upstream from a client. The same goes for min retry concurrency which we've less control over than retry per second(used by linkerd: https://linkerd.io/2.12/tasks/configuring-retries/#retry-budgets they probably implemented the idea of finagle version's of retry budget: https://finagle.github.io/blog/2016/02/08/retry-budgets/ which makes more sense to me). I've opened a discussion on the envoy repository but got no response from the maintainer unfortunately to discuss how we can measure and configure it for a production service. |
@rafatbiin I think number of request is harder to configure and measure compare to number of active connections. |
@howardjohn @linsun sorry for no activities with this MR for a while. |
@howardjohn @linsun hi could you please help review on this PR? |
@quraynai sorry for the late reply. when you said |
This is a very advanced setting provided by envoy, we haven't had very critical requirements for it |
@hzxuzhonghu I understand about it's not critical to have this functionality at the moment from istio. It's a simple config that we tried and we don't issue about retry storm so far |
@rafatbiin maybe we can try with static number and readjust as global. |
@hzxuzhonghu @linsun @howardjohn hi could you please help on this? |
I am concerned about this as retries are in VirtualService, so putting retry budget in DR is odd. It is to align with Envoy semantics only, not really designed from users perspective. Gateway-API is also looking into adding this in HTTPRoute; if we put it in DR it will be incompatible cc @mikemorris. That being said, I don't know a way to put it in route without envoy changes. |
@howardjohn I understand your concern. we will look into another option |
@howardjohn We are interested in having access to the |
@ericdbishop We're starting to look at implementing retries (including retry budgets) upstream in Gateway API in kubernetes-sigs/gateway-api#1731 One thing I'd like to get more clarity on is where/how this should be implemented - my initial thought was as a field on HTTPRoute (similar to Timeouts), but I've seen a few mentions of DestinationRule or client-side config which I'd like to better understand the implications for (or any Envoy implementation constraints) as it would relate to both Ambient mesh without client sidecars and reconciling this functionality with other Gateway API implementations such as Linkerd's retry budgets. |
Open new MR to solve conflict. Previous MR #2585
Issue: istio/istio#27419
Istio: istio/istio#42232