[MEDIUM] continous statistics
By default, counters used for statistics calculation are incremented
only when a session finishes. It works quite well when serving small
objects, but with big ones (for example large images or archives) or
with A/V streaming, a graph generated from haproxy counters looks like
a hedgehog.
This patch implements a contstats (continous statistics) option.
When set counters get incremented continuously, during a whole session.
Recounting touches a hotpath directly so it is not enabled by default,
as it has small performance impact (~0.5%).
diff --git a/include/proto/session.h b/include/proto/session.h
index a18669e..4b86af2 100644
--- a/include/proto/session.h
+++ b/include/proto/session.h
@@ -33,6 +33,8 @@
/* perform minimal intializations, report 0 in case of error, 1 if OK. */
int init_session();
+void session_process_counters(struct session *s);
+
#endif /* _PROTO_SESSION_H */
/*
diff --git a/include/types/backend.h b/include/types/backend.h
index 9089469..c0c0809 100644
--- a/include/types/backend.h
+++ b/include/types/backend.h
@@ -57,6 +57,7 @@
#define PR_O_TPXY_CIP 0x04000000 /* bind to the client's IP address when connect()ing */
#define PR_O_TPXY_CLI 0x06000000 /* bind to the client's IP+port when connect()ing */
#define PR_O_TPXY_MASK 0x06000000 /* bind to a non-local address when connect()ing */
+
#define PR_O_TCPSPLICE 0x08000000 /* delegate data transfer to linux kernel's tcp_splice */
/* BALANCE: exclusive values */
@@ -68,6 +69,7 @@
#define PR_O_BALANCE_L7 0x40000000 /* mask to match layer7-based algorithms */
#define PR_O_BALANCE 0x70000000 /* mask to extract BALANCE algorithm */
+#define PR_O_CONTSTATS 0x80000000 /* continous counters */
#endif /* _TYPES_BACKEND_H */