From 5ab1d59f5709da526b2186df4ba7675307d06ffc Mon Sep 17 00:00:00 2001 From: Christian Rohmann Date: Tue, 18 Nov 2025 18:24:14 +0100 Subject: [PATCH] Add Peak EWMA load balancer (contrib) This LB algorithm uses the peak exponentially-weighted moving average based on round-trip time (RTT) and outstanding requests to prefer targets resulting in low request latency and to respond to changes quickly. Peak EWMA is also well-suited for cross-data-center routing: it naturally prefers upstream hosts in the closest data center, but seamlessly fails over to other data centers during slowdowns (and fails back when performance recovers). In scenarios where all upstream hosts have similar request latency, Peak EWMA behaves equivalently to equal-weighted least request load balancing (using P2C selection). Adding this contrib extension allows for evaluation of the potential for Istio service-meshes via EnvoyFilters. --- bazel/extension_config/extensions_build_config.bzl | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/bazel/extension_config/extensions_build_config.bzl b/bazel/extension_config/extensions_build_config.bzl index 20a8333bbaa..3a542d90fbd 100644 --- a/bazel/extension_config/extensions_build_config.bzl +++ b/bazel/extension_config/extensions_build_config.bzl @@ -501,6 +501,12 @@ ENVOY_CONTRIB_EXTENSIONS = { # "envoy.network.connection_balance.dlb": "//contrib/dlb/source:connection_balancer", + + # + # Peak EWMA Loadbalancer + # + "envoy.load_balancing_policies.peak_ewma": "//contrib/peak_ewma/load_balancing_policies/source:config", + "envoy.filters.http.peak_ewma": "//contrib/peak_ewma/filters/http/source:config", } @@ -519,6 +525,8 @@ ISTIO_ENABLED_CONTRIB_EXTENSIONS = [ "envoy.tls.key_providers.cryptomb", "envoy.tls.key_providers.qat", "envoy.network.connection_balance.dlb", + "envoy.load_balancing_policies.peak_ewma", + "envoy.filters.http.peak_ewma", ] EXTENSIONS = dict([(k,v) for k,v in ENVOY_EXTENSIONS.items() if not k in ISTIO_DISABLED_EXTENSIONS] +