Network diagnostics for dala Elixir clusters.
Provides tools to diagnose connectivity issues, measure latency, and verify EPMD health across cluster nodes.
Examples
# Ping a node
{:ok, latency_ms} = DalaDev.NetworkDiag.ping_node(:"dala_qa@192.168.1.5")
# Measure latency with multiple samples
{:ok, stats} = DalaDev.NetworkDiag.measure_latency(node, samples: 100)
# Check EPMD health
:ok = DalaDev.NetworkDiag.check_epmd_health(node)
# Trace distribution path
{:ok, path} = DalaDev.NetworkDiag.trace_distribution(node)
Summary
Functions
Check EPMD health on a node.
Get detailed network interface information for a node.
Measure latency to a node with multiple samples.
Ping a node to check connectivity.
Trace the distribution path to a node.
Types
Functions
Check EPMD health on a node.
Verifies:
- EPMD is running
- Port 4369 is reachable
- Node can register/deregister
Returns :ok or {:error, reason}.
Get detailed network interface information for a node.
Returns IP addresses, interface names, and reachability.
@spec measure_latency( node_ref(), keyword() ) :: {:ok, latency_stats()} | {:error, term()}
Measure latency to a node with multiple samples.
Options:
:samples- Number of ping samples (default: 10):timeout- Timeout per sample in ms (default: 5_000)
Returns latency statistics.
Ping a node to check connectivity.
Returns {:ok, latency_ms} on success, {:error, reason} on failure.
Options:
:timeout- Timeout in ms (default: 5_000)
Trace the distribution path to a node.
Shows the network path Elixir distribution takes to reach the node.
Returns a list of hops or error.