Hi Malcolm, On Mon, Dec 17, 2012 at 05:38:11PM +0000, Malcolm Turnbull wrote: > Thomas, > > Simon Horms is working on some patches for us that will allow HAProxy > to poll an agent on each real server. > We also have a Windows Service that works with it: > http://www.loadbalancer.org/download/agent/Windows/LBCPUMonInstallation.msi > I'm sure he will post it to the list when he is done in the next few weeks: > > HA-Proxy Dynamic Health Check Implementation > 1. Goal > Design and implement dynamic health checks for HA-Proxy. > The health check should be performed by opening a TCP socket to a > pre-defined port and > reading an ascii string. The string should have one of the following forms: > i. An ascii representation of positive integer with a maximum value of 256. > e.g: ???42???. > ??? This represents an absolute weight. A weight of 0 will be translated to 1.
Why translate 0 to 1 ? I think it should be simpler to use zero as the "drain" value, people are already used to say that "weight 0" means the server is in soft stop mode. BTW I remind some discussions with a customer a few years ago on this subject where we realized that advertising absolute weights was not that great of an idea after all, because it removes any form of control on the load balancer and is incompatible with slowstart or the cli's "set weight" command. In practice I'm not sure whether people will use this, they'll probably better use the percentage weight. > ??? Values in this format other than 0 are ignored when slowstart is in > effect, in keeping > with the behaviour of the set weight command. > ii. An ascii representation of an positive integer percentage. > e.g. ???75%??? > ??? Values in this format will set the weight proportional to the > initial weight of a server as configured when haproxy starts. Does this support value "0%" then ? It would be useful to support values larger than 100% too and that haproxy will have to cap to the absolute value 256. I think the CLI does not accept them right now, but this is useful with VMs because when all your servers are running at 100% by default, you sometimes want to increase the load on one of them when you migrate to a larger VM. > iii. The string ???drain???. > ??? This will cause the weight of a server to be set to 0, and thus it > will not accept any > new connections other than those that are accepted via persistence. > iv. The string ???disable???. > ??? Put the server into maintenance mode. The server must be re-enabled > before any > further health checks will be performed. > 2. Deliverables > i. Patches posted to the appropriate haproxy mailing list. > ii. A list of patches and implementation overview via email to > LoadBalancer.Org OK, thanks for sharing these specs with us ! Cheers, Willy

