This is sort of a two-part bug. Or, rather, a trivial bug and then an extremely basic feature request.
First, load-balancing haproxy
(in 1.5) has no ops-mode (show
, etc) commands at all right now, probably because the commit to rename reverse-proxy to haproxy mis-named the ops-mode XML file; it dropped the .xml
from the filename.
Second, even without that bug, however, there’s basically no way to know what’s happening under the hood with HAProxy with VyOS. It’ll probably tell you if backends are healthy, but connection rates, errors, etc are all completely invisible. I just ran a load test and shoved 120k requests per second through HAProxy on VyOS, and the backend for show haproxy
(/usr/libexec/vyos/op_mode/load-balancing_haproxy.py show
) shows no traffic at all:
/usr/libexec/vyos/op_mode/load-balancing_haproxy.py show
Proxy name Role Status Req rate Resp time Last change
------------ -------- -------- ---------- ----------- -------------
web80 FRONTEND OPEN 0
web443 FRONTEND OPEN 0
web80 BACKEND UP 0 ms 27m29s
web443 BACKEND UP 0 ms 27m29s
web80 web1 UP 0 ms 27m29s
web80 web2 UP 0 ms 27m29s
web443 web1 UP 0 ms 27m29s
web443 web2 UP 0 ms 27m29s
top
shows that haproxy on this machine was burning 14 cores at the time, so I’m pretty sure it was involved. I’ve verified that it at least reports health-check status right, but that’s about all that it seems to do usefully. What is the point of an un-managed, un-managable proxy? Can we at least add a simple way to expose HAProxy’s stats interface on a specific IP/port?