Topology
The topology view is an interactive graph showing the live state of your GSLB configuration — services, pools, members, filter chains, and health checks — as a connected node graph. Health badge colours update in real time via a WebSocket connection without a page reload.
Topology is accessible from the sidebar under Fleet → Topology, or directly at /topology.
Node Types
The graph contains five node types.
Services
Each service is rendered as a node labelled with its DNS name and display name. The node shows the routing mode — either the single algorithm (e.g. round-robin) or the filter chain steps (e.g. geo-ip → wrr).
When DNS traffic has been observed in the last 60 seconds, a green QPS badge and a grey average latency badge appear at the bottom of the service node (e.g. 12.3 qps / 0.8ms). Badges are absent — not zero — until the first 60-second measurement window completes.
Pools
Pool nodes display the pool name, aggregate health state, and member counts (healthy / total). A pool is coloured according to the health of its member set — see Health Colours below.
Members
Member nodes show the individual backend endpoint as IP:port, weight, and region tag. Each node carries a live health badge from the most recent health-check result.
An inline weight stepper (− / w:N / +) lets you adjust the WRR weight for a member directly on the canvas without opening the side panel. The change is saved immediately via the API; click − or + to decrement or increment the weight. The − button is disabled when weight is already 1.
Filter Chain nodes
When a service uses a filter chain, a satellite node is attached showing the ordered chain steps (e.g. geo-ip → asn → weighted-round-robin). These nodes are read-only in the topology view — edit the chain via the service settings page.
Health Check nodes
When a pool has an active health check configured, a satellite node is attached indicating that monitoring is running. These nodes are read-only in the topology view — edit the health check via the pool settings page.
Edge Types
Edge style | Meaning |
|---|---|
Solid | Service → Pool (assignment); Pool → Member (membership) |
Dashed | Service → FilterChain; Pool → HealthCheck (auxiliary relationships) |
Health Colours
Node badge colours reflect live health state.
Colour | Hex | Meaning |
|---|---|---|
Green |
| Healthy — all known members passing |
Yellow |
| Degraded — some members passing |
Red |
| Unhealthy — no members passing |
Grey |
| Unknown — no health data yet |
Disabled members render at reduced opacity with a DISABLED label regardless of health state.
Live Indicator
The top-right corner of the canvas shows a connection badge:
● LIVE(green) — WebSocket connected; health states update in real time.● OFFLINE(grey) — WebSocket disconnected; data reflects the last received snapshot.
Canvas Controls
Control | Action |
|---|---|
Scroll wheel or pinch | Zoom in / out |
Click-drag on background | Pan the canvas |
Controls panel (bottom-left) | Zoom in, zoom out, fit view, toggle full-screen |
Minimap (bottom-right) | Overview of the full graph; drag to navigate |
Click to Edit
Clicking a Service, Pool, or Member node opens a right-hand side panel for editing that resource. Changes are saved via the API and the graph re-renders immediately.
FilterChain and HealthCheck satellite nodes are read-only in the topology view.
Drag to Connect
Drag from the right-side handle of a Service node to the left-side handle of a Pool node to assign that pool to the service. The assignment is saved via PUT /api/v1/services/{id} and the edge is added optimistically.
To unassign a pool, select the service→pool edge and press Delete or Backspace. Only service→pool assignment edges can be deleted from the canvas; structural edges (Pool→Member) must be removed via the pool settings page.
Chaos Mode
Press the Chaos button (top-right) to enter chaos simulation mode. In this mode:
Clicking a healthy Member node marks it as a simulated failure (dashed red border,
simulated failurelabel).Pool aggregate health re-derives in real time based on the simulated state, letting you model "what if this member went down?" before a maintenance window.
Clicking a simulated member again restores it.
Press Exit or wait for the 30-second snapshot refresh to clear all simulations.
No API calls are made during chaos mode — it is a client-side overlay only.
Force-Fail (Disable Member)
To take a member out of rotation without deleting it, click the member node and set Status → Disabled in the side panel. Disabled members are excluded from DNS resolution and rendered at reduced opacity with a DISABLED label on the canvas.
Export as Terraform
Press the Export TF button (top-right) to generate HCL representing the current topology. The export covers:
nexus_pool— all pools withmin_healthynexus_health_check— health check per pool (fetched on demand when the button is pressed)nexus_member— all members with weight, priority, regionnexus_service— all services with algorithm or filter chainnexus_geo_rule— all geo rules
Cross-references use Terraform symbolic references (e.g. nexus_pool.pool_web.id) rather than raw UUIDs, so the output can be used directly with terraform import or as a starting point for a new Terraform configuration.
Sensitive fields (health check secrets, script content) are not included in the export.
Known Limitations
The topology view is WebUI-only. It is inherently visual and has no TUI or Terraform equivalent.
Auto-layout is recalculated on each page load and on every 30-second snapshot refresh. Manual node positions are not persisted between sessions.
QPS badges reflect activity in the last completed 60-second window on the node that served the request. In a multi-node cluster, each node tracks only the queries it handled; the badge shows per-node rates, not cluster-wide aggregates.