changeset 22678:ea5633b00934

director: Show number of incoming USERs/sec in ps title
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Sun, 26 Nov 2017 03:45:00 +0200
parents 2fa7cadb2e58
children 496ac7e7563f
files src/director/director-connection.c src/director/director.h src/director/main.c
diffstat 3 files changed, 13 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/director/director-connection.c	Sat Nov 25 23:28:12 2017 +0200
+++ b/src/director/director-connection.c	Sun Nov 26 03:45:00 2017 +0200
@@ -782,6 +782,7 @@
 		   future though. It's most likely only 1 second difference. */
 		timestamp = ioloop_time;
 	}
+	conn->dir->num_incoming_requests++;
 	(void)director_user_refresh(conn, username_hash, host,
 				    timestamp, weak, &forced, &user);
 	/* Possibilities:
@@ -826,6 +827,9 @@
 		return FALSE;
 	}
 
+	/* could this before it's potentially ignored */
+	conn->dir->num_incoming_requests++;
+
 	conn->users_received++;
 	host = mail_host_lookup(conn->dir->mail_hosts, &ip);
 	if (host == NULL) {
@@ -1015,6 +1019,9 @@
 	if ((ret = director_cmd_is_seen(conn, &args, &dir_host)) < 0)
 		return FALSE;
 
+	/* could this before it's potentially ignored */
+	conn->dir->num_incoming_requests++;
+
 	if (str_array_length(args) != 2 ||
 	    str_to_uint(args[0], &username_hash) < 0 ||
 	    net_addr2ip(args[1], &ip) < 0) {
--- a/src/director/director.h	Sat Nov 25 23:28:12 2017 +0200
+++ b/src/director/director.h	Sun Nov 26 03:45:00 2017 +0200
@@ -159,7 +159,7 @@
 
 	time_t ring_first_alone;
 
-	uint64_t num_requests;
+	uint64_t num_requests, num_incoming_requests;
 	uint64_t ring_traffic_input, ring_traffic_output;
 
 	/* director ring handshaking is complete.
--- a/src/director/main.c	Sat Nov 25 23:28:12 2017 +0200
+++ b/src/director/main.c	Sun Nov 26 03:45:00 2017 +0200
@@ -53,6 +53,7 @@
 static void director_refresh_proctitle_timeout(void *context ATTR_UNUSED)
 {
 	static uint64_t prev_requests = 0, prev_input = 0, prev_output;
+	static uint64_t prev_incoming_requests = 0;
 	string_t *str;
 
 	str = t_str_new(64);
@@ -63,14 +64,16 @@
 		str_printfa(str, ", %u moving", director->users_moving_count);
 	if (director->users_kicking_count > 0)
 		str_printfa(str, ", %u kicking", director->users_kicking_count);
-	str_printfa(str, ", %lu req/s",
-		    (unsigned long)(director->num_requests - prev_requests));
+	str_printfa(str, ", %lu+%lu req/s",
+		    (unsigned long)(director->num_requests - prev_requests),
+		    (unsigned long)(director->num_incoming_requests - prev_incoming_requests));
 	str_printfa(str, ", %llu+%llu kB/s",
 		    (unsigned long long)(director->ring_traffic_input - prev_input)/1024,
 		    (unsigned long long)(director->ring_traffic_output - prev_output)/1024);
 	str_append_c(str, ']');
 
 	prev_requests = director->num_requests;
+	prev_incoming_requests = director->num_incoming_requests;
 	prev_input = director->ring_traffic_input;
 	prev_output = director->ring_traffic_output;