負載回報服務 (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) 收集統計資料的最短時間間隔。這僅是最小值,原因有二

  1. 從計時器觸發到統計資料取樣之間可能會有延遲。

  2. 對於先前在 LoadStatsResponse 中已提供的叢集,在對應的先前 LoadStatsRequest 與此 LoadStatsResponse 之間觀察到的任何流量也將累積並計入叢集。這樣可以避免訊息之間可能存在的不可觀測期間。新叢集不受此考量限制。

report_endpoint_granularity

(bool) 如果管理伺服器支援端點精細度報告,則設為 true