---
 bin/varnishd/cache/cache_center.c |    7 ++++++-
 include/tbl/acct_fields.h         |    1 +
 include/tbl/vsc_f_main.h          |    3 +++
 3 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/bin/varnishd/cache/cache_center.c 
b/bin/varnishd/cache/cache_center.c
index 1f1a239..7a9134e 100644
--- a/bin/varnishd/cache/cache_center.c
+++ b/bin/varnishd/cache/cache_center.c
@@ -983,6 +983,9 @@ cnt_streambody_task(struct worker *wrk, void *priv)
        objcore = obj->objcore;
 
        wrk->busyobj->fetch_failed = FetchBody(wrk, wrk->busyobj);
+
+       wrk->stats.fetch_threaded++;
+
        AZ(wrk->busyobj->fetch_obj);
        AZ(wrk->busyobj->vbc);
        wrk->busyobj->vfp = NULL;
@@ -1028,6 +1031,7 @@ cnt_streambody(struct sess *sp, struct worker *wrk, 
struct req *req)
         * fetch at all. This code now assumes all passes through here
         * needs to do the fetch as well. (Multiple streaming clients
         * not implemented yet) */
+       wrk->acct_tmp.fetch++;
        AZ(wrk->busyobj->fetch_obj);
        wrk->busyobj->fetch_obj = req->obj;
        http_Setup(wrk->busyobj->bereq, NULL);
@@ -1051,6 +1055,7 @@ cnt_streambody(struct sess *sp, struct worker *wrk, 
struct req *req)
                         * streaming. (MBGXXX: Flipflop not finished
                         * yet) */
                        wrk->busyobj->do_stream_flipflop = 1;
+                       wrk->stats.fetch_flipflop++;
                }
                wrk->busyobj->fetch_failed = FetchBody(sp->wrk, wrk->busyobj);
                VBO_StreamStopped(wrk->busyobj);
@@ -1072,11 +1077,11 @@ cnt_streambody(struct sess *sp, struct worker *wrk, 
struct req *req)
                AN(req->obj->objcore->ban);
                HSH_Unbusy(wrk);
        }
-       wrk->acct_tmp.fetch++;
        req->director = NULL;
        req->restarts = 0;
 
        RES_StreamEnd(sp);
+       wrk->acct_tmp.streamed++;
        if (wrk->res_mode & RES_GUNZIP)
                (void)VGZ_Destroy(&sctx.vgz, sp->vsl_id);
 
diff --git a/include/tbl/acct_fields.h b/include/tbl/acct_fields.h
index 154f106..c58bcb1 100644
--- a/include/tbl/acct_fields.h
+++ b/include/tbl/acct_fields.h
@@ -38,3 +38,4 @@ ACCT(pass)
 ACCT(fetch)
 ACCT(hdrbytes)
 ACCT(bodybytes)
+ACCT(streamed)
diff --git a/include/tbl/vsc_f_main.h b/include/tbl/vsc_f_main.h
index b6b8dc9..5761c51 100644
--- a/include/tbl/vsc_f_main.h
+++ b/include/tbl/vsc_f_main.h
@@ -143,6 +143,8 @@ VSC_F(fetch_failed,         uint64_t, 1, 'a', "Fetch 
failed", "")
 VSC_F(fetch_1xx,               uint64_t, 1, 'a', "Fetch no body (1xx)", "")
 VSC_F(fetch_204,               uint64_t, 1, 'a', "Fetch no body (204)", "")
 VSC_F(fetch_304,               uint64_t, 1, 'a', "Fetch no body (304)", "")
+VSC_F(fetch_threaded,          uint64_t, 1, 'a', "Fetch threaded", "")
+VSC_F(fetch_flipflop,          uint64_t, 1, 'a', "Fetch flipflop", "")
 
 /*---------------------------------------------------------------------
  * Pools, threads, and sessions
@@ -266,6 +268,7 @@ VSC_F(s_req,                        uint64_t, 1, 'a', 
"Total Requests", "")
 VSC_F(s_pipe,                  uint64_t, 1, 'a', "Total pipe", "")
 VSC_F(s_pass,                  uint64_t, 1, 'a', "Total pass", "")
 VSC_F(s_fetch,                 uint64_t, 1, 'a', "Total fetch", "")
+VSC_F(s_streamed,              uint64_t, 1, 'a', "Total streamed delivery", "")
 VSC_F(s_hdrbytes,              uint64_t, 1, 'a', "Total header bytes", "")
 VSC_F(s_bodybytes,             uint64_t, 1, 'a', "Total body bytes", "")
 
-- 
1.7.4.1


_______________________________________________
varnish-dev mailing list
[email protected]
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev

Reply via email to