Robin H. Johnson
2018-10-26 18:49:05 UTC
Hi,
This is something I have a vague recollection of existing somewhere, but
didn't find any leads in documentation or source.
Right now, if you want to use load feedback for weights, you either need
something entirely out-of-band from the servers back to HAProxy, or you
have to use the agent-check option and run a separate health agent.
The agent-check protocol is described only in the configuration.txt
'agent-check' section, and is conveyed entirely over pure TCP, no HTTP.
It supports conveying useful health including weight and DRAIN/MAINT
states.
The http-check behavior only supports matching strings or status codes,
and does not convey any load feedback.
I would like to propose a new http-agent-check option, with two usage
modes.
1. health-check mode: this connects like the existing agent-check, but
sends does HTTP request & response rather than pure TCP.
2. inline mode: if the server has best-case knowledge about it's status,
and HTTP headers are used for the feedback information, then it
should be possible to include the feedback in an HTTP response header
as part of normal queries. The header processing would detect & feed
the data into the health system during normal traffic.
Question: where & how should the feedback information be encoded in the
response?
1. HTTP payload
2. Single HTTP header
3. Multiple HTTP headers
This is something I have a vague recollection of existing somewhere, but
didn't find any leads in documentation or source.
Right now, if you want to use load feedback for weights, you either need
something entirely out-of-band from the servers back to HAProxy, or you
have to use the agent-check option and run a separate health agent.
The agent-check protocol is described only in the configuration.txt
'agent-check' section, and is conveyed entirely over pure TCP, no HTTP.
It supports conveying useful health including weight and DRAIN/MAINT
states.
The http-check behavior only supports matching strings or status codes,
and does not convey any load feedback.
I would like to propose a new http-agent-check option, with two usage
modes.
1. health-check mode: this connects like the existing agent-check, but
sends does HTTP request & response rather than pure TCP.
2. inline mode: if the server has best-case knowledge about it's status,
and HTTP headers are used for the feedback information, then it
should be possible to include the feedback in an HTTP response header
as part of normal queries. The header processing would detect & feed
the data into the health system during normal traffic.
Question: where & how should the feedback information be encoded in the
response?
1. HTTP payload
2. Single HTTP header
3. Multiple HTTP headers
--
Robin Hugh Johnson
E-Mail : ***@orbis-terrarum.net
Home Page : http://www.orbis-terrarum.net/?l=people.robbat2
GnuPG FP : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85
Robin Hugh Johnson
E-Mail : ***@orbis-terrarum.net
Home Page : http://www.orbis-terrarum.net/?l=people.robbat2
GnuPG FP : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85