]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
director: Show number of incoming USERs/sec in ps title
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Sun, 26 Nov 2017 01:45:00 +0000 (03:45 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Sun, 26 Nov 2017 11:07:15 +0000 (13:07 +0200)
src/director/director-connection.c
src/director/director.h
src/director/main.c

index d81a077ce629dc8f9b1bddd94927f769678868a6..965f726fadb2ec395c08d794ef975093481c7731 100644 (file)
@@ -782,6 +782,7 @@ director_handshake_cmd_user(struct director_connection *conn,
                   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 @@ director_cmd_user(struct director_connection *conn,
                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 @@ director_cmd_user_weak(struct director_connection *conn,
        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) {
index 812ac0d71750962a0be32301e14e902b47b81e21..0a43a41817c38055c73d815be55f7ccecbfb4961 100644 (file)
@@ -159,7 +159,7 @@ struct director {
 
        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.
index 57069f90f47adcbdee680d71abd4797343acee9c..09c1b351dc6c890335f88ef511f804c1b6817d17 100644 (file)
@@ -53,6 +53,7 @@ static unsigned int director_total_users_count(void)
 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 @@ static void director_refresh_proctitle_timeout(void *context ATTR_UNUSED)
                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;