Beta. Only nodes with Also offer beta versions ticked (Settings → Updates) are offered this.
A large installation pays once, not per object
1.100.1 fixed the Services page taking six seconds with 62 services (#16). Looking for the next such thing turned up five, all measured with 180 services on the 1.100.1 image:
- The traffic sparklines. The Services page and the Overview fetched the whole day of traffic for every pool, 4.5 MB, and drew 10 MB of SVG from it for lines 110 pixels wide. They now ask for the two lines they draw at about a point a pixel: 100 kB, and under 1 MB of SVG. The counts beside each line are still totals over every minute, and a spike stays a spike, because each point is the busiest minute of its stretch.
- The ten-second status poll. Every open tab fetched 67 kB every ten seconds, almost all of it a tag for every shared object, which only the node comparison reads. The browser now asks for the status without them, and the nodes ask each other without them too, fetching the tags only when they disagree.
- The traffic history on disk.
traffic.jsonwas rewritten in full every minute: 4.5 MB a time with 180 pools, 6.5 GB a day on an SD card or eMMC. It is now written every ten minutes and when the service stops. A crash loses at most ten minutes of sparkline history, nothing else. - The History page. Every visit parsed all fifty snapshots and compared each with the one before. A snapshot never changes once written, so what was read is kept; a visit now reads only a new snapshot.
- The URL probes. Published URLs were probed one after another, each able to wait out its own timeout, so a dozen hung backends made a round longer than the minute between rounds. They are probed eight at a time.
The per-object tags were also capped at 4,000 objects, about 800 services, and above that the Cluster page silently looked as if a node was on an older version. The cap is 20,000 now, and the page says so when it is reached.
After upgrading
Nothing to do. A node on this beta still compares correctly with nodes on 1.100.1; they just send each other more than they need to until they match.
Image: ghcr.io/avandeputte/haproxy-manager:1.100.2-beta.1