From: Timo Sirainen Date: Sun, 26 Nov 2017 01:45:00 +0000 (+0200) Subject: director: Show number of incoming USERs/sec in ps title X-Git-Tag: 2.2.34~211 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7cadc7cbbb58ee83848207e6ac347d4c9f698123;p=thirdparty%2Fdovecot%2Fcore.git director: Show number of incoming USERs/sec in ps title --- diff --git a/src/director/director-connection.c b/src/director/director-connection.c index d81a077ce6..965f726fad 100644 --- a/src/director/director-connection.c +++ b/src/director/director-connection.c @@ -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) { diff --git a/src/director/director.h b/src/director/director.h index 812ac0d717..0a43a41817 100644 --- a/src/director/director.h +++ b/src/director/director.h @@ -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. diff --git a/src/director/main.c b/src/director/main.c index 57069f90f4..09c1b351dc 100644 --- a/src/director/main.c +++ b/src/director/main.c @@ -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;