mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 07:37:02 +02:00
MINOR: backend: add timeout sample fetches
Add be_server_timeout and be_tunnel_timeout. These sample fetches return the configuration value for server or tunnel timeout on the backend side.
This commit is contained in:
parent
da184d5306
commit
d91d779618
@ -16855,6 +16855,16 @@ be_name : string
|
|||||||
frontends with responses to check which backend processed the request. It can
|
frontends with responses to check which backend processed the request. It can
|
||||||
also be used in a tcp-check or an http-check ruleset.
|
also be used in a tcp-check or an http-check ruleset.
|
||||||
|
|
||||||
|
be_server_timeout : integer
|
||||||
|
Returns the configuration value in millisecond for the server timeout of the
|
||||||
|
current backend. This timeout can be overwritten by a "set-timeout" rule. See
|
||||||
|
also the "cur_server_timeout".
|
||||||
|
|
||||||
|
be_tunnel_timeout : integer
|
||||||
|
Returns the configuration value in millisecond for the tunnel timeout of the
|
||||||
|
current backend. This timeout can be overwritten by a "set-timeout" rule. See
|
||||||
|
also the "cur_tunnel_timeout".
|
||||||
|
|
||||||
dst : ip
|
dst : ip
|
||||||
This is the destination IPv4 address of the connection on the client side,
|
This is the destination IPv4 address of the connection on the client side,
|
||||||
which is the address the client connected to. It can be useful when running
|
which is the address the client connected to. It can be useful when running
|
||||||
|
@ -2919,6 +2919,42 @@ smp_fetch_srv_uweight(const struct arg *args, struct sample *smp, const char *kw
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
smp_fetch_be_server_timeout(const struct arg *args, struct sample *smp, const char *km, void *private)
|
||||||
|
{
|
||||||
|
struct proxy *px = NULL;
|
||||||
|
|
||||||
|
if (smp->strm)
|
||||||
|
px = smp->strm->be;
|
||||||
|
else if (obj_type(smp->sess->origin) == OBJ_TYPE_CHECK)
|
||||||
|
px = __objt_check(smp->sess->origin)->proxy;
|
||||||
|
if (!px)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
smp->flags = SMP_F_VOL_TXN;
|
||||||
|
smp->data.type = SMP_T_SINT;
|
||||||
|
smp->data.u.sint = TICKS_TO_MS(px->timeout.server);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
smp_fetch_be_tunnel_timeout(const struct arg *args, struct sample *smp, const char *km, void *private)
|
||||||
|
{
|
||||||
|
struct proxy *px = NULL;
|
||||||
|
|
||||||
|
if (smp->strm)
|
||||||
|
px = smp->strm->be;
|
||||||
|
else if (obj_type(smp->sess->origin) == OBJ_TYPE_CHECK)
|
||||||
|
px = __objt_check(smp->sess->origin)->proxy;
|
||||||
|
if (!px)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
smp->flags = SMP_F_VOL_TXN;
|
||||||
|
smp->data.type = SMP_T_SINT;
|
||||||
|
smp->data.u.sint = TICKS_TO_MS(px->timeout.tunnel);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static int sample_conv_nbsrv(const struct arg *args, struct sample *smp, void *private)
|
static int sample_conv_nbsrv(const struct arg *args, struct sample *smp, void *private)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -2974,25 +3010,27 @@ sample_conv_srv_queue(const struct arg *args, struct sample *smp, void *private)
|
|||||||
* Please take care of keeping this list alphabetically sorted.
|
* Please take care of keeping this list alphabetically sorted.
|
||||||
*/
|
*/
|
||||||
static struct sample_fetch_kw_list smp_kws = {ILH, {
|
static struct sample_fetch_kw_list smp_kws = {ILH, {
|
||||||
{ "avg_queue", smp_fetch_avg_queue_size, ARG1(1,BE), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
{ "avg_queue", smp_fetch_avg_queue_size, ARG1(1,BE), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
||||||
{ "be_conn", smp_fetch_be_conn, ARG1(1,BE), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
{ "be_conn", smp_fetch_be_conn, ARG1(1,BE), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
||||||
{ "be_conn_free", smp_fetch_be_conn_free, ARG1(1,BE), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
{ "be_conn_free", smp_fetch_be_conn_free, ARG1(1,BE), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
||||||
{ "be_id", smp_fetch_be_id, 0, NULL, SMP_T_SINT, SMP_USE_BKEND, },
|
{ "be_id", smp_fetch_be_id, 0, NULL, SMP_T_SINT, SMP_USE_BKEND, },
|
||||||
{ "be_name", smp_fetch_be_name, 0, NULL, SMP_T_STR, SMP_USE_BKEND, },
|
{ "be_name", smp_fetch_be_name, 0, NULL, SMP_T_STR, SMP_USE_BKEND, },
|
||||||
{ "be_sess_rate", smp_fetch_be_sess_rate, ARG1(1,BE), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
{ "be_server_timeout", smp_fetch_be_server_timeout, 0, NULL, SMP_T_SINT, SMP_USE_BKEND, },
|
||||||
{ "connslots", smp_fetch_connslots, ARG1(1,BE), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
{ "be_sess_rate", smp_fetch_be_sess_rate, ARG1(1,BE), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
||||||
{ "nbsrv", smp_fetch_nbsrv, ARG1(1,BE), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
{ "be_tunnel_timeout", smp_fetch_be_tunnel_timeout, 0, NULL, SMP_T_SINT, SMP_USE_BKEND, },
|
||||||
{ "queue", smp_fetch_queue_size, ARG1(1,BE), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
{ "connslots", smp_fetch_connslots, ARG1(1,BE), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
||||||
{ "srv_conn", smp_fetch_srv_conn, ARG1(1,SRV), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
{ "nbsrv", smp_fetch_nbsrv, ARG1(1,BE), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
||||||
{ "srv_conn_free", smp_fetch_srv_conn_free, ARG1(1,SRV), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
{ "queue", smp_fetch_queue_size, ARG1(1,BE), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
||||||
{ "srv_id", smp_fetch_srv_id, 0, NULL, SMP_T_SINT, SMP_USE_SERVR, },
|
{ "srv_conn", smp_fetch_srv_conn, ARG1(1,SRV), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
||||||
{ "srv_is_up", smp_fetch_srv_is_up, ARG1(1,SRV), NULL, SMP_T_BOOL, SMP_USE_INTRN, },
|
{ "srv_conn_free", smp_fetch_srv_conn_free, ARG1(1,SRV), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
||||||
{ "srv_name", smp_fetch_srv_name, 0, NULL, SMP_T_STR, SMP_USE_SERVR, },
|
{ "srv_id", smp_fetch_srv_id, 0, NULL, SMP_T_SINT, SMP_USE_SERVR, },
|
||||||
{ "srv_queue", smp_fetch_srv_queue, ARG1(1,SRV), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
{ "srv_is_up", smp_fetch_srv_is_up, ARG1(1,SRV), NULL, SMP_T_BOOL, SMP_USE_INTRN, },
|
||||||
{ "srv_sess_rate", smp_fetch_srv_sess_rate, ARG1(1,SRV), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
{ "srv_name", smp_fetch_srv_name, 0, NULL, SMP_T_STR, SMP_USE_SERVR, },
|
||||||
{ "srv_weight", smp_fetch_srv_weight, ARG1(1,SRV), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
{ "srv_queue", smp_fetch_srv_queue, ARG1(1,SRV), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
||||||
{ "srv_iweight", smp_fetch_srv_iweight, ARG1(1,SRV), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
{ "srv_sess_rate", smp_fetch_srv_sess_rate, ARG1(1,SRV), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
||||||
{ "srv_uweight", smp_fetch_srv_uweight, ARG1(1,SRV), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
{ "srv_weight", smp_fetch_srv_weight, ARG1(1,SRV), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
||||||
|
{ "srv_iweight", smp_fetch_srv_iweight, ARG1(1,SRV), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
||||||
|
{ "srv_uweight", smp_fetch_srv_uweight, ARG1(1,SRV), NULL, SMP_T_SINT, SMP_USE_INTRN, },
|
||||||
{ /* END */ },
|
{ /* END */ },
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user