]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
ab: Count keepalive aborted connections separately.
authorYann Ylavic <ylavic@apache.org>
Tue, 20 Jun 2023 15:15:30 +0000 (15:15 +0000)
committerYann Ylavic <ylavic@apache.org>
Tue, 20 Jun 2023 15:15:30 +0000 (15:15 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1910515 13f79535-47bb-0310-9956-ffa450edef68

support/ab.c

index 7579052ed2a756d8499668ee70d4aedb59c217f4..de63aee2785d972fc9430ab6aaf547306c4ad0a0 100644 (file)
@@ -334,6 +334,7 @@ struct metrics {
     int err_recv;               /* requests failed due to broken read */
     int err_except;             /* requests failed due to exception */
     int err_response;           /* requests with invalid or non-200 response */
+    int aborted_ka;             /* requests aborted during keepalive (no data) */
     int concurrent;             /* Number of multiple requests actually made */
 #ifdef USE_SSL
     char ssl_info[128];
@@ -1159,8 +1160,12 @@ static void output_results(void)
         printf("Write errors:           %d\n", metrics.epipe);
     if (metrics.err_response)
         printf("Non-2xx responses:      %d\n", metrics.err_response);
-    if (keepalive)
+    if (keepalive) {
         printf("Keep-Alive requests:    %" APR_INT64_T_FMT "\n", metrics.doneka);
+        if (metrics.aborted_ka) {
+            printf("Keep-Alive aborts:      %d\n", metrics.aborted_ka);
+        }
+    }
     printf("Total transferred:      %" APR_INT64_T_FMT " bytes\n", metrics.totalread);
     if (send_body)
         printf("Total body sent:        %" APR_INT64_T_FMT "\n", metrics.totalposted);
@@ -1736,6 +1741,7 @@ static void finalize_connection(struct connection *c, int reuse)
          * as per RFC7230 6.3.1, revert previous accounting (not an error).
          */
         worker->metrics.doneka--;
+        worker->metrics.aborted_ka++;
     }
     else {
         /* save out time */