MINOR: proxy: add 'served' field to proxy, equal to total of all servers'
This will allow lb_chash to determine the total active sessions for a proxy without any computation. Signed-off-by: Andrew Rodland <andrewr@vimeo.com>
This commit is contained in:
parent
b957109727
commit
e168feb4a8
@ -277,6 +277,7 @@ struct proxy {
|
|||||||
} tcp_rep;
|
} tcp_rep;
|
||||||
struct server *srv, defsrv; /* known servers; default server configuration */
|
struct server *srv, defsrv; /* known servers; default server configuration */
|
||||||
int srv_act, srv_bck; /* # of servers eligible for LB (UP|!checked) AND (enabled+weight!=0) */
|
int srv_act, srv_bck; /* # of servers eligible for LB (UP|!checked) AND (enabled+weight!=0) */
|
||||||
|
int served; /* # of active sessions currently being served */
|
||||||
struct lbprm lbprm; /* load-balancing parameters */
|
struct lbprm lbprm; /* load-balancing parameters */
|
||||||
char *cookie_domain; /* domain used to insert the cookie */
|
char *cookie_domain; /* domain used to insert the cookie */
|
||||||
char *cookie_name; /* name of the cookie to look for */
|
char *cookie_name; /* name of the cookie to look for */
|
||||||
|
@ -126,6 +126,7 @@ struct stream *pendconn_get_next_strm(struct server *srv, struct proxy *px)
|
|||||||
strm->target = &srv->obj_type;
|
strm->target = &srv->obj_type;
|
||||||
stream_add_srv_conn(strm, srv);
|
stream_add_srv_conn(strm, srv);
|
||||||
srv->served++;
|
srv->served++;
|
||||||
|
srv->proxy->served++;
|
||||||
if (px->lbprm.server_take_conn)
|
if (px->lbprm.server_take_conn)
|
||||||
px->lbprm.server_take_conn(srv);
|
px->lbprm.server_take_conn(srv);
|
||||||
|
|
||||||
|
@ -2515,6 +2515,7 @@ void sess_change_server(struct stream *sess, struct server *newsrv)
|
|||||||
|
|
||||||
if (sess->srv_conn) {
|
if (sess->srv_conn) {
|
||||||
sess->srv_conn->served--;
|
sess->srv_conn->served--;
|
||||||
|
sess->srv_conn->proxy->served--;
|
||||||
if (sess->srv_conn->proxy->lbprm.server_drop_conn)
|
if (sess->srv_conn->proxy->lbprm.server_drop_conn)
|
||||||
sess->srv_conn->proxy->lbprm.server_drop_conn(sess->srv_conn);
|
sess->srv_conn->proxy->lbprm.server_drop_conn(sess->srv_conn);
|
||||||
stream_del_srv_conn(sess);
|
stream_del_srv_conn(sess);
|
||||||
@ -2522,6 +2523,7 @@ void sess_change_server(struct stream *sess, struct server *newsrv)
|
|||||||
|
|
||||||
if (newsrv) {
|
if (newsrv) {
|
||||||
newsrv->served++;
|
newsrv->served++;
|
||||||
|
newsrv->proxy->served++;
|
||||||
if (newsrv->proxy->lbprm.server_take_conn)
|
if (newsrv->proxy->lbprm.server_take_conn)
|
||||||
newsrv->proxy->lbprm.server_take_conn(newsrv);
|
newsrv->proxy->lbprm.server_take_conn(newsrv);
|
||||||
stream_add_srv_conn(sess, newsrv);
|
stream_add_srv_conn(sess, newsrv);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user