BUG/MINOR: stats: fix stot metric for listeners

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.
This commit is contained in:
Amaury Denoyelle 2024-04-04 18:15:42 +02:00
parent c02ec9a9db
commit 282a8e9f52
1 changed files with 4 additions and 1 deletions

View 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); metric = mkf_u32(FO_CONFIG|FN_LIMIT, l->bind_conf->maxconn);
break; break;
case ST_F_STOT: case ST_F_STOT:
metric = mkf_u64(FN_COUNTER, l->counters->cum_conn); metric = mkf_u64(FN_COUNTER, l->counters->cum_sess);
break; break;
case ST_F_BIN: case ST_F_BIN:
metric = mkf_u64(FN_COUNTER, l->counters->bytes_in); 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: case ST_F_TYPE:
metric = mkf_u32(FO_CONFIG|FS_SERVICE, STATS_TYPE_SO); metric = mkf_u32(FO_CONFIG|FS_SERVICE, STATS_TYPE_SO);
break; break;
case ST_F_CONN_TOT:
metric = mkf_u64(FN_COUNTER, l->counters->cum_conn);
break;
case ST_F_WREW: case ST_F_WREW:
metric = mkf_u64(FN_COUNTER, l->counters->failed_rewrites); metric = mkf_u64(FN_COUNTER, l->counters->failed_rewrites);
break; break;