Advertise health-aware peer cache ranking
This commit is contained in:
@@ -2980,6 +2980,7 @@ func heartbeatPayload(cfg config.Config, identity state.Identity, meshState *syn
|
|||||||
payload.Metadata["mesh_peer_recovery_report"] = meshPeerRecoveryReport(meshState, observedAt)
|
payload.Metadata["mesh_peer_recovery_report"] = meshPeerRecoveryReport(meshState, observedAt)
|
||||||
payload.Metadata["mesh_peer_connection_intent_report"] = meshPeerConnectionIntentReport(meshState, observedAt)
|
payload.Metadata["mesh_peer_connection_intent_report"] = meshPeerConnectionIntentReport(meshState, observedAt)
|
||||||
payload.Metadata["mesh_peer_connection_manager_report"] = meshPeerConnectionManagerReport(meshState, observedAt)
|
payload.Metadata["mesh_peer_connection_manager_report"] = meshPeerConnectionManagerReport(meshState, observedAt)
|
||||||
|
payload.Capabilities["mesh_peer_cache_endpoint_health_ranking"] = true
|
||||||
payload.Metadata["mesh_rendezvous_lease_report"] = meshRendezvousLeaseReport(meshState, identity, observedAt)
|
payload.Metadata["mesh_rendezvous_lease_report"] = meshRendezvousLeaseReport(meshState, identity, observedAt)
|
||||||
payload.Metadata["mesh_route_path_decision_report"] = meshRoutePathDecisionReport(meshState, identity, observedAt)
|
payload.Metadata["mesh_route_path_decision_report"] = meshRoutePathDecisionReport(meshState, identity, observedAt)
|
||||||
payload.Metadata["mesh_route_generation_report"] = meshRouteGenerationReport(meshState, identity, observedAt)
|
payload.Metadata["mesh_route_generation_report"] = meshRouteGenerationReport(meshState, identity, observedAt)
|
||||||
|
|||||||
@@ -1302,6 +1302,9 @@ func TestHeartbeatPayloadIncludesPeerRecoveryReportWithoutAdvertisedEndpoint(t *
|
|||||||
if payload.Capabilities["mesh_peer_connection_intent_planning"] != true {
|
if payload.Capabilities["mesh_peer_connection_intent_planning"] != true {
|
||||||
t.Fatalf("connection intent capability missing: %+v", payload.Capabilities)
|
t.Fatalf("connection intent capability missing: %+v", payload.Capabilities)
|
||||||
}
|
}
|
||||||
|
if payload.Capabilities["mesh_peer_cache_endpoint_health_ranking"] != true {
|
||||||
|
t.Fatalf("peer cache endpoint health capability missing: %+v", payload.Capabilities)
|
||||||
|
}
|
||||||
if _, ok := payload.Metadata["mesh_endpoint_report"]; ok {
|
if _, ok := payload.Metadata["mesh_endpoint_report"]; ok {
|
||||||
t.Fatalf("endpoint report should not be emitted without advertised endpoint: %+v", payload.Metadata)
|
t.Fatalf("endpoint report should not be emitted without advertised endpoint: %+v", payload.Metadata)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -353,6 +353,9 @@ degraded-path feedback as VPN fabric-session dialing.
|
|||||||
Peer cache snapshots expose best-candidate score reasons, giving diagnostics a
|
Peer cache snapshots expose best-candidate score reasons, giving diagnostics a
|
||||||
direct explanation for why a QUIC, WebSocket, relay, or fallback endpoint was
|
direct explanation for why a QUIC, WebSocket, relay, or fallback endpoint was
|
||||||
chosen.
|
chosen.
|
||||||
|
Heartbeat capabilities now advertise that peer-cache endpoint ranking consumes
|
||||||
|
health observations, allowing control plane and UI diagnostics to detect nodes
|
||||||
|
running the health-aware peer selection path.
|
||||||
|
|
||||||
Deliverables:
|
Deliverables:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user