負載回報服務 (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
(重複 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
(重複 string) 要回報統計資料的叢集。如果
send_all_clusters
為 true,則不會填入。
- send_all_clusters
(bool) 如果為 true,則用戶端應傳送它知道的所有叢集。只有在其 client_features 欄位中宣告「envoy.lrs.supports_send_all_clusters」功能的用戶端才會接受此欄位。
- load_reporting_interval
(Duration) 收集統計資料的最短時間間隔。這僅是最小值,原因有二
從計時器觸發到統計資料取樣之間可能會有延遲。
對於先前在
LoadStatsResponse
中已提供的叢集,在對應的先前LoadStatsRequest
與此LoadStatsResponse
之間觀察到的任何流量也將累積並計入叢集。這樣可以避免訊息之間可能存在的不可觀測期間。新叢集不受此考量限制。
- report_endpoint_granularity
(bool) 如果管理伺服器支援端點精細度報告,則設為
true
。