[master] 40c0fef Split the main stats counters into their own file.

Poul-Henning Kamp phk at varnish-cache.org
Thu Nov 24 10:47:31 CET 2011


commit 40c0fef63a2e90bab9ea3a5418a3670815fb00ca
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Thu Nov 24 09:46:47 2011 +0000

    Split the main stats counters into their own file.

diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index 4b66309..190e945 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -206,12 +206,10 @@ struct acct {
 #define L0(t, n)
 #define L1(t, n)		t n;
 #define VSC_F(n, t, l, f, e,d)	L##l(t, n)
-#define VSC_DO_MAIN
 struct dstat {
-#include "tbl/vsc_fields.h"
+#include "tbl/vsc_f_main.h"
 };
 #undef VSC_F
-#undef VSC_DO_MAIN
 #undef L0
 #undef L1
 
diff --git a/bin/varnishd/cache/cache_wrk.c b/bin/varnishd/cache/cache_wrk.c
index bfee84c..1d80805 100644
--- a/bin/varnishd/cache/cache_wrk.c
+++ b/bin/varnishd/cache/cache_wrk.c
@@ -50,11 +50,9 @@ wrk_sumstat(struct worker *w)
 	Lck_AssertHeld(&wstat_mtx);
 #define L0(n)
 #define L1(n) (VSC_C_main->n += w->stats.n)
-#define VSC_DO_MAIN
 #define VSC_F(n, t, l, f, d, e) L##l(n);
-#include "tbl/vsc_fields.h"
+#include "tbl/vsc_f_main.h"
 #undef VSC_F
-#undef VSC_DO_MAIN
 #undef L0
 #undef L1
 	memset(&w->stats, 0, sizeof w->stats);
diff --git a/include/Makefile.am b/include/Makefile.am
index 62292fc..bb00ce6 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -15,6 +15,7 @@ pkginclude_HEADERS = \
 	tbl/vrt_stv_var.h \
 	tbl/vsc_all.h \
 	tbl/vsc_fields.h \
+	tbl/vsc_f_main.h \
 	tbl/vsl_tags.h \
 	vapi/vsm.h \
 	vapi/vsm_int.h \
diff --git a/include/tbl/vsc_all.h b/include/tbl/vsc_all.h
index e12bd2f..4d7b927 100644
--- a/include/tbl/vsc_all.h
+++ b/include/tbl/vsc_all.h
@@ -36,9 +36,7 @@ VSC_DO(LCK, lck, VSC_TYPE_LCK)
 VSC_DONE(LCK, lck, VSC_TYPE_LCK)
 
 VSC_DO(MAIN, main, VSC_TYPE_MAIN)
-#define VSC_DO_MAIN
-#include "tbl/vsc_fields.h"
-#undef VSC_DO_MAIN
+#include "tbl/vsc_f_main.h"
 VSC_DONE(MAIN, main, VSC_TYPE_MAIN)
 
 VSC_DO(SMA, sma, VSC_TYPE_SMA)
diff --git a/include/tbl/vsc_f_main.h b/include/tbl/vsc_f_main.h
new file mode 100644
index 0000000..72d8842
--- /dev/null
+++ b/include/tbl/vsc_f_main.h
@@ -0,0 +1,361 @@
+/*-
+ * Copyright (c) 2006 Verdens Gang AS
+ * Copyright (c) 2006-2011 Varnish Software AS
+ * All rights reserved.
+ *
+ * Author: Poul-Henning Kamp <phk at phk.freebsd.dk>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION, "")
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * Definition of all shared memory statistics below.
+ *
+ * Fields (n, t, l, f, e, d):
+ *    n - Name:		Field name, in C-source and stats programs
+ *    t - Type:		C-type, uint64_t, unless marked in 'f'
+ *    l - Local:	Local counter in worker thread.
+ *    f - Format:	Semantics of the value in this field
+ *				'a' - Accumulator (deprecated, use 'c')
+ *				'b' - Bitmap
+ *				'c' - Counter, never decreases.
+ *				'g' - Gauge, goes up and down
+ *				'i' - Integer (deprecated, use 'g')
+ *    e - Explantion:	Short explanation of field (for screen use)
+ *    d - Description:	Long explanation of field (for doc use)
+ *
+ * Please describe Gauge variables as "Number of..." to indicate that
+ * this is a snapshot, and Counter variables as "Count of" to indicate
+ * accumulative count.
+ *
+ * -----------------------
+ * NB: Cleanup in progress
+ * -----------------------
+ *
+ * Insufficient attention has caused this to become a swamp of conflicting
+ * conventions, shorthands and general mumbo-jumbo.  I'm trying to clean
+ * it up as I go over the code in other business.
+ *
+ * Please see the sessmem section for how it should look.
+ *
+ */
+
+/*---------------------------------------------------------------------
+ * Sessions
+ *    see: cache_acceptor.c and cache_pool.c
+ */
+
+VSC_F(sess_conn,		uint64_t, 1, 'c',
+    "Sessions accepted",
+	"Count of sessions succesfully accepted"
+)
+VSC_F(sess_drop,		uint64_t, 1, 'c',
+    "Sessions dropped",
+	"Count of sessions silently dropped due to lack of session memory."
+	"  See parameter 'max_sess'."
+)
+
+VSC_F(sess_fail,		uint64_t, 1, 'c',
+    "Session accept failures",
+	"Count of failures to accept TCP connection."
+	"  Either the client changed its mind, or the kernel ran out of"
+	" some resource like filedescriptors."
+)
+
+/*---------------------------------------------------------------------*/
+
+VSC_F(client_req,		uint64_t, 1, 'a',
+      "Client requests received",
+      "")
+
+VSC_F(cache_hit,		uint64_t, 1, 'a',
+      "Cache hits",
+      "Count of cache hits. "
+      "  A cache hit indicates that an object has been delivered to a"
+      "  client without fetching it from a backend server."
+)
+
+VSC_F(cache_hitpass,	uint64_t, 1, 'a',
+      "Cache hits for pass",
+      "Count of hits for pass"
+      "  A cache hit for pass indicates that Varnish is going to"
+      "  pass the request to the backend and this decision has been "
+      "  cached in it self. This counts how many times the cached "
+      "  decision is being used."
+)
+VSC_F(cache_miss,		uint64_t, 1, 'a',
+      "Cache misses",
+      "Count of misses"
+      "  A cache miss indicates the object was fetched from the"
+      "  backend before delivering it to the backend.")
+
+VSC_F(backend_conn,	uint64_t, 0, 'a',
+      "Backend conn. success",
+      "")
+
+VSC_F(backend_unhealthy,	uint64_t, 0, 'a',
+      "Backend conn. not attempted",
+      ""
+)
+VSC_F(backend_busy,	uint64_t, 0, 'a', "Backend conn. too many", "")
+VSC_F(backend_fail,	uint64_t, 0, 'a', "Backend conn. failures", "")
+VSC_F(backend_reuse,	uint64_t, 0, 'a',
+      "Backend conn. reuses",
+      "Count of backend connection reuses"
+      "  This counter is increased whenever we reuse a recycled connection.")
+VSC_F(backend_toolate,	uint64_t, 0, 'a', "Backend conn. was closed", "")
+VSC_F(backend_recycle,	uint64_t, 0, 'a',
+      "Backend conn. recycles",
+      "Count of backend connection recycles"
+      "  This counter is increased whenever we have a keep-alive"
+      "  connection that is put back into the pool of connections."
+      "  It has not yet been used, but it might be, unless the backend"
+      "  closes it.")
+VSC_F(backend_retry,	uint64_t, 0, 'a', "Backend conn. retry", "")
+
+VSC_F(fetch_head,		uint64_t, 1, 'a', "Fetch head", "")
+VSC_F(fetch_length,		uint64_t, 1, 'a', "Fetch with Length", "")
+VSC_F(fetch_chunked,		uint64_t, 1, 'a', "Fetch chunked", "")
+VSC_F(fetch_eof,		uint64_t, 1, 'a', "Fetch EOF", "")
+VSC_F(fetch_bad,		uint64_t, 1, 'a', "Fetch had bad headers", "")
+VSC_F(fetch_close,		uint64_t, 1, 'a', "Fetch wanted close", "")
+VSC_F(fetch_oldhttp,		uint64_t, 1, 'a', "Fetch pre HTTP/1.1 closed", "")
+VSC_F(fetch_zero,		uint64_t, 1, 'a', "Fetch zero len", "")
+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)", "")
+
+/*---------------------------------------------------------------------
+ * Session Memory
+ *    see: cache_session.c
+ */
+
+VSC_F(sessmem_size,		uint64_t, 1, 'g',
+    "Session mem size",
+	"Bytes of memory allocated for last allocated session."
+)
+
+VSC_F(sessmem_alloc,		uint64_t, 1, 'c',
+    "Session mem allocated",
+	"Count of all allocations of session memory."
+)
+
+VSC_F(sessmem_free,		uint64_t, 1, 'c',
+    "Session mem freed",
+	"Count of all frees of session memory."
+)
+
+VSC_F(sessmem_fail,		uint64_t, 1, 'c',
+    "Session mem alloc failed",
+	"Count of session memory allocation failures."
+)
+
+VSC_F(sessmem_limit,		uint64_t, 1, 'c',
+    "Session mem alloc limited",
+	"Count of session memory allocations blocked by limit (max_sess)."
+)
+
+/*---------------------------------------------------------------------
+ * Pools, threads, and sessions
+ *    see: cache_pool.c
+ *
+ */
+
+VSC_F(pools,			uint64_t, 1, 'g',
+    "Number of thread pools",
+	"Number of thread pools.  See also param wthread_pools."
+	"  NB: Presently pools cannot be removed once created."
+)
+
+VSC_F(threads,			uint64_t, 1, 'g',
+    "Total number of threads",
+	"Number of threads in all pools."
+	"  See also params thread_pools, thread_pool_min & thread_pool_max."
+)
+
+VSC_F(threads_limited,		uint64_t, 1, 'c',
+    "Threads hit max",
+	"Number of times more threads were needed, but limit was reached"
+	" in a thread pool."
+	"  See also param thread_pool_max."
+)
+
+VSC_F(threads_created,		uint64_t, 1, 'c',
+    "Threads created",
+	"Total number of threads created in all pools."
+)
+
+VSC_F(threads_destroyed,	uint64_t, 1, 'c',
+    "Threads destoryed",
+	"Total number of threads destroyed in all pools."
+)
+
+VSC_F(threads_failed,		uint64_t, 1, 'c',
+    "Thread creation failed",
+	"Number of times creating a thread failed."
+	"  See VSL::Debug for diagnostics."
+	"  See also param thread_fail_delay."
+)
+
+VSC_F(thread_queue_len,		uint64_t, 1, 'g',
+    "Length of session queue",
+	"Length of session queue waiting for threads."
+	"  NB: Only updates once per second."
+	"  See also param queue_max."
+)
+
+VSC_F(sess_queued,		uint64_t, 1, 'c',
+    "Sessions queued for thread",
+	"Number of times session was queued waiting for a thread."
+	"  See also param queue_max."
+)
+
+VSC_F(sess_dropped,		uint64_t, 1, 'c',
+    "Sessions dropped for thread",
+	"Number of times session was dropped because the queue were too"
+	" long already."
+	"  See also param queue_max."
+)
+
+/*---------------------------------------------------------------------*/
+
+VSC_F(n_sess_mem,		uint64_t, 0, 'i', "N struct sess_mem", "")
+VSC_F(n_sess,			uint64_t, 0, 'i', "N struct sess", "")
+VSC_F(n_object,			uint64_t, 1, 'i', "N struct object", "")
+VSC_F(n_vampireobject,		uint64_t, 1, 'i', "N unresurrected objects", "")
+VSC_F(n_objectcore,		uint64_t, 1, 'i', "N struct objectcore", "")
+VSC_F(n_objecthead,		uint64_t, 1, 'i', "N struct objecthead", "")
+VSC_F(n_waitinglist,		uint64_t, 1, 'i', "N struct waitinglist", "")
+
+VSC_F(n_vbc,		uint64_t, 0, 'i', "N struct vbc", "")
+
+VSC_F(n_backend,		uint64_t, 0, 'i', "N backends", "")
+
+VSC_F(n_expired,		uint64_t, 0, 'i', "N expired objects", "")
+VSC_F(n_lru_nuked,		uint64_t, 0, 'i', "N LRU nuked objects", "")
+VSC_F(n_lru_moved,		uint64_t, 0, 'i', "N LRU moved objects", "")
+
+VSC_F(losthdr,		uint64_t, 0, 'a', "HTTP header overflows", "")
+
+VSC_F(n_objsendfile,	uint64_t, 0, 'a', "Objects sent with sendfile",
+      "The number of objects sent with the sendfile system call. If enabled "
+      "sendfile will be used on object larger than a certain size.")
+VSC_F(n_objwrite,		uint64_t, 0, 'a', "Objects sent with write",
+      "The number of objects sent with regular write calls."
+      "Writes are used when the objects are too small for sendfile "
+      "or if the sendfile call has been disabled")
+VSC_F(n_objoverflow,	uint64_t, 1, 'a',
+					"Objects overflowing workspace", "")
+
+VSC_F(s_sess,		uint64_t, 1, 'a', "Total Sessions", "")
+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_hdrbytes,		uint64_t, 1, 'a', "Total header bytes", "")
+VSC_F(s_bodybytes,		uint64_t, 1, 'a', "Total body bytes", "")
+
+VSC_F(sess_closed,		uint64_t, 1, 'a', "Session Closed", "")
+VSC_F(sess_pipeline,	uint64_t, 1, 'a', "Session Pipeline", "")
+VSC_F(sess_readahead,	uint64_t, 1, 'a', "Session Read Ahead", "")
+VSC_F(sess_linger,		uint64_t, 1, 'a', "Session Linger", "")
+VSC_F(sess_herd,		uint64_t, 1, 'a', "Session herd", "")
+
+VSC_F(shm_records,		uint64_t, 0, 'a', "SHM records", "")
+VSC_F(shm_writes,		uint64_t, 0, 'a', "SHM writes", "")
+VSC_F(shm_flushes,		uint64_t, 0, 'a', "SHM flushes due to overflow", "")
+VSC_F(shm_cont,		uint64_t, 0, 'a', "SHM MTX contention", "")
+VSC_F(shm_cycles,		uint64_t, 0, 'a', "SHM cycles through buffer", "")
+
+VSC_F(sms_nreq,		uint64_t, 0, 'a', "SMS allocator requests", "")
+VSC_F(sms_nobj,		uint64_t, 0, 'i', "SMS outstanding allocations", "")
+VSC_F(sms_nbytes,		uint64_t, 0, 'i', "SMS outstanding bytes", "")
+VSC_F(sms_balloc,		uint64_t, 0, 'i', "SMS bytes allocated", "")
+VSC_F(sms_bfree,		uint64_t, 0, 'i', "SMS bytes freed", "")
+
+VSC_F(backend_req,		uint64_t, 0, 'a', "Backend requests made", "")
+
+VSC_F(n_vcl,		uint64_t, 0, 'a', "N vcl total", "")
+VSC_F(n_vcl_avail,		uint64_t, 0, 'a', "N vcl available", "")
+VSC_F(n_vcl_discard,	uint64_t, 0, 'a', "N vcl discarded", "")
+
+/**********************************************************************/
+
+VSC_F(bans,			uint64_t, 0, 'g',
+   "Count of bans",
+	"Number of all bans in system, including bans superseded"
+	" by newer bans and bans already checked by the ban-lurker."
+)
+VSC_F(bans_gone,		uint64_t, 0, 'g',
+    "Number of bans marked 'gone'",
+	"Number of bans which are no longer active, either because they"
+	" got checked by the ban-lurker or superseded by newer identical bans."
+)
+VSC_F(bans_req,			uint64_t, 0, 'g',
+    "Number of bans using req.*",
+	"Number of bans which use req.* variables.  These bans can not"
+	" be washed by the ban-lurker."
+)
+VSC_F(bans_added,		uint64_t, 0, 'c',
+    "Bans added",
+	"Counter of bans added to ban list."
+)
+VSC_F(bans_deleted,		uint64_t, 0, 'c',
+    "Bans deleted",
+	"Counter of bans deleted from ban list."
+)
+
+VSC_F(bans_tested,		uint64_t, 0, 'c',
+    "Bans tested against objects",
+	"Count of how many bans and objects have been tested against"
+	" each other."
+)
+VSC_F(bans_tests_tested,	uint64_t, 0, 'c',
+    "Ban tests tested against objects",
+	"Count of how many tests and objects have been tested against"
+	" each other.  'ban req.url == foo && req.http.host == bar'"
+	" counts as one in 'bans_tested' and as two in 'bans_tests_tested'"
+)
+VSC_F(bans_dups,		uint64_t, 0, 'c',
+    "Bans superseded by other bans",
+	"Count of bans replaced by later identical bans."
+)
+
+/**********************************************************************/
+
+VSC_F(hcb_nolock,		uint64_t, 0, 'a', "HCB Lookups without lock", "")
+VSC_F(hcb_lock,		uint64_t, 0, 'a', "HCB Lookups with lock", "")
+VSC_F(hcb_insert,		uint64_t, 0, 'a', "HCB Inserts", "")
+
+VSC_F(esi_errors,		uint64_t, 0, 'a', "ESI parse errors (unlock)", "")
+VSC_F(esi_warnings,		uint64_t, 0, 'a', "ESI parse warnings (unlock)", "")
+VSC_F(client_drop_late,	uint64_t, 0, 'a', "Connection dropped late", "")
+VSC_F(uptime,		uint64_t, 0, 'a', "Client uptime", "")
+
+VSC_F(dir_dns_lookups,	uint64_t, 0, 'a', "DNS director lookups", "")
+VSC_F(dir_dns_failed,	uint64_t, 0, 'a', "DNS director failed lookups", "")
+VSC_F(dir_dns_hit,		uint64_t, 0, 'a', "DNS director cached lookups hit", "")
+VSC_F(dir_dns_cache_full,	uint64_t, 0, 'a', "DNS director full dnscache", "")
+
+VSC_F(vmods,		uint64_t, 0, 'i', "Loaded VMODs", "")
+
+VSC_F(n_gzip,			uint64_t, 0, 'a', "Gzip operations", "")
+VSC_F(n_gunzip,			uint64_t, 0, 'a', "Gunzip operations", "")
diff --git a/include/tbl/vsc_fields.h b/include/tbl/vsc_fields.h
index 738703c..60cde5d 100644
--- a/include/tbl/vsc_fields.h
+++ b/include/tbl/vsc_fields.h
@@ -59,315 +59,6 @@
 
 /**********************************************************************/
 
-#ifdef VSC_DO_MAIN
-
-/*---------------------------------------------------------------------
- * Sessions
- *    see: cache_acceptor.c and cache_pool.c
- */
-
-VSC_F(sess_conn,		uint64_t, 1, 'c',
-    "Sessions accepted",
-	"Count of sessions succesfully accepted"
-)
-VSC_F(sess_drop,		uint64_t, 1, 'c',
-    "Sessions dropped",
-	"Count of sessions silently dropped due to lack of session memory."
-	"  See parameter 'max_sess'."
-)
-
-VSC_F(sess_fail,		uint64_t, 1, 'c',
-    "Session accept failures",
-	"Count of failures to accept TCP connection."
-	"  Either the client changed its mind, or the kernel ran out of"
-	" some resource like filedescriptors."
-)
-
-/*---------------------------------------------------------------------*/
-
-VSC_F(client_req,		uint64_t, 1, 'a',
-      "Client requests received",
-      "")
-
-VSC_F(cache_hit,		uint64_t, 1, 'a',
-      "Cache hits",
-      "Count of cache hits. "
-      "  A cache hit indicates that an object has been delivered to a"
-      "  client without fetching it from a backend server."
-)
-
-VSC_F(cache_hitpass,	uint64_t, 1, 'a',
-      "Cache hits for pass",
-      "Count of hits for pass"
-      "  A cache hit for pass indicates that Varnish is going to"
-      "  pass the request to the backend and this decision has been "
-      "  cached in it self. This counts how many times the cached "
-      "  decision is being used."
-)
-VSC_F(cache_miss,		uint64_t, 1, 'a',
-      "Cache misses",
-      "Count of misses"
-      "  A cache miss indicates the object was fetched from the"
-      "  backend before delivering it to the backend.")
-
-VSC_F(backend_conn,	uint64_t, 0, 'a',
-      "Backend conn. success",
-      "")
-
-VSC_F(backend_unhealthy,	uint64_t, 0, 'a',
-      "Backend conn. not attempted",
-      ""
-)
-VSC_F(backend_busy,	uint64_t, 0, 'a', "Backend conn. too many", "")
-VSC_F(backend_fail,	uint64_t, 0, 'a', "Backend conn. failures", "")
-VSC_F(backend_reuse,	uint64_t, 0, 'a',
-      "Backend conn. reuses",
-      "Count of backend connection reuses"
-      "  This counter is increased whenever we reuse a recycled connection.")
-VSC_F(backend_toolate,	uint64_t, 0, 'a', "Backend conn. was closed", "")
-VSC_F(backend_recycle,	uint64_t, 0, 'a',
-      "Backend conn. recycles",
-      "Count of backend connection recycles"
-      "  This counter is increased whenever we have a keep-alive"
-      "  connection that is put back into the pool of connections."
-      "  It has not yet been used, but it might be, unless the backend"
-      "  closes it.")
-VSC_F(backend_retry,	uint64_t, 0, 'a', "Backend conn. retry", "")
-
-VSC_F(fetch_head,		uint64_t, 1, 'a', "Fetch head", "")
-VSC_F(fetch_length,		uint64_t, 1, 'a', "Fetch with Length", "")
-VSC_F(fetch_chunked,		uint64_t, 1, 'a', "Fetch chunked", "")
-VSC_F(fetch_eof,		uint64_t, 1, 'a', "Fetch EOF", "")
-VSC_F(fetch_bad,		uint64_t, 1, 'a', "Fetch had bad headers", "")
-VSC_F(fetch_close,		uint64_t, 1, 'a', "Fetch wanted close", "")
-VSC_F(fetch_oldhttp,		uint64_t, 1, 'a', "Fetch pre HTTP/1.1 closed", "")
-VSC_F(fetch_zero,		uint64_t, 1, 'a', "Fetch zero len", "")
-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)", "")
-
-/*---------------------------------------------------------------------
- * Session Memory
- *    see: cache_session.c
- */
-
-VSC_F(sessmem_size,		uint64_t, 1, 'g',
-    "Session mem size",
-	"Bytes of memory allocated for last allocated session."
-)
-
-VSC_F(sessmem_alloc,		uint64_t, 1, 'c',
-    "Session mem allocated",
-	"Count of all allocations of session memory."
-)
-
-VSC_F(sessmem_free,		uint64_t, 1, 'c',
-    "Session mem freed",
-	"Count of all frees of session memory."
-)
-
-VSC_F(sessmem_fail,		uint64_t, 1, 'c',
-    "Session mem alloc failed",
-	"Count of session memory allocation failures."
-)
-
-VSC_F(sessmem_limit,		uint64_t, 1, 'c',
-    "Session mem alloc limited",
-	"Count of session memory allocations blocked by limit (max_sess)."
-)
-
-/*---------------------------------------------------------------------
- * Pools, threads, and sessions
- *    see: cache_pool.c
- *
- */
-
-VSC_F(pools,			uint64_t, 1, 'g',
-    "Number of thread pools",
-	"Number of thread pools.  See also param wthread_pools."
-	"  NB: Presently pools cannot be removed once created."
-)
-
-VSC_F(threads,			uint64_t, 1, 'g',
-    "Total number of threads",
-	"Number of threads in all pools."
-	"  See also params thread_pools, thread_pool_min & thread_pool_max."
-)
-
-VSC_F(threads_limited,		uint64_t, 1, 'c',
-    "Threads hit max",
-	"Number of times more threads were needed, but limit was reached"
-	" in a thread pool."
-	"  See also param thread_pool_max."
-)
-
-VSC_F(threads_created,		uint64_t, 1, 'c',
-    "Threads created",
-	"Total number of threads created in all pools."
-)
-
-VSC_F(threads_destroyed,	uint64_t, 1, 'c',
-    "Threads destoryed",
-	"Total number of threads destroyed in all pools."
-)
-
-VSC_F(threads_failed,		uint64_t, 1, 'c',
-    "Thread creation failed",
-	"Number of times creating a thread failed."
-	"  See VSL::Debug for diagnostics."
-	"  See also param thread_fail_delay."
-)
-
-VSC_F(thread_queue_len,		uint64_t, 1, 'g',
-    "Length of session queue",
-	"Length of session queue waiting for threads."
-	"  NB: Only updates once per second."
-	"  See also param queue_max."
-)
-
-VSC_F(sess_queued,		uint64_t, 1, 'c',
-    "Sessions queued for thread",
-	"Number of times session was queued waiting for a thread."
-	"  See also param queue_max."
-)
-
-VSC_F(sess_dropped,		uint64_t, 1, 'c',
-    "Sessions dropped for thread",
-	"Number of times session was dropped because the queue were too"
-	" long already."
-	"  See also param queue_max."
-)
-
-/*---------------------------------------------------------------------*/
-
-VSC_F(n_sess_mem,		uint64_t, 0, 'i', "N struct sess_mem", "")
-VSC_F(n_sess,			uint64_t, 0, 'i', "N struct sess", "")
-VSC_F(n_object,			uint64_t, 1, 'i', "N struct object", "")
-VSC_F(n_vampireobject,		uint64_t, 1, 'i', "N unresurrected objects", "")
-VSC_F(n_objectcore,		uint64_t, 1, 'i', "N struct objectcore", "")
-VSC_F(n_objecthead,		uint64_t, 1, 'i', "N struct objecthead", "")
-VSC_F(n_waitinglist,		uint64_t, 1, 'i', "N struct waitinglist", "")
-
-VSC_F(n_vbc,		uint64_t, 0, 'i', "N struct vbc", "")
-
-VSC_F(n_backend,		uint64_t, 0, 'i', "N backends", "")
-
-VSC_F(n_expired,		uint64_t, 0, 'i', "N expired objects", "")
-VSC_F(n_lru_nuked,		uint64_t, 0, 'i', "N LRU nuked objects", "")
-VSC_F(n_lru_moved,		uint64_t, 0, 'i', "N LRU moved objects", "")
-
-VSC_F(losthdr,		uint64_t, 0, 'a', "HTTP header overflows", "")
-
-VSC_F(n_objsendfile,	uint64_t, 0, 'a', "Objects sent with sendfile",
-      "The number of objects sent with the sendfile system call. If enabled "
-      "sendfile will be used on object larger than a certain size.")
-VSC_F(n_objwrite,		uint64_t, 0, 'a', "Objects sent with write",
-      "The number of objects sent with regular write calls."
-      "Writes are used when the objects are too small for sendfile "
-      "or if the sendfile call has been disabled")
-VSC_F(n_objoverflow,	uint64_t, 1, 'a',
-					"Objects overflowing workspace", "")
-
-VSC_F(s_sess,		uint64_t, 1, 'a', "Total Sessions", "")
-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_hdrbytes,		uint64_t, 1, 'a', "Total header bytes", "")
-VSC_F(s_bodybytes,		uint64_t, 1, 'a', "Total body bytes", "")
-
-VSC_F(sess_closed,		uint64_t, 1, 'a', "Session Closed", "")
-VSC_F(sess_pipeline,	uint64_t, 1, 'a', "Session Pipeline", "")
-VSC_F(sess_readahead,	uint64_t, 1, 'a', "Session Read Ahead", "")
-VSC_F(sess_linger,		uint64_t, 1, 'a', "Session Linger", "")
-VSC_F(sess_herd,		uint64_t, 1, 'a', "Session herd", "")
-
-VSC_F(shm_records,		uint64_t, 0, 'a', "SHM records", "")
-VSC_F(shm_writes,		uint64_t, 0, 'a', "SHM writes", "")
-VSC_F(shm_flushes,		uint64_t, 0, 'a', "SHM flushes due to overflow", "")
-VSC_F(shm_cont,		uint64_t, 0, 'a', "SHM MTX contention", "")
-VSC_F(shm_cycles,		uint64_t, 0, 'a', "SHM cycles through buffer", "")
-
-VSC_F(sms_nreq,		uint64_t, 0, 'a', "SMS allocator requests", "")
-VSC_F(sms_nobj,		uint64_t, 0, 'i', "SMS outstanding allocations", "")
-VSC_F(sms_nbytes,		uint64_t, 0, 'i', "SMS outstanding bytes", "")
-VSC_F(sms_balloc,		uint64_t, 0, 'i', "SMS bytes allocated", "")
-VSC_F(sms_bfree,		uint64_t, 0, 'i', "SMS bytes freed", "")
-
-VSC_F(backend_req,		uint64_t, 0, 'a', "Backend requests made", "")
-
-VSC_F(n_vcl,		uint64_t, 0, 'a', "N vcl total", "")
-VSC_F(n_vcl_avail,		uint64_t, 0, 'a', "N vcl available", "")
-VSC_F(n_vcl_discard,	uint64_t, 0, 'a', "N vcl discarded", "")
-
-/**********************************************************************/
-
-VSC_F(bans,			uint64_t, 0, 'g',
-   "Count of bans",
-	"Number of all bans in system, including bans superseded"
-	" by newer bans and bans already checked by the ban-lurker."
-)
-VSC_F(bans_gone,		uint64_t, 0, 'g',
-    "Number of bans marked 'gone'",
-	"Number of bans which are no longer active, either because they"
-	" got checked by the ban-lurker or superseded by newer identical bans."
-)
-VSC_F(bans_req,			uint64_t, 0, 'g',
-    "Number of bans using req.*",
-	"Number of bans which use req.* variables.  These bans can not"
-	" be washed by the ban-lurker."
-)
-VSC_F(bans_added,		uint64_t, 0, 'c',
-    "Bans added",
-	"Counter of bans added to ban list."
-)
-VSC_F(bans_deleted,		uint64_t, 0, 'c',
-    "Bans deleted",
-	"Counter of bans deleted from ban list."
-)
-
-VSC_F(bans_tested,		uint64_t, 0, 'c',
-    "Bans tested against objects",
-	"Count of how many bans and objects have been tested against"
-	" each other."
-)
-VSC_F(bans_tests_tested,	uint64_t, 0, 'c',
-    "Ban tests tested against objects",
-	"Count of how many tests and objects have been tested against"
-	" each other.  'ban req.url == foo && req.http.host == bar'"
-	" counts as one in 'bans_tested' and as two in 'bans_tests_tested'"
-)
-VSC_F(bans_dups,		uint64_t, 0, 'c',
-    "Bans superseded by other bans",
-	"Count of bans replaced by later identical bans."
-)
-
-/**********************************************************************/
-
-VSC_F(hcb_nolock,		uint64_t, 0, 'a', "HCB Lookups without lock", "")
-VSC_F(hcb_lock,		uint64_t, 0, 'a', "HCB Lookups with lock", "")
-VSC_F(hcb_insert,		uint64_t, 0, 'a', "HCB Inserts", "")
-
-VSC_F(esi_errors,		uint64_t, 0, 'a', "ESI parse errors (unlock)", "")
-VSC_F(esi_warnings,		uint64_t, 0, 'a', "ESI parse warnings (unlock)", "")
-VSC_F(client_drop_late,	uint64_t, 0, 'a', "Connection dropped late", "")
-VSC_F(uptime,		uint64_t, 0, 'a', "Client uptime", "")
-
-VSC_F(dir_dns_lookups,	uint64_t, 0, 'a', "DNS director lookups", "")
-VSC_F(dir_dns_failed,	uint64_t, 0, 'a', "DNS director failed lookups", "")
-VSC_F(dir_dns_hit,		uint64_t, 0, 'a', "DNS director cached lookups hit", "")
-VSC_F(dir_dns_cache_full,	uint64_t, 0, 'a', "DNS director full dnscache", "")
-
-VSC_F(vmods,		uint64_t, 0, 'i', "Loaded VMODs", "")
-
-VSC_F(n_gzip,			uint64_t, 0, 'a', "Gzip operations", "")
-VSC_F(n_gunzip,			uint64_t, 0, 'a', "Gunzip operations", "")
-
-#endif
-
-/**********************************************************************/
-
 #ifdef VSC_DO_LCK
 
 VSC_F(creat,		uint64_t, 0, 'a', "Created locks", "")
diff --git a/man/vsc2rst.c b/man/vsc2rst.c
index 18250d8..4ea94be 100644
--- a/man/vsc2rst.c
+++ b/man/vsc2rst.c
@@ -28,9 +28,7 @@ int main(int argc, char **argv)
 	P("MAIN COUNTERS");
 	P("=============");
 	P("");
-#define VSC_DO_MAIN
-#include "tbl/vsc_fields.h"
-#undef VSC_DO_MAIN
+#include "tbl/vsc_f_main.h"
 
 	P("");
 	P("LOCK COUNTERS");



More information about the varnish-commit mailing list