diff --git a/monitor.py b/monitor.py index 53d6982..eb2b349 100644 --- a/monitor.py +++ b/monitor.py @@ -109,16 +109,20 @@ def mikrotik_ping(api, address: str) -> Optional[float]: }, ) + log.info("DEBUG ping %s raw response: %s", address, results) + rtts = [] for row in results: - # Каждая строка — один пинг-ответ - # "time" присутствует только если ответ получен - time_val = row.get(b"time", b"").decode().replace("ms", "").strip() - if time_val: - try: - rtts.append(float(time_val)) - except ValueError: - pass + log.info("DEBUG row: %s", row) + # Пробуем все возможные ключи где может быть rtt + for key in (b"time", b"avg-rtt", b"rtt", b"avg"): + time_val = row.get(key, b"").decode().replace("ms", "").strip() + if time_val: + try: + rtts.append(float(time_val)) + break + except ValueError: + pass if rtts: return sum(rtts) / len(rtts)