]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: stats: fix stot metric for listeners
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 4 Apr 2024 16:15:42 +0000 (18:15 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Mon, 22 Apr 2024 08:35:18 +0000 (10:35 +0200)
This commit is part of a series to align counters usage between
frontends/listeners on one side and backends/servers on the other.

On frontend side, "stot" is the total count of sessions for both proxies
and listeners. For proxies, fe_counters <cum_sess> is correctely used.
The bug is on listeners where <cum_conn> value is returned, which
instead indicates a number of connection. This commit fixes this by
returning <cum_sess> counter value for "stot" metric.

Along this fixes, use the opportunity to report "conn_tot" for listeners
using <cum_conn> value, as for frontend proxies.

This commit fixes a bug but must not be backported as stats output is
changed.

src/stats.c

index 3c44afe663b6856256bb5ecd125b5fbcb1acd06f..5d7dc1a95e7b8e29f2c1f1d3b1b25ac66d8dd1b8 100644 (file)
@@ -907,7 +907,7 @@ int stats_fill_li_stats(struct proxy *px, struct listener *l, int flags,
                                metric = mkf_u32(FO_CONFIG|FN_LIMIT, l->bind_conf->maxconn);
                                break;
                        case ST_F_STOT:
-                               metric = mkf_u64(FN_COUNTER, l->counters->cum_conn);
+                               metric = mkf_u64(FN_COUNTER, l->counters->cum_sess);
                                break;
                        case ST_F_BIN:
                                metric = mkf_u64(FN_COUNTER, l->counters->bytes_in);
@@ -945,6 +945,9 @@ int stats_fill_li_stats(struct proxy *px, struct listener *l, int flags,
                        case ST_F_TYPE:
                                metric = mkf_u32(FO_CONFIG|FS_SERVICE, STATS_TYPE_SO);
                                break;
+                       case ST_F_CONN_TOT:
+                               metric = mkf_u64(FN_COUNTER, l->counters->cum_conn);
+                               break;
                        case ST_F_WREW:
                                metric = mkf_u64(FN_COUNTER, l->counters->failed_rewrites);
                                break;