Report fabric peer session telemetry
This commit is contained in:
@@ -2492,7 +2492,7 @@ func heartbeatPayload(cfg config.Config, identity state.Identity, meshState *syn
|
||||
payload.Capabilities["fabric_data_session_v1"] = true
|
||||
}
|
||||
if cfg.VPNFabricSessionTransportEnabled {
|
||||
payload.Metadata["vpn_fabric_session_transport_report"] = map[string]any{
|
||||
report := map[string]any{
|
||||
"schema_version": "rap.vpn_fabric_session_transport_report.v1",
|
||||
"enabled": true,
|
||||
"transport": "fabric_session_websocket_binary_frames",
|
||||
@@ -2500,6 +2500,10 @@ func heartbeatPayload(cfg config.Config, identity state.Identity, meshState *syn
|
||||
"gated": true,
|
||||
"observed_at": observedAt.UTC().Format(time.RFC3339Nano),
|
||||
}
|
||||
if meshState != nil && meshState.VPNFabricSessionPeers != nil {
|
||||
report["peer_sessions"] = meshState.VPNFabricSessionPeers.Snapshot()
|
||||
}
|
||||
payload.Metadata["vpn_fabric_session_transport_report"] = report
|
||||
payload.Capabilities["vpn_fabric_session_transport"] = true
|
||||
payload.Capabilities["vpn_packet_batch_binary_frames"] = true
|
||||
}
|
||||
|
||||
@@ -709,7 +709,9 @@ func TestHeartbeatPayloadIncludesMeshEndpointReport(t *testing.T) {
|
||||
}, state.Identity{
|
||||
ClusterID: "cluster-1",
|
||||
NodeID: "node-a",
|
||||
}, nil, time.Date(2026, 4, 28, 12, 0, 0, 0, time.UTC))
|
||||
}, &syntheticMeshState{
|
||||
VPNFabricSessionPeers: mesh.NewFabricSessionPeerManager(),
|
||||
}, time.Date(2026, 4, 28, 12, 0, 0, 0, time.UTC))
|
||||
|
||||
report, ok := payload.Metadata["mesh_endpoint_report"].(map[string]any)
|
||||
if !ok {
|
||||
@@ -733,7 +735,9 @@ func TestHeartbeatPayloadIncludesMeshEndpointReport(t *testing.T) {
|
||||
if payload.Capabilities["vpn_fabric_session_transport"] != true || payload.Capabilities["vpn_packet_batch_binary_frames"] != true {
|
||||
t.Fatalf("vpn fabric session capabilities missing: %+v", payload.Capabilities)
|
||||
}
|
||||
if report, ok := payload.Metadata["vpn_fabric_session_transport_report"].(map[string]any); !ok || report["packet_payload"] != "rap.vpn_packet_batch.fabric.v1" {
|
||||
if report, ok := payload.Metadata["vpn_fabric_session_transport_report"].(map[string]any); !ok ||
|
||||
report["packet_payload"] != "rap.vpn_packet_batch.fabric.v1" ||
|
||||
report["peer_sessions"] == nil {
|
||||
t.Fatalf("vpn fabric session report missing: %+v", payload.Metadata)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user