Добрый день!
Да, есть несколько подходов для решения проблемы с получением метрик доступности устройств, даже если они временно недоступны. Вот несколько идей:
1. **Ping или проверка связи**: Вы можете реализовать простую проверку доступности через ping или TCP-соединение. Если устройство отвечает, вы возвращаете значение 1, если нет — 0. Это можно делать на уровне сервера, который передает данные на веб-интерфейс.
2. **Кэширование последнего значения**: Храните последнее известное состояние устройства в кэше. В случае, если устройство становится недоступным, вы можете возвращать последнее известное состояние (например, 1, если устройство было доступно ранее, и 0, если оно было недоступно).
3. **Регулярная проверка доступности**: Настройте регулярные проверки доступности устройства. Например, если устройство не отвечает на протяжении определенного времени (например, 5 минут), вы можете автоматически установить его статус как недоступный.
4. **Использование протоколов мониторинга**: Многие системы мониторинга (например, SNMP, Zabbix, Prometheus) могут отслеживать доступность устройств и возвратить метрики о состоянии. Если ваше устройство поддерживает такие протоколы, стоит рассмотреть их использование.
5. **Логирование ошибок и извещения**: Внедрите логи и уведомления, чтобы оперативно реагировать на недоступность устройств. Это будет полезно для дальнейшего анализа и устранения проблем.
6. **Адаптация интерфейса**: В случае временной недоступности устройства вы можете отображать информацию о том, что устройство недоступно, но все равно показывать статус (например, значение 0) в интерфейсе, чтобы пользователь понимал текущее состояние.
Каждое из предложенных решений имеет свои плюсы и минусы, поэтому лучший выбор будет зависеть от ваших конкретных требований и условий эксплуатации. Если у вас есть возможность интеграции с другими системами, это также может значительно упростить процесс мониторинга доступности устройств.