Началось всё с простого вопроса: почему по вечерам тормозит интернет — это провайдер или кто-то дома качает обновления? Ответа у роутера не было: в его веб-интерфейсе есть только текущая скорость, без истории.
На роутере стоит OpenWrt, а для него есть пакет prometheus-node-exporter-lua. Он лёгкий, написан на Lua и отдаёт стандартные метрики node_exporter: трафик по интерфейсам, загрузку процессора, память, количество соединений в conntrack.
opkg update
opkg install prometheus-node-exporter-lua \
prometheus-node-exporter-lua-netstat \
prometheus-node-exporter-lua-wifi_stations
По умолчанию экспортёр слушает только localhost, так что в /etc/config/prometheus-node-exporter-lua надо поменять listen_interface на lan.
На домашнем сервере Prometheus уже был, добавил одну задачу:
- job_name: router
scrape_interval: 15s
static_configs:
- targets: ['192.168.1.1:9100']
Для графика скорости хватает одного запроса:
rate(node_network_receive_bytes_total{device="wan"}[1m]) * 8
Через неделю графиков всё стало понятно: по вечерам канал загружен процентов на тридцать, а задержки растут на стороне провайдера. Зато обнаружилась другая интересная вещь — телевизор раз в сутки скачивает около двух гигабайт непонятно чего. Обновления, видимо. Отключил автообновление, но осадочек остался.
Из приятного: метрика wifi_station_signal_dbm показала, что ноутбук в дальней комнате почти всегда сидит на −78 dBm. Переставил точку доступа на полметра — стало −61.