Routing: 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 failure label).

  • 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 with min_healthy

  • nexus_health_check — health check per pool (fetched on demand when the button is pressed)

  • nexus_member — all members with weight, priority, region

  • nexus_service — all services with algorithm or filter chain

  • nexus_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.


Was this article helpful?