Я пытаюсь найти способ перезапустить HAProxy без очистки всех моих счетчиков. Я пробовал горячую реконфигурацию, но ни одна из следующих команд не работает:
haproxy -f /path/to/haproxy.cfg -p /path/to/haproxy.pid -sf $(cat /path/to/haproxy.pid)
haproxy -f /path/to/haproxy.cfg -p /path/to/haproxy.pid -st $(cat /path/to/haproxy.pid)
Обе команды перезагружают конфигурацию, но мои счетчики все еще очищаются. Возможно, это невозможно?
По сути, перезагрузка - это интересный способ создания новых процессов. В HAProxy статистика хранится только в каждом процессе и никогда нигде не сохраняется. Это потому, что HAProxy обычно chroot
находится в пустом каталоге, в который он не может ничего писать. Таким образом, нет возможности внедрить статистику / счетчики в новые процессы.
Это кстати. это также проблема, с которой вы столкнетесь, если установите nbproc> 1. Поскольку каждый процесс хранит свою статистику, счетчики и липкие таблицы, это чистая вероятность, в каком процессе вы закончите и какие счетчики процесса вы наблюдаете. Этим нельзя делиться. (кроме липких таблиц, где есть протокол, но я считаю, что это все еще не работает с nbproc)
Какая у вас версия? Я считаю, что 1.4 имеет возможность сохранять счетчики после перезапуска.