When 50%+ of the access points at one site simultaneously have Preseem QoE score <60, root cause is almost always a shared upstream problem (backhaul, transit, DNS, DHCP) — not per-AP RF. This rule emits one site-level insight that points the operator at the right investigation layer instead of letting them chase per-AP RF symptoms across many APs at the same site. - Towerops.Recommendations.Rules.UpstreamDegradation — single query pulls all matched Preseem APs grouped by site_id. Critical when 100% of APs at the site are degraded; warning otherwise. Lists every degraded AP with its QoE score in metadata. - Insight.@valid_types extended with upstream_degradation. - LLM prompt hint tells the model to instruct the operator to investigate upstream FIRST and to NOT chase per-AP RF symptoms. - UI: indigo card with degraded/total AP counts, an "Investigate upstream first" badge, and a clickable list of affected APs. - Wired into RecommendationsRunWorker FIRST in the @rules list so the upstream signal surfaces before per-AP RF rules. Also fixes two flakes: - device_live/show_test.exs is now async: false. It inserts to InterfaceStat which is a TimescaleDB hypertable; concurrent inserts deadlock on chunk-table locks under parallel SQL-sandbox tests (ERROR 40P01 deadlock_detected in setup). - Cleared an unused-variable warning in device_overheating_test.exs. 8 new tests for UpstreamDegradation. |
||
|---|---|---|
| .. | ||
| mix/tasks | ||
| snmpkit | ||
| towerops | ||
| towerops_web | ||
| snmp_lib.ex | ||
| snmp_mgr.ex | ||
| snmpkit.ex | ||
| towerops.ex | ||
| towerops_native.ex | ||
| towerops_web.ex | ||