From 2897644ae5cdfde7a91271b3c4c7d879ed336be3 Mon Sep 17 00:00:00 2001 From: Emeric Brun Date: Wed, 7 Oct 2020 08:50:09 +0200 Subject: [PATCH] MINOR: stats: inc req counter on listeners. This patch enables count of requests for listeners if listener's counters are enabled. --- include/haproxy/proxy.h | 4 +++- src/http_ana.c | 10 +++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/include/haproxy/proxy.h b/include/haproxy/proxy.h index bf94c22..b89dac2 100644 --- a/include/haproxy/proxy.h +++ b/include/haproxy/proxy.h @@ -140,9 +140,11 @@ static inline void proxy_inc_be_ctr(struct proxy *be) } /* increase the number of cumulated requests on the designated frontend */ -static inline void proxy_inc_fe_req_ctr(struct proxy *fe) +static inline void proxy_inc_fe_req_ctr(struct listener *l, struct proxy *fe) { _HA_ATOMIC_ADD(&fe->fe_counters.p.http.cum_req, 1); + if (l->counters) + _HA_ATOMIC_ADD(&l->counters->p.http.cum_req, 1); HA_ATOMIC_UPDATE_MAX(&fe->fe_counters.p.http.rps_max, update_freq_ctr(&fe->fe_req_per_sec, 1)); } diff --git a/src/http_ana.c b/src/http_ana.c index 79241e3..142a0bf 100644 --- a/src/http_ana.c +++ b/src/http_ana.c @@ -98,7 +98,7 @@ int http_wait_for_request(struct stream *s, struct channel *req, int an_bit) if (htx->flags & (HTX_FL_PARSING_ERROR|HTX_FL_PROCESSING_ERROR)) { stream_inc_http_req_ctr(s); stream_inc_http_err_ctr(s); - proxy_inc_fe_req_ctr(sess->fe); + proxy_inc_fe_req_ctr(sess->listener, sess->fe); if (htx->flags & HTX_FL_PARSING_ERROR) goto return_bad_req; else @@ -149,7 +149,7 @@ int http_wait_for_request(struct stream *s, struct channel *req, int an_bit) stream_inc_http_err_ctr(s); stream_inc_http_req_ctr(s); - proxy_inc_fe_req_ctr(sess->fe); + proxy_inc_fe_req_ctr(sess->listener, sess->fe); _HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_req, 1); if (sess->listener->counters) _HA_ATOMIC_ADD(&sess->listener->counters->failed_req, 1); @@ -176,7 +176,7 @@ int http_wait_for_request(struct stream *s, struct channel *req, int an_bit) stream_inc_http_err_ctr(s); stream_inc_http_req_ctr(s); - proxy_inc_fe_req_ctr(sess->fe); + proxy_inc_fe_req_ctr(sess->listener, sess->fe); _HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_req, 1); if (sess->listener->counters) _HA_ATOMIC_ADD(&sess->listener->counters->failed_req, 1); @@ -203,7 +203,7 @@ int http_wait_for_request(struct stream *s, struct channel *req, int an_bit) stream_inc_http_err_ctr(s); stream_inc_http_req_ctr(s); - proxy_inc_fe_req_ctr(sess->fe); + proxy_inc_fe_req_ctr(sess->listener, sess->fe); _HA_ATOMIC_ADD(&sess->fe->fe_counters.failed_req, 1); if (sess->listener->counters) _HA_ATOMIC_ADD(&sess->listener->counters->failed_req, 1); @@ -271,7 +271,7 @@ int http_wait_for_request(struct stream *s, struct channel *req, int an_bit) msg->msg_state = HTTP_MSG_BODY; stream_inc_http_req_ctr(s); - proxy_inc_fe_req_ctr(sess->fe); /* one more valid request for this FE */ + proxy_inc_fe_req_ctr(sess->listener, sess->fe); /* one more valid request for this FE */ /* kill the pending keep-alive timeout */ txn->flags &= ~TX_WAIT_NEXT_RQ; -- 1.7.10.4