defmodule DalaDev.Server.ClusterVizLive do @moduledoc """ LiveView for cluster visualization with D3.js. Provides real-time visualization of: - Cluster topology - Node health dashboard - Process distribution - LiveView message flow """ use Phoenix.LiveView, layout: {DalaDev.Server.Layouts, :app} alias DalaDev.ClusterViz @refresh_interval 5_000 def mount(_params, _session, socket) do if connected?(socket) do :timer.send_interval(@refresh_interval, self(), :refresh) end socket = socket |> assign(:topology, %{}) |> assign(:health, %{}) |> assign(:processes, %{}) |> assign(:flow, %{}) |> assign(:error, nil) {:ok, fetch_all(socket)} end def handle_info(:refresh, socket) do {:noreply, fetch_all(socket)} end def handle_event("refresh", _params, socket) do {:noreply, fetch_all(socket)} end def render(assigns) do ~H"""
<%= @error %>