long long cli_aborts; /* aborted responses during DATA phase caused by the client */\
long long internal_errors; /* internal processing errors */\
long long failed_rewrites; /* failed rewrites (warning) */\
+ long long req_in; /* number of bytes received from the client */\
+ long long req_out; /* number of bytes sent to the server */\
+ long long res_in; /* number of bytes received from the server */\
+ long long res_out; /* number of bytes sent to the client */\
long long bytes_out; /* number of bytes transferred from the server to the client */\
long long bytes_in; /* number of bytes transferred from the client to the server */\
long long denied_resp; /* blocked responses because of security concerns */\
}
}
+ bytes = s->scf->bytes_in - s->logs.req_in;
s->logs.req_in = s->scf->bytes_in;
+ if (bytes) {
+ if (sess->fe_tgcounters)
+ _HA_ATOMIC_ADD(&sess->fe_tgcounters->req_in, bytes);
+ if (s->be_tgcounters)
+ _HA_ATOMIC_ADD(&s->be_tgcounters->req_in, bytes);
+
+ if (s->sv_tgcounters)
+ _HA_ATOMIC_ADD(&s->sv_tgcounters->req_in, bytes);
+
+ if (sess->li_tgcounters)
+ _HA_ATOMIC_ADD(&sess->li_tgcounters->req_in, bytes);
+ }
+
+ bytes = s->scb->bytes_out - s->logs.req_out;
s->logs.req_out = s->scb->bytes_out;
+ if (bytes) {
+ if (sess->fe_tgcounters)
+ _HA_ATOMIC_ADD(&sess->fe_tgcounters->req_out, bytes);
+ if (s->be_tgcounters)
+ _HA_ATOMIC_ADD(&s->be_tgcounters->req_out, bytes);
+
+ if (s->sv_tgcounters)
+ _HA_ATOMIC_ADD(&s->sv_tgcounters->req_out, bytes);
+
+ if (sess->li_tgcounters)
+ _HA_ATOMIC_ADD(&sess->li_tgcounters->req_out, bytes);
+ }
+
+ bytes = s->scb->bytes_in - s->logs.res_in;
s->logs.res_in = s->scb->bytes_in;
+ if (bytes) {
+ if (sess->fe_tgcounters)
+ _HA_ATOMIC_ADD(&sess->fe_tgcounters->res_in, bytes);
+ if (s->be_tgcounters)
+ _HA_ATOMIC_ADD(&s->be_tgcounters->res_in, bytes);
+
+ if (s->sv_tgcounters)
+ _HA_ATOMIC_ADD(&s->sv_tgcounters->res_in, bytes);
+
+ if (sess->li_tgcounters)
+ _HA_ATOMIC_ADD(&sess->li_tgcounters->res_in, bytes);
+ }
+
+ bytes = s->scf->bytes_out - s->logs.res_out;
s->logs.res_out = s->scf->bytes_out;
+ if (bytes) {
+ if (sess->fe_tgcounters)
+ _HA_ATOMIC_ADD(&sess->fe_tgcounters->res_out, bytes);
+ if (s->be_tgcounters)
+ _HA_ATOMIC_ADD(&s->be_tgcounters->res_out, bytes);
+
+ if (s->sv_tgcounters)
+ _HA_ATOMIC_ADD(&s->sv_tgcounters->res_out, bytes);
+
+ if (sess->li_tgcounters)
+ _HA_ATOMIC_ADD(&sess->li_tgcounters->res_out, bytes);
+ }
}
/* Abort processing on the both channels in same time */