#tune.http.logurilen not working

Hi All,

When there is a get request with bigquery some of the portion of that query is not getting logged in haproxy logs.

I have tried to use tune.http.logurilen in global section, increased it from 1024 default to 2048 but there has been no change , the query in logs is getting cut off at the same place.

Tried few other get requests too happens with all.

Please Note : The query however reaches the server correctly intact , the problem is only with logging it completely in haproxy logs

Is there something that i’m missing.

Many Thanks

As mentioned in the tune.http.logurilen docmentation:

If you increase this limit, you may also increase the
‘log … len yyy’ parameter. Your syslog daemon may also need specific
configuration directives too.
You need to increase the len parameter of the log keyword, which defaults to 1024:

Also see log:
http://cbonte.github.io/haproxy-dconv/2.2/configuration.html#3.1-log

Hi Lukas

Many thanks for the information after setting the log len it has improved.

However when the query is too large ( In my case the query sent via Get/Post is around 200kb ) Haproxy immediately gives 400 error and doesn’t forward the request to the backend server.

If you could please let me know what parameter i should tweak how to accomodate such big query with out getting 400 error . It would be extremely helpful to me.

Many Many Thanks

You probably need to tune tune.bufsize

Thanks a lot for replying back Lukas

I have set the following in Global section but still getting 400 error . Any suggestions please

tune.bufsize 80000000
tune.maxrewrite 4000000
tune.http.maxhdr 25000

One other thing i noticed is when the query is small the header (gameapp.sg.local) is present

When the query is large the header (gameapp.sg.local) is absent in the haproxy logs

Many Thanks

Attached are 2 screen shots

Any suggestion please Lukas.

Thanks

Those are insane values, running this in production will probably crash haproxy quickly. Always read the documentation before you use config knobs.

You can use show errors on the admin socket to see why a 400 error is emitted.

That can’t be right, exactly which browser always you do send a 200kb long query? This is an extremely bad idea, you need to put this data in the payload.