Re: Count retries and redispatches

From: Krzysztof Oledzki <ole#ans.pl>
Date: Fri, 19 Oct 2007 00:01:16 +0200 (CEST)

On Thu, 18 Oct 2007, Willy Tarreau wrote:

> Hi Krzysztof,
>
> On Sun, Sep 23, 2007 at 03:29:21PM +0200, Krzysztof Oledzki wrote:
>> Hello,
>>
>> It is important to know how does your instalation perform. Haproxy masks
>> connection errors, which is extremely good for a client but it is bad for
>> an administrator (except people believing that "ignorance is a bless").
>>
>> Attached patch adds retries and redispatches counters, so now haproxy:
>>
>> 1. For server:
>> - counts retried connections (masked or not)
>>
>> 2. For backends:
>> - counts retried connections (masked or not) that happened to
>> a slave server
>> - counts redispatched connections
>> - does not count successfully redispatched connections as backend errors.
>> Errors are increased only when client does not get a valid response,
>> in other words: with failed redispatch or when this function is not
>> enabled.
>>
>> 3. For statistics:
>> - display Retr (retries) and Redis (redispatches) as a "Warning"
>> information.
>>
>> I think it is a post-1.3.12 material.
>
> I've merged your work in 1.3.13, along with a very minor fix : the backend's
> retries was not increased when srv->retries was increased. I'll most likely
> release 1.3.13 with all that this evening.

I was trying to find what exactly did you change, unfortunately gitweb from 1wt does not support commitdiff (instead of diff I get a list of old and new files). I was also trying to download full git repository with:

git clone http://git.1wt.eu/haproxy-1.3.git haproxy-1.3.git

but I ended with:

error: The requested URL returned error: 502 (curl_result = 22, http_code = 502, sha1 = 3706cecc373ca19dbef788bbcc08306d59300598) Getting pack list for http://git.1wt.eu/haproxy-1.3.git Getting index for pack 52ae90d594ec7b801faf5508d8e67c7467e6b457 Getting index for pack 79486d69b47bab3775a19e73d70d7767646c648f Getting pack list for http://git.1wt.eu/haproxy-1.2.git/ error: Unable to find 3706cecc373ca19dbef788bbcc08306d59300598 under http://git.1wt.eu/haproxy-1.3.git Cannot obtain needed tree 3706cecc373ca19dbef788bbcc08306d59300598 while processing commit 8d9246d282218422ccfa005731c6e0b2ff6cf75f.

Anyway, comparing manually downloaded files from

   http://haproxy.1wt.eu/git/?p=haproxy-1.3.git;a=commitdiff;h=1cf36ba3ae9e532ac06aaf2a30e6c217d8d1f878 shows that:

         if (t->srv)
                 t->srv->failed_conns++;
-       t->be->failed_conns++;
+       t->be->redispatches++;

         t->flags &= ~(SN_DIRECT | SN_ASSIGNED | SN_ADDR_SET);
         t->srv = NULL; /* it's left to the dispatcher to choose a server */


                                 if (t->srv)
                                         t->srv->failed_conns++;
-                               t->be->failed_conns++;
+                               t->be->redispatches++;

                                 t->flags &= ~(SN_DIRECT | SN_ASSIGNED | SN_ADDR_SET);
                                 t->srv = NULL; /* it's left to the dispatcher to choose a server */


This is exactly what I send. So, it seems that if there is a fix needed it may be missing.

Best regards,

                                 Krzysztof Olędzki Received on 2007/10/19 00:01

This archive was generated by hypermail 2.2.0 : 2007/11/04 19:21 CET