diff --git a/lib/towerops/monitoring/supervisor.ex b/lib/towerops/monitoring/supervisor.ex index 2e956627..09c3956c 100644 --- a/lib/towerops/monitoring/supervisor.ex +++ b/lib/towerops/monitoring/supervisor.ex @@ -9,6 +9,8 @@ defmodule Towerops.Monitoring.Supervisor do alias Towerops.Snmp.PollerSupervisor alias Towerops.Snmp.PollerWorker + require Logger + def start_link(init_arg) do Supervisor.start_link(__MODULE__, init_arg, name: __MODULE__) end @@ -33,8 +35,22 @@ defmodule Towerops.Monitoring.Supervisor do Task.start(fn -> # Wait briefly for the supervisor tree to be fully initialized Process.sleep(100) - start_all_monitors() - start_all_snmp_pollers() + + try do + start_all_monitors() + Logger.info("Started all equipment monitors") + rescue + error -> + Logger.error("Failed to start monitors: #{inspect(error)}") + end + + try do + start_all_snmp_pollers() + Logger.info("Started all SNMP pollers") + rescue + error -> + Logger.error("Failed to start SNMP pollers: #{inspect(error)}") + end end) end diff --git a/lib/towerops/snmp/poller_worker.ex b/lib/towerops/snmp/poller_worker.ex index 3207ad20..430c21ff 100644 --- a/lib/towerops/snmp/poller_worker.ex +++ b/lib/towerops/snmp/poller_worker.ex @@ -86,10 +86,26 @@ defmodule Towerops.Snmp.PollerWorker do now = DateTime.truncate(DateTime.utc_now(), :second) # Poll all sensors - _ = poll_sensors(device.sensors, client_opts, now) + try do + poll_sensors(device.sensors, client_opts, now) + Logger.debug("Polled #{length(device.sensors)} sensors for #{equipment.name}") + rescue + error -> + Logger.error( + "Error polling sensors for #{equipment.name}: #{inspect(error)}\n#{Exception.format_stacktrace()}" + ) + end # Poll all interfaces - _ = poll_interfaces(device.interfaces, client_opts, now) + try do + poll_interfaces(device.interfaces, client_opts, now) + Logger.debug("Polled #{length(device.interfaces)} interfaces for #{equipment.name}") + rescue + error -> + Logger.error( + "Error polling interfaces for #{equipment.name}: #{inspect(error)}\n#{Exception.format_stacktrace()}" + ) + end # Schedule next poll schedule_next_poll(get_poll_interval(equipment))