You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
Optional cluster-aware management UI when the connected librtmp2-server
reports cluster.enabled=true (overview, node list with READY/DRAINING/DOWN/
ISOLATED badges, drain/resume/remove actions, stream owner/epoch placement).
REST client methods for cluster status, nodes, streams, drain, resume, and
remove. Standalone servers remain fully supported without cluster config.
Fixed
Health probe failures are no longer treated as confirmed standalone mode:
Cluster navigation stays available and detection errors are surfaced instead
of silently hiding cluster UI.
Index lists streams before probing health so an unresponsive API host does
not burn two client timeouts on every page load; stream-listing failures keep
Cluster discoverable when cluster APIs may still work.
Cluster overview fetches status and nodes independently so one failing call
does not drop the other payload.
Quorum display distinguishes unknown/unavailable status from confirmed
quorum loss.
Drain / resume / remove call the mutation endpoint directly instead of
gating on a separate cluster-status probe; the server's own response is now
the sole authority on whether the action is rejected.
Node IDs are parsed with the same integer validation the API client uses.
Index reuses the already-fetched health payload for RTMPS flags instead of
issuing a second health request.
Stream-placement (/api/v1/cluster/streams) failures are surfaced to
operators instead of being swallowed.
Aggregate cluster metrics are read from the normalized status.load object.
Live stats keep cluster metric rows when the stream owner is unavailable
(owner shown as unavailable; relay / players_by_node still rendered).
Null / missing relay bandwidth is shown as unknown (n/a) instead of a
misleading zero.
Cluster overview reuses the cluster_status() response that already
confirmed cluster mode is enabled instead of re-querying it and discarding
that result on a transient second failure.
Remove stays available for down / isolated / leaving nodes; only
Drain and Resume are gated by node state.
Index still loads stream placement (/api/v1/cluster/streams) when the
health probe fails and treats a successful response as confirmed cluster
mode, so owner/epoch and live cluster stats stay available during that
partial outage.
Cluster overview honors an authoritative cluster_status().enabled=false
even when the earlier health probe still reported clustering enabled.
Live stats fall back to cluster_proxy.owner_node_id when the root owner_node_id is JSON null, matching the existing relay normalization.
Changed
Integration CI always checks out librtmp2-servermain (no same-named
feature-branch coupling).
Release version 0.1.5 → 0.1.6 (cluster UI + detection fixes).