MINOR: stats: report the listener's protocol along with the address in stats
When "optioon socket-stats" is used in a frontend, its listeners have
their own stats and will appear in the stats page. And when the stats
page has "stats show-legends", then a tooltip appears on each such
socket with ip:port and ID. The problem is that since QUIC arrived, it
was not possible to distinguish the TCP listeners from the QUIC ones
because no protocol indication was mentioned. Now we add a "proto"
legend there with the protocol name, so we can see "tcp4" or "quic6"
and figure how the socket is bound.
diff --git a/include/haproxy/stats-t.h b/include/haproxy/stats-t.h
index d185d85..6636416 100644
--- a/include/haproxy/stats-t.h
+++ b/include/haproxy/stats-t.h
@@ -469,6 +469,7 @@
ST_F_H1REQ,
ST_F_H2REQ,
ST_F_H3REQ,
+ ST_F_PROTO,
/* must always be the last one */
ST_F_TOTAL_FIELDS
diff --git a/src/stats.c b/src/stats.c
index cc3668f..c06fce3 100644
--- a/src/stats.c
+++ b/src/stats.c
@@ -1086,6 +1086,8 @@
else if (*field_str(stats, ST_F_ADDR))
chunk_appendf(out, "%s, ", field_str(stats, ST_F_ADDR));
+ chunk_appendf(out, "proto=%s, ", field_str(stats, ST_F_PROTO));
+
/* id */
chunk_appendf(out, "id: %d</div>", stats[ST_F_SID].u.u32);
}
@@ -2078,6 +2080,9 @@
}
}
break;
+ case ST_F_PROTO:
+ metric = mkf_str(FO_STATUS, l->rx.proto->name);
+ break;
default:
/* not used for listen. If a specific metric
* is requested, return an error. Otherwise continue.