From e1cfc4ece10cedfa70e208c922d27cf16d26b6bc Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Tue, 10 Mar 2026 11:34:45 -0500 Subject: [PATCH] feat: add observability logging for invalid MAC addresses - Log when normalize_mac drops invalid MAC addresses from SNMP data - Helps diagnose data quality issues from network equipment --- lib/towerops/gaiia/subscriber_matching.ex | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/towerops/gaiia/subscriber_matching.ex b/lib/towerops/gaiia/subscriber_matching.ex index b156c6c3..c59231f8 100644 --- a/lib/towerops/gaiia/subscriber_matching.ex +++ b/lib/towerops/gaiia/subscriber_matching.ex @@ -460,13 +460,19 @@ defmodule Towerops.Gaiia.SubscriberMatching do defp normalize_mac(nil), do: nil defp normalize_mac(mac) do - mac - |> String.downcase() - |> String.replace(~r/[^0-9a-f]/, "") - |> case do + normalized = + mac + |> String.downcase() + |> String.replace(~r/[^0-9a-f]/, "") + + case normalized do <> -> "#{a}:#{b}:#{c}:#{d}:#{e}:#{f}" + invalid when invalid != "" -> + Logger.debug("Dropping invalid MAC address from SNMP data: #{inspect(mac)} (normalized: #{invalid})") + nil + _ -> nil end