Network overview
Set up your network monitoring in a few steps.
Sites represent your physical locations
Add routers, switches, and servers to your sites
Add network devices to monitor
TowerOps automatically monitors your devices and alerts you of issues
{@summary.health_score}
{if @uptime_percentage == 100.0, do: "100", else: :erlang.float_to_binary(@uptime_percentage, decimals: 1)}%
{@device_up} of {@device_count} devices up
{@device_count}
0, do: "text-red-600 dark:text-red-400", else: "text-gray-900 dark:text-white" ) ]}> {@total_alert_count}
<%= if @total_alert_count == 0 do %> All clear <% else %> View details → <% end %>
{format_number(@summary.subscribers.total)}
{format_mrr(@summary.subscribers.total_mrr)}/mo MRR
{format_mrr(@impact_summary.mrr_at_risk)}
0} class="mt-1 text-sm text-red-600 dark:text-red-400" > {format_number(@impact_summary.subscribers_affected)} subscribers affected
{@sites_count}
<% end %> <.link navigate={~p"/insights"} class="rounded-xl border border-gray-200 bg-white p-5 transition hover:shadow-md dark:border-white/10 dark:bg-gray-800/50" >{@summary.insights.critical + @summary.insights.warning + @summary.insights.info}
No active alerts — all systems operational
{alert.message}
<%!-- Gaiia impact --%> <%= if alert.gaiia_impact && alert.gaiia_impact["total_subscribers"] && alert.gaiia_impact["total_subscribers"] > 0 do %>{if change.device, do: change.device.name, else: "Unknown Device"}
{Calendar.strftime(change.changed_at, "%b %d %H:%M")} · {change.change_size} lines · {Enum.join( Enum.take(change.sections_changed, 2), ", " )}
{activity.summary}
{Calendar.strftime(activity.timestamp, "%b %d %H:%M")} <%= if Map.get(activity, :actor_name) do %> by {activity.actor_name} <% end %>
No active insights
{insight.description}
<% end %>