Skip to content

stats: refactor forEachHostMetric to avoid using clusters()#44015

Merged
wbpcode merged 2 commits intoenvoyproxy:mainfrom
adisuissa:for_each_metric_get_active_clusters
Mar 25, 2026
Merged

stats: refactor forEachHostMetric to avoid using clusters()#44015
wbpcode merged 2 commits intoenvoyproxy:mainfrom
adisuissa:for_each_metric_get_active_clusters

Conversation

@adisuissa
Copy link
Copy Markdown
Contributor

Commit Message: stats: refactor forEachHostMetric to avoid using clusters()
Additional Description:
Currently the forEachHostMetric method invokes clusters which creates a temporary map with all the active and warming clusters, and then the forEachHostMetric method iterates over all the active clusters.
This PR introduces the forEachActiveCluster iterator in the Cluster-Manager that instead of creating the temporary map, allows forEachHostMetric to directly iterate over the active clusters and collect the stats.

Risk Level: low - an internal refactor
Testing: Updated the mocks to support the new iterator.
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
@repokitteh-read-only
Copy link
Copy Markdown

As a reminder, PRs marked as draft will not be automatically assigned reviewers,
or be handled by maintainer-oncall triage.

Please mark your PR as ready when you want it to be reviewed!

🐱

Caused by: #44015 was opened by adisuissa.

see: more, trace.

@adisuissa adisuissa marked this pull request as ready for review March 20, 2026 18:45
…_active_clusters

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
Copy link
Copy Markdown
Member

@wbpcode wbpcode left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks.

@wbpcode wbpcode merged commit 941e899 into envoyproxy:main Mar 25, 2026
29 checks passed
fishcakez pushed a commit to fishcakez/envoy that referenced this pull request Mar 25, 2026
…xy#44015)

Commit Message: stats: refactor forEachHostMetric to avoid using
clusters()
Additional Description:
Currently the [forEachHostMetric]() method invokes [clusters]() which
creates a temporary map with all the active and warming clusters, and
then the `forEachHostMetric` method iterates over all the active
clusters.
This PR introduces the `forEachActiveCluster` iterator in the
Cluster-Manager that instead of creating the temporary map, allows
`forEachHostMetric` to directly iterate over the active clusters and
collect the stats.

Risk Level: low - an internal refactor
Testing: Updated the mocks to support the new iterator.
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
wbpcode pushed a commit that referenced this pull request Mar 27, 2026
Commit Message: config_dump: use new clusters iterator
Additional Description:
Prior to this PR the config dump created a temp map data-structure, and
iterated over that.
In #44015 a new iterator was introduced in the cluster-manager to
iterate over the active-clusters. This PR uses the new iterator to
achieve the same result.

Risk Level: low - no external impact.
Testing: N/A
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
TAOXUY pushed a commit to TAOXUY/envoy that referenced this pull request Apr 1, 2026
…xy#44015)

Commit Message: stats: refactor forEachHostMetric to avoid using
clusters()
Additional Description:
Currently the [forEachHostMetric]() method invokes [clusters]() which
creates a temporary map with all the active and warming clusters, and
then the `forEachHostMetric` method iterates over all the active
clusters.
This PR introduces the `forEachActiveCluster` iterator in the
Cluster-Manager that instead of creating the temporary map, allows
`forEachHostMetric` to directly iterate over the active clusters and
collect the stats.

Risk Level: low - an internal refactor
Testing: Updated the mocks to support the new iterator.
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
Signed-off-by: Xuyang Tao <taoxuy@google.com>
TAOXUY pushed a commit to TAOXUY/envoy that referenced this pull request Apr 1, 2026
Commit Message: config_dump: use new clusters iterator
Additional Description:
Prior to this PR the config dump created a temp map data-structure, and
iterated over that.
In envoyproxy#44015 a new iterator was introduced in the cluster-manager to
iterate over the active-clusters. This PR uses the new iterator to
achieve the same result.

Risk Level: low - no external impact.
Testing: N/A
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
Signed-off-by: Xuyang Tao <taoxuy@google.com>
citrus7 pushed a commit to citrus7/envoy that referenced this pull request Apr 1, 2026
…xy#44015)

Commit Message: stats: refactor forEachHostMetric to avoid using
clusters()
Additional Description:
Currently the [forEachHostMetric]() method invokes [clusters]() which
creates a temporary map with all the active and warming clusters, and
then the `forEachHostMetric` method iterates over all the active
clusters.
This PR introduces the `forEachActiveCluster` iterator in the
Cluster-Manager that instead of creating the temporary map, allows
`forEachHostMetric` to directly iterate over the active clusters and
collect the stats.

Risk Level: low - an internal refactor
Testing: Updated the mocks to support the new iterator.
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
Signed-off-by: Jonathan Wu <jtwu@google.com>
citrus7 pushed a commit to citrus7/envoy that referenced this pull request Apr 1, 2026
Commit Message: config_dump: use new clusters iterator
Additional Description:
Prior to this PR the config dump created a temp map data-structure, and
iterated over that.
In envoyproxy#44015 a new iterator was introduced in the cluster-manager to
iterate over the active-clusters. This PR uses the new iterator to
achieve the same result.

Risk Level: low - no external impact.
Testing: N/A
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
Signed-off-by: Jonathan Wu <jtwu@google.com>
eric846 pushed a commit to envoyproxy/nighthawk that referenced this pull request Apr 11, 2026
- Update NH to the latest Envoy.
- Implement `initManager` in `source/client/process_impl.cc` to accommodate envoyproxy/envoy#44100.
- Include a `--path` argument to `tools/check_format.sh` to resolve a Bazel failure after running the newly added rust format check in envoyproxy/envoy#44131.
- Skip assertion in `source/client/flush_worker_impl.cc` as a workaround to accommodate the newly introduced assertion in envoyproxy/envoy#44015.

Signed-off-by: jiajunye <jiajunye@google.com>
Signed-off-by: Jason Ye <jiajunye@google.com>
nshipilov pushed a commit to nshipilov/envoy that referenced this pull request Apr 13, 2026
…xy#44015)

Commit Message: stats: refactor forEachHostMetric to avoid using
clusters()
Additional Description:
Currently the [forEachHostMetric]() method invokes [clusters]() which
creates a temporary map with all the active and warming clusters, and
then the `forEachHostMetric` method iterates over all the active
clusters.
This PR introduces the `forEachActiveCluster` iterator in the
Cluster-Manager that instead of creating the temporary map, allows
`forEachHostMetric` to directly iterate over the active clusters and
collect the stats.

Risk Level: low - an internal refactor
Testing: Updated the mocks to support the new iterator.
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
Signed-off-by: Nick Shipilov <nick.shipilov.n@gmail.com>
nshipilov pushed a commit to nshipilov/envoy that referenced this pull request Apr 13, 2026
Commit Message: config_dump: use new clusters iterator
Additional Description:
Prior to this PR the config dump created a temp map data-structure, and
iterated over that.
In envoyproxy#44015 a new iterator was introduced in the cluster-manager to
iterate over the active-clusters. This PR uses the new iterator to
achieve the same result.

Risk Level: low - no external impact.
Testing: N/A
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
Signed-off-by: Nick Shipilov <nick.shipilov.n@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants