}
/* 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));
}
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
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);
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);
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);
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;