The fe_req_rate is similar to fe_sess_rate, but fetches the number of HTTP requests per second instead of connections/sessions per second.
Signed-off-by: Nenad Merdanovic <nmer...@anine.io> --- doc/configuration.txt | 5 +++++ src/frontend.c | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/doc/configuration.txt b/doc/configuration.txt index dc43003..b5e67fe 100644 --- a/doc/configuration.txt +++ b/doc/configuration.txt @@ -12572,6 +12572,11 @@ fe_conn([<frontend>]) : integer statistics to servers in HTTP headers. See also the "dst_conn", "be_conn", "fe_sess_rate" fetches. +fe_req_rate([<frontend>]) : integer + Returns an integer value corresponding to the number of HTTP requests per + second sent to a frontend. This number can differ from "fe_sess_rate" in + situations where client-side keep-alive is enabled. + fe_sess_rate([<frontend>]) : integer Returns an integer value corresponding to the sessions creation rate on the frontend, in number of new sessions per second. This is used with ACLs to diff --git a/src/frontend.c b/src/frontend.c index 74ec0ab..5cc6202 100644 --- a/src/frontend.c +++ b/src/frontend.c @@ -167,6 +167,19 @@ smp_fetch_fe_id(const struct arg *args, struct sample *smp, const char *kw, void return 1; } +/* set temp integer to the number of HTTP requests per second reaching the frontend. + * Accepts exactly 1 argument. Argument is a frontend, other types will cause + * an undefined behaviour. + */ +static int +smp_fetch_fe_req_rate(const struct arg *args, struct sample *smp, const char *kw, void *private) +{ + smp->flags = SMP_F_VOL_TEST; + smp->data.type = SMP_T_SINT; + smp->data.u.sint = read_freq_ctr(&args->data.prx->fe_req_per_sec); + return 1; +} + /* set temp integer to the number of connections per second reaching the frontend. * Accepts exactly 1 argument. Argument is a frontend, other types will cause * an undefined behaviour. @@ -200,6 +213,7 @@ smp_fetch_fe_conn(const struct arg *args, struct sample *smp, const char *kw, vo static struct sample_fetch_kw_list smp_kws = {ILH, { { "fe_conn", smp_fetch_fe_conn, ARG1(1,FE), NULL, SMP_T_SINT, SMP_USE_INTRN, }, { "fe_id", smp_fetch_fe_id, 0, NULL, SMP_T_SINT, SMP_USE_FTEND, }, + { "fe_req_rate", smp_fetch_fe_req_rate, ARG1(1,FE), NULL, SMP_T_SINT, SMP_USE_INTRN, }, { "fe_sess_rate", smp_fetch_fe_sess_rate, ARG1(1,FE), NULL, SMP_T_SINT, SMP_USE_INTRN, }, { /* END */ }, }}; -- 2.8.1