负载报告服务 (LRS) (proto)
负载报告服务是 Envoy 的一个 API,用于发出负载报告。Envoy 将与管理服务器启动一个双向流。连接后,管理服务器可以向它感兴趣的节点发送一个 LoadStatsResponse,以获取该节点的负载报告。该节点中的 Envoy 将开始发送 LoadStatsRequest。这将根据 负载报告间隔 定期进行。有关详细信息,请查看 负载报告服务沙盒示例。
service.load_stats.v3.LoadStatsRequest
[service.load_stats.v3.LoadStatsRequest proto]
Envoy 发送给管理服务器的负载报告。
{
"node": {...},
"cluster_stats": []
}
- node
(config.core.v3.Node) Envoy 实例的节点标识符。
- cluster_stats
(repeated config.endpoint.v3.ClusterStats) 要报告的负载统计信息的列表。
service.load_stats.v3.LoadStatsResponse
[service.load_stats.v3.LoadStatsResponse proto]
管理服务器向 Envoy 发送一个 LoadStatsResponse,其中包含所有它感兴趣的学习负载统计信息的集群。
{
"clusters": [],
"send_all_clusters": ...,
"load_reporting_interval": {...},
"report_endpoint_granularity": ...
}
- clusters
(repeated string) 要报告统计信息的集群。如果
send_all_clusters
为真,则不填充。
- send_all_clusters
(bool) 如果为真,则客户端应发送所有已知的集群。只有在其 client_features 字段中宣传“envoy.lrs.supports_send_all_clusters”功能的客户端才会遵守此字段。
- load_reporting_interval
(Duration) 收集统计信息的最小时间间隔。这仅仅是最小值,原因有两个
从计时器触发到统计信息采样可能存在一些延迟。
对于之前已在
LoadStatsResponse
中列出的集群,在相应的先前LoadStatsRequest
和此LoadStatsResponse
之间观察到的任何流量也将被累积并计入该集群。这避免了可能在消息之间存在的不可观察性。新的集群不受此考虑因素的影响。
- report_endpoint_granularity
(bool) 如果管理服务器支持端点粒度报告,则设置为
true
。