envoyproxy / envoyproxy/envoy

Rethink ALL_CLUSTER_STATS

Open
#7,128 2 comments 0 reactions 0 assignees View on GitHub
help wanted tech debt
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 20h
Merged PRs (30d)
428

Description

We have been dumping a bunch of things in ALL_CLUSTER_STATS that are specific certain aspects of Envoy configuration and/or extensions. Given that these stats are the largest users of memory, and there is cognitive load for having stats that are not used, we should consider breaking this apart and allowing code/extensions to create sub-scopes in the cluster for specific things.

For example:

```
COUNTER(lb_local_cluster_not_ok) \
COUNTER(lb_recalculate_zone_structures) \
COUNTER(lb_subsets_created) \
COUNTER(lb_subsets_fallback) \
COUNTER(lb_subsets_fallback_panic) \
COUNTER(lb_subsets_removed) \
COUNTER(lb_subsets_selected) \
COUNTER(lb_zone_cluster_too_small) \
COUNTER(lb_zone_no_capacity_left) \
COUNTER(lb_zone_number_differs) \
COUNTER(lb_zone_routing_all_directly) \
COUNTER(lb_zone_routing_cross_zone) \
COUNTER(lb_zone_routing_sampled) \
```

All of ^ could be created on demand by extensions/LBs that use them.

cc @jmarantz

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.