Adding lrs_server support for 'self' and 'ads'
- Dominant language
- C++
- Stars
- 28.9k
- Forks
- 5.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 428
Description
*Adding lrs_server support for 'self' and 'ads'*
*Description*:
The [lrs_server](https://github.com/envoyproxy/envoy/blob/d153c44b9aee19aa6024dd2b57e1f4c283a0177c/api/envoy/config/cluster/v3/cluster.proto#L1239) field was added a while ago into the Cluster API, but haven't got implemented.
The goal of this issue is to track the partial implementation of this feature.
Currently Envoy supports a single load-report-server configuration (in its bootstrap) which Envoy then creates a global Load-Stats-Reporter where all the stats will be sent to. Our goal is to add an optional per-config-source Load-Stats-Reporter to the GrpcMux, which will be used to send and receive the load-stats. At this time, the only options that will be supported for the `lrs_server` field will be `self` and `ads`.
Note that the current implementation uses stats-latching - a stat (e.g., counter) value is fetched and reset to 0 immediately. This makes sharing of stats between different load-report-servers support very challenging, and the goal is not to support this.
In scope:
* Add the ability to have a per-config-source load-stats-reporter.
* Support the 'self' value for 'lrs_server'.
* Support the 'ads' value for 'lrs_server'.
Plan:
- [ ] Add an optional per-GrpcMux Load-Stats-Reporter.
- [ ] Support per-Cluster defined Load-Stats-Reporter.
- [ ] Support the 'self' configuration that will send the load-report to the server that sent the cluster.
- [ ] Support the 'ads' configuration that will send the load-report to the ADS-server.
Contributor guide
Assessment
This issue has not been assessed yet.