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?
© 2026