__ret; \
})
+#define COUNTERS_UPDATE_MAX(counter, count) \
+ do { \
+ HA_ATOMIC_UPDATE_MAX(counter, count); \
+ } while (0)
+
/* Manipulation of extra_counters, for boot-time registrable modules */
/* retrieve the base storage of extra counters (first tgroup if any) */
#define EXTRA_COUNTERS_BASE(counters, mod) \
#include <haproxy/api.h>
#include <haproxy/applet-t.h>
+#include <haproxy/counters.h>
#include <haproxy/freq_ctr.h>
#include <haproxy/list.h>
#include <haproxy/listener-t.h>
}
if (l && l->counters && l->counters->shared.tg)
_HA_ATOMIC_INC(&l->counters->shared.tg[tgid - 1]->cum_conn);
- HA_ATOMIC_UPDATE_MAX(&fe->fe_counters.cps_max,
+ COUNTERS_UPDATE_MAX(&fe->fe_counters.cps_max,
update_freq_ctr(&fe->fe_counters._conn_per_sec, 1));
}
}
if (l && l->counters && l->counters->shared.tg)
_HA_ATOMIC_INC(&l->counters->shared.tg[tgid - 1]->cum_sess);
- HA_ATOMIC_UPDATE_MAX(&fe->fe_counters.sps_max,
+ COUNTERS_UPDATE_MAX(&fe->fe_counters.sps_max,
update_freq_ctr(&fe->fe_counters._sess_per_sec, 1));
}
_HA_ATOMIC_INC(&be->be_counters.shared.tg[tgid - 1]->cum_sess);
update_freq_ctr(&be->be_counters.shared.tg[tgid - 1]->sess_per_sec, 1);
}
- HA_ATOMIC_UPDATE_MAX(&be->be_counters.sps_max,
+ COUNTERS_UPDATE_MAX(&be->be_counters.sps_max,
update_freq_ctr(&be->be_counters._sess_per_sec, 1));
}
}
if (l && l->counters && l->counters->shared.tg)
_HA_ATOMIC_INC(&l->counters->shared.tg[tgid - 1]->p.http.cum_req[http_ver]);
- HA_ATOMIC_UPDATE_MAX(&fe->fe_counters.p.http.rps_max,
+ COUNTERS_UPDATE_MAX(&fe->fe_counters.p.http.rps_max,
update_freq_ctr(&fe->fe_counters.p.http._req_per_sec, 1));
}
#include <haproxy/api.h>
#include <haproxy/applet-t.h>
#include <haproxy/arg-t.h>
+#include <haproxy/counters.h>
#include <haproxy/freq_ctr.h>
#include <haproxy/proxy-t.h>
#include <haproxy/resolvers-t.h>
_HA_ATOMIC_INC(&s->counters.shared.tg[tgid - 1]->cum_sess);
update_freq_ctr(&s->counters.shared.tg[tgid - 1]->sess_per_sec, 1);
}
- HA_ATOMIC_UPDATE_MAX(&s->counters.sps_max,
+ COUNTERS_UPDATE_MAX(&s->counters.sps_max,
update_freq_ctr(&s->counters._sess_per_sec, 1));
}
s->flags |= SF_CURR_SESS;
count = _HA_ATOMIC_ADD_FETCH(&srv->cur_sess, 1);
- HA_ATOMIC_UPDATE_MAX(&srv->counters.cur_sess_max, count);
+ COUNTERS_UPDATE_MAX(&srv->counters.cur_sess_max, count);
if (s->be->lbprm.server_take_conn)
s->be->lbprm.server_take_conn(srv);
}
* connection.
*/
if (!(li->bind_conf->options & BC_O_UNLIMITED)) {
- HA_ATOMIC_UPDATE_MAX(&global.sps_max,
+ COUNTERS_UPDATE_MAX(&global.sps_max,
update_freq_ctr(&global.sess_per_sec, 1));
if (li->bind_conf->options & BC_O_USE_SSL) {
- HA_ATOMIC_UPDATE_MAX(&global.ssl_max,
+ COUNTERS_UPDATE_MAX(&global.ssl_max,
update_freq_ctr(&global.ssl_per_sec, 1));
}
}
/* The connection was accepted, it must be counted as such */
if (l->counters)
- HA_ATOMIC_UPDATE_MAX(&l->counters->conn_max, next_conn);
+ COUNTERS_UPDATE_MAX(&l->counters->conn_max, next_conn);
if (p) {
- HA_ATOMIC_UPDATE_MAX(&p->fe_counters.conn_max, next_feconn);
+ COUNTERS_UPDATE_MAX(&p->fe_counters.conn_max, next_feconn);
proxy_inc_fe_conn_ctr(l, p);
}
if (!(l->bind_conf->options & BC_O_UNLIMITED)) {
count = update_freq_ctr(&global.conn_per_sec, 1);
- HA_ATOMIC_UPDATE_MAX(&global.cps_max, count);
+ COUNTERS_UPDATE_MAX(&global.cps_max, count);
}
_HA_ATOMIC_INC(&activity[tid].accepted);
*/
if (!(l->bind_conf->options & BC_O_UNLIMITED)) {
count = update_freq_ctr(&global.sess_per_sec, 1);
- HA_ATOMIC_UPDATE_MAX(&global.sps_max, count);
+ COUNTERS_UPDATE_MAX(&global.sps_max, count);
}
#ifdef USE_OPENSSL
if (!(l->bind_conf->options & BC_O_UNLIMITED) &&
l->bind_conf && l->bind_conf->options & BC_O_USE_SSL) {
count = update_freq_ctr(&global.ssl_per_sec, 1);
- HA_ATOMIC_UPDATE_MAX(&global.ssl_max, count);
+ COUNTERS_UPDATE_MAX(&global.ssl_max, count);
}
#endif
else
s->be_tgcounters = NULL;
- HA_ATOMIC_UPDATE_MAX(&be->be_counters.conn_max,
+ COUNTERS_UPDATE_MAX(&be->be_counters.conn_max,
HA_ATOMIC_ADD_FETCH(&be->beconn, 1));
proxy_inc_be_ctr(be);
swrate_add_dynamic(&srv->counters.c_time, samples_window, t_connect);
swrate_add_dynamic(&srv->counters.d_time, samples_window, t_data);
swrate_add_dynamic(&srv->counters.t_time, samples_window, t_close);
- HA_ATOMIC_UPDATE_MAX(&srv->counters.qtime_max, t_queue);
- HA_ATOMIC_UPDATE_MAX(&srv->counters.ctime_max, t_connect);
- HA_ATOMIC_UPDATE_MAX(&srv->counters.dtime_max, t_data);
- HA_ATOMIC_UPDATE_MAX(&srv->counters.ttime_max, t_close);
+ COUNTERS_UPDATE_MAX(&srv->counters.qtime_max, t_queue);
+ COUNTERS_UPDATE_MAX(&srv->counters.ctime_max, t_connect);
+ COUNTERS_UPDATE_MAX(&srv->counters.dtime_max, t_data);
+ COUNTERS_UPDATE_MAX(&srv->counters.ttime_max, t_close);
}
if (s->be_tgcounters)
samples_window = (((s->be->mode == PR_MODE_HTTP) ?
swrate_add_dynamic(&s->be->be_counters.c_time, samples_window, t_connect);
swrate_add_dynamic(&s->be->be_counters.d_time, samples_window, t_data);
swrate_add_dynamic(&s->be->be_counters.t_time, samples_window, t_close);
- HA_ATOMIC_UPDATE_MAX(&s->be->be_counters.qtime_max, t_queue);
- HA_ATOMIC_UPDATE_MAX(&s->be->be_counters.ctime_max, t_connect);
- HA_ATOMIC_UPDATE_MAX(&s->be->be_counters.dtime_max, t_data);
- HA_ATOMIC_UPDATE_MAX(&s->be->be_counters.ttime_max, t_close);
+ COUNTERS_UPDATE_MAX(&s->be->be_counters.qtime_max, t_queue);
+ COUNTERS_UPDATE_MAX(&s->be->be_counters.ctime_max, t_connect);
+ COUNTERS_UPDATE_MAX(&s->be->be_counters.dtime_max, t_data);
+ COUNTERS_UPDATE_MAX(&s->be->be_counters.ttime_max, t_close);
}
/*