Re: [ANNOUNCE] haproxy-2.4.0

2021-05-26 Thread Willy Tarreau
On Wed, May 26, 2021 at 02:40:22PM +0200, William Dauchy wrote:
> Regarding prometheus, it should probably noted some major changes
> regarding some metrics, such as for health check, where the value is
> now located in a label, instead of the value of the metric itself:
> see also 
> http://git.haproxy.org/?p=haproxy.git;a=commit;h=de3c32638925c2071a5a84cbdafe2f112d2c4261

Thanks for clarifying, William. I couldn't have state that myself as I
don't know what a label is :-)  (but I don't need to know).

Cheers,
Willy



Re: [ANNOUNCE] haproxy-2.4.0

2021-05-26 Thread William Dauchy
On Fri, May 14, 2021 at 11:58 AM Willy Tarreau  wrote:
>   - interoperability / protocol support: WebSocket over HTTP/2 (RFC8441)
> is now supported on both sides, regardless of the version on the other
> side. The cache now supports the "Vary" header with a few commonly
> used headers, including "Accept-encoding" which gets normalized for
> optimal cache hit ratio. The Prometheus exporter got a significant
> liftup, requires less tricks on the Prometheus side, and supports
> listing only certain metrics for faster retrieval. Optional native
> support for Opentracing was also integrated (via USE_OT=1). The DNS
> resolvers now support talking to servers over TCP. Basic support for
> extracting information from MQTT and FIX protocol was added. Timeouts
> can now be adjusted on the fly and per-request in order to adapt to
> particuarly slow servers or special protocols.

Regarding prometheus, it should probably noted some major changes
regarding some metrics, such as for health check, where the value is
now located in a label, instead of the value of the metric itself:
see also 
http://git.haproxy.org/?p=haproxy.git;a=commit;h=de3c32638925c2071a5a84cbdafe2f112d2c4261
-- 
William



Re: [ANNOUNCE] haproxy-2.4.0

2021-05-21 Thread Vincent Bernat
 ❦ 17 mai 2021 17:48 +02, Artur:

> When can we expect prebuilt packages for Debian on haproxy.debian.net
> ?

They have been published. Buster, Bionic and Focal are available.
-- 
He jests at scars who never felt a wound.
-- Shakespeare, "Romeo and Juliet, II. 2"



Re: [ANNOUNCE] haproxy-2.4.0

2021-05-17 Thread Vincent Bernat
 ❦ 17 mai 2021 17:48 +02, Artur:

> When can we expect prebuilt packages for Debian on haproxy.debian.net
> ?

Hello,

Sometimes this week.
-- 
The secret source of humor is not joy but sorrow; there is no humor in Heaven.
-- Mark Twain



Re: [ANNOUNCE] haproxy-2.4.0

2021-05-17 Thread Artur
Hello,

Thank you for this new release.

When can we expect prebuilt packages for Debian on haproxy.debian.net ?

Le 14/05/2021 à 11:56, Willy Tarreau a écrit :
> HAProxy 2.4.0 was released on 2021/05/14.

-- 
Best regards,
Artur




Re: [ANNOUNCE] haproxy-2.4.0

2021-05-15 Thread Baptiste
WOW, amazing release!
so many new toys to play with and some basement for future improvements!

Thank you all.

Baptiste


Re: [ANNOUNCE] haproxy-2.4.0

2021-05-14 Thread Willy Tarreau
On Fri, May 14, 2021 at 02:23:21PM +0200, Tim Düsterhus wrote:
> Willy,
> 
> On 5/14/21 11:56 AM, Willy Tarreau wrote:
> > And of course there's all the invisible stuff being done on the internals
> > to improve the code, make it more extensible, more reliable or faster. I
> > think that's about it. If you contributed something that I missed here,
> > sorry for this, that's already a lot to figure out. Don't feel upset, and
> > just respond here to point it :-)
> 
> URI normalization is missing in your summary :-)

I'm absolutely certain I added it in my long list of notes, I must have
lost it in the middle of a deleted block, sorry about that :-/

> > As usual, I've been careful when uploading the new release and I would
> > not be surprised to see a 404 or two, so do not hesitate to report any
> > issue. Please be gentle for the doc, as it also requires some manual
> > post-release adaptations and will take a bit more time.
> 
> a) The table on haproxy.org is missing the 'Bugs' link for HAProxy 2.4.

Ah good catch, now fixed!

> b) Can you please add initial 'snapshot's for new development versions:
> https://www.haproxy.org/download/2.5/src/snapshot/? My haproxy-auth-request
> CI relies on the snapshots and I already added 2.5, thus failing the build:
> https://github.com/TimWolla/haproxy-auth-request/runs/2582881096

OK, now done and added to my release notes for next time.

Thanks!
Willy



Re: [ANNOUNCE] haproxy-2.4.0

2021-05-14 Thread Tim Düsterhus

Willy,

On 5/14/21 11:56 AM, Willy Tarreau wrote:

And of course there's all the invisible stuff being done on the internals
to improve the code, make it more extensible, more reliable or faster. I
think that's about it. If you contributed something that I missed here,
sorry for this, that's already a lot to figure out. Don't feel upset, and
just respond here to point it :-)


URI normalization is missing in your summary :-)


As usual, I've been careful when uploading the new release and I would
not be surprised to see a 404 or two, so do not hesitate to report any
issue. Please be gentle for the doc, as it also requires some manual
post-release adaptations and will take a bit more time.


a) The table on haproxy.org is missing the 'Bugs' link for HAProxy 2.4.
b) Can you please add initial 'snapshot's for new development versions: 
https://www.haproxy.org/download/2.5/src/snapshot/? My 
haproxy-auth-request CI relies on the snapshots and I already added 2.5, 
thus failing the build: 
https://github.com/TimWolla/haproxy-auth-request/runs/2582881096


Best regards
Tim Düsterhus



[ANNOUNCE] haproxy-2.4.0

2021-05-14 Thread Willy Tarreau
Hi,

HAProxy 2.4.0 was released on 2021/05/14. It added 34 new commits
after version 2.4-dev19. This completes 6 months of improvements and
cleanups split into 1687 commits from 36 participants. I'm pleased to
welcome these 7 new contributors who got their first commit merged
into 2.4, hoping they'll want to continue:

  Florian Apolloner, Jan Wagner, Maciej Zdeb, Maximilian Mader,
  Phil Scherer, Thayne McCombs, Evgeny Varnavskiy

And these 29 other ones who are not new as they already contributed
before 2.4:

  Adis Nezirovic, Aleksandar Lazic, Amaury Denoyelle, Baptiste Assmann
  Bertrand Jacquin, Christian Ruppert, Christopher Faulet,
  Daniel Corbett, David Carlier, Dragan Dosen, Emeric Brun, Eric Salama,
  Frédéric Lécaille, Gilchrist Dadaglo, Ilya Shipitsin, Jerome Magnin,
  Joao Morais, Julien Pivotto, Matthieu Guegan, Miroslav Zagorac,
  Moemen MHEDHBI, Olivier Houchard, Remi Tricot-Le Breton,
  Thierry Fournier, Tim Duesterhus, William Dauchy, William Lallemand,
  Willy Tarreau, Yves Lafon

It's really great to see more and more participation in multiple areas,
turning good ideas into usable features, and with increasing quality
overall. Let's continue like this, it's going into the right direction.

Speaking of quality, for the first time we really managed to enforce the
feature freeze, leading to most only harmless stuff getting merged past
that point. It allowed us to focus much better than before on regressions
and eliminate the usual last-minute bugs. This, combined with the work
done by Ilya and Tim on the CI, and with the continuously growing set of
regression tests, has significantly shortened the average lifetime of the
bugs (many of which not leaving the developer's computer anymore). And
this pays off: each and every -dev version among the 20 ones produced
was deployed on haproxy.org, and no single failure was observed since,
not even a crash, hang, leak, slow down or rendering issue. This makes
me think that 2.4 out of the box is probably more reliable than the
excellent 2.2 after 14 revisions. That's also why we release slightly
before the initially expected deadline, it almost seems there's nothing
left to be fixed! This proves that with some shared efforts it's possible
to improve, and I hope that we'll continue on this trend so that 2.5 gets
even better (yes, it's always possible).

This version brings a few fixes for bugs and build issues on top of -dev19,
very minor changes (addition of some ARM CPU targets in the Makefile to ease
portable builds, a few extra normalizers, a few example files, and a sorting
key for "show profiling"). Please see at the end of this message for the
details.

What's new in 2.4 compared to 2.3 ? Lots of cool stuff! The work was spread
on several fronts:
  - performance and latency: a lot of work was done on locking reduction,
bringing 2.4 a much lower latency than 2.3 had, and a higher scalability.
2.4 is NUMA-aware on Linux and will avoid binding to cross-socket cores
by default. Idle server-side connections are now reusable even when SNI,
proxy protocol or transparent proxy are used, saving costly round trips.
Lua now supports lock-free multi-threading. Idle frontend connections
will now be closed as soon as possible during reloads.

  - reliability: "strict-limits" is on by default, experimental features
are protected against accidental use from a copy-paste, a diagnostic
mode was added to report suspicious or uncommon constructs that could
be mistakes, new live debugging tools were added for better in-field
debugging. Backend idle connections will be closed before quitting
so that they don't consume source ports in TIME_WAIT.

  - management and integration: maps and ACLs now support atomic updates,
server-side SSL certificates can also be updated without reloading,
servers can be added/removed without reloading (still experimental),
more server settings can be edited at run time, global variables can
be listed/edited at run time, "defaults" section can now be named,
reused an inherited, line numbers and file names can be included in
any command, file paths can now be relative to the config file, some
new ".if/.elif/.else/.endif" config directives permit a smoother
transition between versions using a same config file (particularly
useful for automated rollbacks), 

  - interoperability / protocol support: WebSocket over HTTP/2 (RFC8441)
is now supported on both sides, regardless of the version on the other
side. The cache now supports the "Vary" header with a few commonly
used headers, including "Accept-encoding" which gets normalized for
optimal cache hit ratio. The Prometheus exporter got a significant
liftup, requires less tricks on the Prometheus side, and supports
listing only certain metrics for faster retrieval. Optional native
support for Opentracing was also integrated (via USE_OT=1). The DNS
resolvers now support talking to ser