envoyproxy/envoy

Send retry reason to upstream

Open

#6,001 建立於 2019年2月19日

在 GitHub 查看
 (4 留言) (0 反應) (0 負責人)C++ (5,373 fork)batch import
enhancementhelp wanted

倉庫指標

Star
 (27,997 star)
PR 合併指標
 (平均合併 8天) (30 天內合併 378 個 PR)

描述

We're interested in passing information to the upstream about why the request was retried.

The idea is to avoid retrying in the upstream if the request was retried due to an application issue, to prevent an explosion of retries. Currently we can infer whether a retry happened with the x-envoy-attempt-count header, but this doesn't differentiate between different retry reasons. We're interested in being able to adjust retry behavior in the upstream only on certain kinds of retry reasons.

I'm imaging this being implemented by setting a header with a comma separated list of retry reasons, something like x-envoy-retry-reason: 5xx,connect-failure. This way the upstream can determine that we're currently retrying a 5xx that saw a connect failure when attempting the first retry.

This would be guarded by a config flag on the Route, similar to the attempt count header.

貢獻者指南