Topology
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 | #2eb87a |
Healthy — all known members passing |
| Yellow | #d4a017 |
Degraded — some members passing |
| Red | #e8294a |
Unhealthy — no members passing |
| Grey | #4a4f6a |
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.