Monitoring

POST /network/monitoring/alerts

Get cluster network alerts

Aggregate network alerts from a page of registered nodes — errors, MTU issues, link-down, NTP drift, offline nodes

Request JSON Object:
  • after_id (integer) – keyset pagination: ID of last item on previous page

  • page (integer)

  • page_size (integer)

Status Codes:
Response JSON Object:
  • alerts[].category (string) – “errors”, “mtu”, “mtu_drift”, “link_down”, “node_offline”, “ntp”, “vxlan_fabric”

  • alerts[].device (string)

  • alerts[].message (string)

  • alerts[].node (string)

  • alerts[].severity (string) – “critical”, “warning”, “info”

  • count (integer) – total alerts generated (before truncation)

  • has_more (boolean)

  • next_id (integer) – next node cursor for pagination

  • page_size (integer)

  • summary.critical (integer)

  • summary.info (integer)

  • summary.warning (integer)

POST /network/monitoring/dashboard

Get cluster node network dashboard

Aggregate network summaries from all registered nodes into a cluster-wide dashboard

Request JSON Object:
  • after_id (integer) – keyset pagination: ID of last item on previous page

  • page (integer)

  • page_size (integer)

Status Codes:
Response JSON Object:
  • count (integer) – total nodes in DB

  • has_more (boolean)

  • next_id (integer) – pass as after_id for next page; 0 = no more

  • nodes[].data.active_vlan_count (integer) – VLANs

  • nodes[].data.active_vlan_ids[] (integer)

  • nodes[].data.active_vxlan_count (integer) – VXLANs

  • nodes[].data.active_vxlan_vnis[] (integer)

  • nodes[].data.available_congestion_control[] (string)

  • nodes[].data.bridge_count (integer) – Bridges — main bridges with IPs assigned

  • nodes[].data.collected_at (integer) – unix ms

  • nodes[].data.congestion_control (string) – Congestion control

  • nodes[].data.default_gateway (string) – Default gateway for the node

  • nodes[].data.default_gateway_dev (string) – interface used for default route

  • nodes[].data.fqdn (string)

  • nodes[].data.highest_error_bridge (string)

  • nodes[].data.highest_error_bridge_errors (integer)

  • nodes[].data.highest_error_nic (string) – Error counters

  • nodes[].data.highest_error_nic_breakdown (any) – which error types make up the count

  • nodes[].data.highest_error_nic_errors (integer)

  • nodes[].data.highest_mtu (integer) – MTU — highest MTU across all bridges, VXLANs, and physical interfaces

  • nodes[].data.highest_mtu_owner (string) – device name (e.g. “cloudbr0”, “vxlan100”, “eno1”)

  • nodes[].data.highest_mtu_type (string) – “bridge”, “vxlan”, or “interface”

  • nodes[].data.hostname (string)

  • nodes[].data.kernel_net (any) – Kernel network config (sysctls + socket buffer tuning)

  • nodes[].data.links_up (integer) – number of physical NICs with oper_state=up

  • nodes[].data.main_bridges[].active_vxlans (integer) – VXLAN interfaces bound to this bridge

  • nodes[].data.main_bridges[].errors.details[].count (integer)

  • nodes[].data.main_bridges[].errors.details[].counter (string)

  • nodes[].data.main_bridges[].errors.details[].reason (string)

  • nodes[].data.main_bridges[].errors.total (integer)

  • nodes[].data.main_bridges[].ips[] (string)

  • nodes[].data.main_bridges[].member_count (integer) – bound ports/interfaces

  • nodes[].data.main_bridges[].members[] (string)

  • nodes[].data.main_bridges[].mtu (integer)

  • nodes[].data.main_bridges[].name (string)

  • nodes[].data.main_bridges[].offloads (object)

  • nodes[].data.main_bridges[].state (string) – “up” or “down”

  • nodes[].data.mtu_mismatches[].actual (integer) – actual MTU found

  • nodes[].data.mtu_mismatches[].description (string) – human-readable explanation

  • nodes[].data.mtu_mismatches[].expected (integer) – expected MTU

  • nodes[].data.mtu_mismatches[].interface (string) – the interface/bridge with the issue

  • nodes[].data.mtu_mismatches[].peer_device (string) – the other device in the mismatch

  • nodes[].data.mtu_mismatches[].type (string) – mismatch category

  • nodes[].data.nics[].errors.details[].count (integer)

  • nodes[].data.nics[].errors.details[].counter (string)

  • nodes[].data.nics[].errors.details[].reason (string)

  • nodes[].data.nics[].errors.total (integer)

  • nodes[].data.nics[].mtu (integer)

  • nodes[].data.nics[].name (string)

  • nodes[].data.nics[].offloads (object)

  • nodes[].data.nics[].speed (integer) – Mbps, -1 if unknown

  • nodes[].data.nics[].state (string) – “up” or “down”

  • nodes[].data.node_ip (string)

  • nodes[].data.node_role (string) – “management” or “kvm_host”

  • nodes[].data.ntp_offset_ms (number)

  • nodes[].data.ntp_source (string)

  • nodes[].data.ntp_synced (boolean) – NTP

  • nodes[].data.offloads (object) – Offloads — from the top talker BRIDGE (ethtool -k)

  • nodes[].data.physical_nic_count (integer) – L1 Physical Interfaces

  • nodes[].data.ring_buffers[].nic_name (string)

  • nodes[].data.ring_buffers[].rx_current (integer) – currently configured

  • nodes[].data.ring_buffers[].rx_max (integer) – hardware maximum

  • nodes[].data.ring_buffers[].tx_current (integer)

  • nodes[].data.ring_buffers[].tx_max (integer)

  • nodes[].data.sockets (any) – Open socket / connection summary from /proc/net/sockstat

  • nodes[].data.state_breakdown (object) – Interface state breakdown — count of NICs by operational state

  • nodes[].data.tcp_retrans_segs (integer) – TCP retransmit counter from /proc/net/snmp

  • nodes[].data.top_talker_bridge (string) – Top talker bridge (bridge with most traffic)

  • nodes[].data.top_talker_bridge_bytes (integer)

  • nodes[].data.top_talker_bytes (integer) – RxBytes + TxBytes

  • nodes[].data.top_talker_nic (string) – highest traffic physical NIC name

  • nodes[].data.top_talker_speed_mbps (integer) – from /sys/class/net/{dev}/speed

  • nodes[].data.total_bridge_errors (integer) – sum across all bridges

  • nodes[].data.total_nic_errors (integer) – sum across all physical NICs

  • nodes[].data.total_packet_drops (integer) – Aggregate packet stats across all physical NICs

  • nodes[].data.total_packet_errors (integer) – sum of rx_errors + tx_errors

  • nodes[].error (string)

  • nodes[].fqdn (string)

  • nodes[].node_ip (string)

  • nodes[].node_role (string)

  • nodes[].status (string) – “online”, “offline”, “unconfigured-noIP”, “unconfigured-noFQDN”

  • page_size (integer)

  • summary.kvm_nodes (integer)

  • summary.management_nodes (integer)

  • summary.mtu_drifts[].device_name (string) – e.g. “cloudbr0”

  • summary.mtu_drifts[].device_type (string) – “bridge” or “interface”

  • summary.mtu_drifts[].expected_mtu (integer) – from FabricConfig; 0 = peer-drift only

  • summary.mtu_drifts[].max_mtu (integer)

  • summary.mtu_drifts[].min_mtu (integer)

  • summary.mtu_drifts[].per_node[].fqdn (string)

  • summary.mtu_drifts[].per_node[].mtu (integer)

  • summary.network_health_pct (integer) – Top cards — health scores (percentage 0-100)

  • summary.nodes_with_mtu_issues (integer) – count of nodes that have at least one mismatch

  • summary.offline_nodes (integer)

  • summary.online_nodes (integer)

  • summary.total_bridges (integer) – Top cards — bridges & overlays

  • summary.total_errors (integer) – Top cards — errors

  • summary.total_links_down (integer) – TotalPhysicalNICs - TotalLinksUp

  • summary.total_links_up (integer) – sum of up links across cluster

  • summary.total_mtu_mismatches (integer) – sum of all per-node MTU mismatches across cluster

  • summary.total_nodes (integer)

  • summary.total_physical_nics (integer) – Top cards — physical links

  • summary.total_traffic_bytes (integer) – Top cards — traffic

  • summary.total_vlans (integer)

  • summary.total_vxlans (integer)

  • summary.unconfigured_nodes (integer)

  • summary.vxlan_fabric_healthy (integer) – KVM nodes with VXLANs active / online KVM nodes

POST /network/monitoring/frr/dashboard

Get FRR dashboard

Retrieve an aggregated FRR dashboard with BGP router status from all registered nodes

Request JSON Object:
  • after_id (integer) – keyset pagination: ID of last item on previous page

  • page (integer)

  • page_size (integer)

Status Codes:
Response JSON Object:
  • count (integer) – total routers in DB

  • has_more (boolean)

  • next_id (integer) – pass as after_id for next page; 0 = no more

  • nodes[].as (integer)

  • nodes[].bfd_peers[].diagnostic (string)

  • nodes[].bfd_peers[].downtime (integer)

  • nodes[].bfd_peers[].local (string)

  • nodes[].bfd_peers[].multihop (boolean)

  • nodes[].bfd_peers[].peer (string)

  • nodes[].bfd_peers[].status (string)

  • nodes[].bfd_peers[].uptime (integer)

  • nodes[].bgp (any)

  • nodes[].error (string)

  • nodes[].evpn_routes.imet (integer)

  • nodes[].evpn_routes.macip (integer)

  • nodes[].evpn_routes.prefix (integer)

  • nodes[].evpn_routes.total_routes (integer)

  • nodes[].fqdn (string)

  • nodes[].frr (any)

  • nodes[].ip_address (string)

  • nodes[].name (string)

  • nodes[].ospf (any)

  • nodes[].ospf_neighbors[].neighbor_id (string)

  • nodes[].ospf_neighbors[].state (string)

  • nodes[].sdn_last_error (string)

  • nodes[].sdn_status (string) – Drift-detection state from bmc_infos.sdn_status (separate from Status above: a node can be Status=online (FRR daemon up + responsive) yet SDNStatus=failed (BGP not Established or vtep0 missing). UI’s EVPN Health column renders this field — chore_drift_detection D5/D6/D7.

  • nodes[].status (string) – online/offline — FRR daemon health

  • nodes[].vnis[].arp_table[].age_mins (number)

  • nodes[].vnis[].arp_table[].ip (string)

  • nodes[].vnis[].arp_table[].mac (string)

  • nodes[].vnis[].arp_table[].remote_vtep (string)

  • nodes[].vnis[].arp_table[].state (string)

  • nodes[].vnis[].arp_table[].type (string) – “local” or “remote”

  • nodes[].vnis[].bridge (string)

  • nodes[].vnis[].export_rts[] (string)

  • nodes[].vnis[].import_rts[] (string)

  • nodes[].vnis[].l2_vnis[] (integer)

  • nodes[].vnis[].local_vtep (string)

  • nodes[].vnis[].mac_table[].age_mins (number)

  • nodes[].vnis[].mac_table[].mac (string)

  • nodes[].vnis[].mac_table[].remote_vtep (string)

  • nodes[].vnis[].mac_table[].source_port (string) – local interface

  • nodes[].vnis[].mac_table[].type (string) – “local” or “remote”

  • nodes[].vnis[].num_arp_entries (integer)

  • nodes[].vnis[].num_macs (integer)

  • nodes[].vnis[].num_remote_vteps (integer)

  • nodes[].vnis[].rd (string)

  • nodes[].vnis[].remote_vtep_info[].connection_source (string)

  • nodes[].vnis[].remote_vtep_info[].neighbors[] (string)

  • nodes[].vnis[].remote_vtep_info[].state (string)

  • nodes[].vnis[].remote_vtep_info[].vtep_ip (string)

  • nodes[].vnis[].remote_vteps[] (string)

  • nodes[].vnis[].router_mac (string)

  • nodes[].vnis[].state (string)

  • nodes[].vnis[].svi_if (string)

  • nodes[].vnis[].tenant_vrf (string)

  • nodes[].vnis[].type (string)

  • nodes[].vnis[].vlan (integer) – Extended VNI fields (from VtyshEVPNVNI)

  • nodes[].vnis[].vni (integer)

  • nodes[].vnis[].vrf (string)

  • nodes[].vnis[].vxlan_if (string)

  • nodes[].vnis[].vxlan_tunnel.admin_state (string)

  • nodes[].vnis[].vxlan_tunnel.interface_name (string)

  • nodes[].vnis[].vxlan_tunnel.mac_address (string)

  • nodes[].vnis[].vxlan_tunnel.mtu (integer)

  • nodes[].vnis[].vxlan_tunnel.status (string)

  • page_size (integer)

  • summary.bfd_peers_down (integer)

  • summary.bfd_peers_up (integer)

  • summary.established_peers (integer)

  • summary.full_ospf_adjacencies (integer)

  • summary.l2_vnis (integer)

  • summary.l3_vnis (integer)

  • summary.offline_nodes (integer)

  • summary.online_nodes (integer)

  • summary.total_arp_entries (integer)

  • summary.total_bfd_peers (integer) – BFD counters

  • summary.total_macs (integer)

  • summary.total_msg_rcvd (integer) – BGP message statistics (cluster-wide aggregates)

  • summary.total_msg_sent (integer)

  • summary.total_nodes (integer)

  • summary.total_ospf_neighbors (integer)

  • summary.total_peers (integer)

  • summary.total_routes (integer)

  • summary.total_session_flaps (integer)

  • summary.total_vnis (integer)

GET /network/monitoring/node-summary

Get local node network summary

Collect network summary (NICs, bridges, VLANs, VXLANs, offloads, NTP) from the local node

Status Codes:
Response JSON Object:
  • active_vlan_count (integer) – VLANs

  • active_vlan_ids[] (integer)

  • active_vxlan_count (integer) – VXLANs

  • active_vxlan_vnis[] (integer)

  • available_congestion_control[] (string)

  • bridge_count (integer) – Bridges — main bridges with IPs assigned

  • collected_at (integer) – unix ms

  • congestion_control (string) – Congestion control

  • default_gateway (string) – Default gateway for the node

  • default_gateway_dev (string) – interface used for default route

  • fqdn (string)

  • highest_error_bridge (string)

  • highest_error_bridge_errors (integer)

  • highest_error_nic (string) – Error counters

  • highest_error_nic_breakdown (any) – which error types make up the count

  • highest_error_nic_errors (integer)

  • highest_mtu (integer) – MTU — highest MTU across all bridges, VXLANs, and physical interfaces

  • highest_mtu_owner (string) – device name (e.g. “cloudbr0”, “vxlan100”, “eno1”)

  • highest_mtu_type (string) – “bridge”, “vxlan”, or “interface”

  • hostname (string)

  • kernel_net (any) – Kernel network config (sysctls + socket buffer tuning)

  • links_up (integer) – number of physical NICs with oper_state=up

  • main_bridges[].active_vxlans (integer) – VXLAN interfaces bound to this bridge

  • main_bridges[].errors.details[].count (integer)

  • main_bridges[].errors.details[].counter (string)

  • main_bridges[].errors.details[].reason (string)

  • main_bridges[].errors.total (integer)

  • main_bridges[].ips[] (string)

  • main_bridges[].member_count (integer) – bound ports/interfaces

  • main_bridges[].members[] (string)

  • main_bridges[].mtu (integer)

  • main_bridges[].name (string)

  • main_bridges[].offloads (object)

  • main_bridges[].state (string) – “up” or “down”

  • mtu_mismatches[].actual (integer) – actual MTU found

  • mtu_mismatches[].description (string) – human-readable explanation

  • mtu_mismatches[].expected (integer) – expected MTU

  • mtu_mismatches[].interface (string) – the interface/bridge with the issue

  • mtu_mismatches[].peer_device (string) – the other device in the mismatch

  • mtu_mismatches[].type (string) – mismatch category

  • nics[].errors.details[].count (integer)

  • nics[].errors.details[].counter (string)

  • nics[].errors.details[].reason (string)

  • nics[].errors.total (integer)

  • nics[].mtu (integer)

  • nics[].name (string)

  • nics[].offloads (object)

  • nics[].speed (integer) – Mbps, -1 if unknown

  • nics[].state (string) – “up” or “down”

  • node_ip (string)

  • node_role (string) – “management” or “kvm_host”

  • ntp_offset_ms (number)

  • ntp_source (string)

  • ntp_synced (boolean) – NTP

  • offloads (object) – Offloads — from the top talker BRIDGE (ethtool -k)

  • physical_nic_count (integer) – L1 Physical Interfaces

  • ring_buffers[].nic_name (string)

  • ring_buffers[].rx_current (integer) – currently configured

  • ring_buffers[].rx_max (integer) – hardware maximum

  • ring_buffers[].tx_current (integer)

  • ring_buffers[].tx_max (integer)

  • sockets (any) – Open socket / connection summary from /proc/net/sockstat

  • state_breakdown (object) – Interface state breakdown — count of NICs by operational state

  • tcp_retrans_segs (integer) – TCP retransmit counter from /proc/net/snmp

  • top_talker_bridge (string) – Top talker bridge (bridge with most traffic)

  • top_talker_bridge_bytes (integer)

  • top_talker_bytes (integer) – RxBytes + TxBytes

  • top_talker_nic (string) – highest traffic physical NIC name

  • top_talker_speed_mbps (integer) – from /sys/class/net/{dev}/speed

  • total_bridge_errors (integer) – sum across all bridges

  • total_nic_errors (integer) – sum across all physical NICs

  • total_packet_drops (integer) – Aggregate packet stats across all physical NICs

  • total_packet_errors (integer) – sum of rx_errors + tx_errors

GET /network/monitoring/vxlan

List VXLAN interfaces

Retrieve all VXLAN interfaces on the local hypervisor

Status Codes:
Response JSON Object:
  • count (integer)

  • vxlans[].admin_state (string) – “up”, “down” - administratively configured

  • vxlans[].allmulticast (boolean) – true if allmulticast enabled

  • vxlans[].bridge_name (string) – Bridge this VXLAN belongs to

  • vxlans[].group (string) – Multicast group (if used)

  • vxlans[].learning (boolean) – Should be false for EVPN

  • vxlans[].link (string) – Underlying interface

  • vxlans[].local_ip (string)

  • vxlans[].mtu (integer)

  • vxlans[].name (string)

  • vxlans[].oper_state (string) – “up”, “down”, “unknown” - actual link state

  • vxlans[].port (integer) – VXLAN UDP port (default 4789)

  • vxlans[].promiscuous (boolean) – true if in promiscuous mode

  • vxlans[].stats (any) – Detailed link statistics

  • vxlans[].tx_queue_len (integer)

  • vxlans[].vni (integer)

GET /network/monitoring/vxlan/{name}

Validate a VXLAN interface

Validate that a VXLAN interface exists and has correct parameters (nolearning, MTU, VTEP IP). Accepts interface name (e.g. “vxlan100”) or plain VNI number.

Parameters:
  • name (string) – VXLAN interface name (e.g. vxlan100) or VNI number

Status Codes:
GET /network/monitoring/vxlan/{name}/status

Get VXLAN status by name

Retrieve detailed status and link statistics for a specific VXLAN interface

Parameters:
  • name (string) – VXLAN interface name (e.g. vxlan100) or VNI number

Status Codes:
Response JSON Object:
  • admin_state (string) – “up”, “down” - administratively configured

  • allmulticast (boolean) – true if allmulticast enabled

  • bridge_name (string) – Bridge this VXLAN belongs to

  • group (string) – Multicast group (if used)

  • learning (boolean) – Should be false for EVPN

  • link (string) – Underlying interface

  • local_ip (string)

  • mtu (integer)

  • name (string)

  • oper_state (string) – “up”, “down”, “unknown” - actual link state

  • port (integer) – VXLAN UDP port (default 4789)

  • promiscuous (boolean) – true if in promiscuous mode

  • stats (any) – Detailed link statistics

  • tx_queue_len (integer)

  • vni (integer)