NAME

varnish-counters - Varnish counter field definitions

MAIN – MAIN COUNTERS

summscounter - debug
stat summ operations
 
Number of times per-thread statistics were summed into the global counters.


 
uptimecounter - info
Child process uptime
 
How long the child process has been running.


 
sess_conncounter - info
Sessions accepted
 
Count of sessions successfully accepted


 
sess_failcounter - info
Session accept failures
 
Count of failures to accept TCP connection.
 
This counter is the sum of the sess_fail_* counters, which give more detailed information.


 
sess_fail_econnabortedcounter - info
Session accept failures: connection aborted
 
Detailed reason for sess_fail: Connection aborted by the client, usually harmless.


 
sess_fail_eintrcounter - info
Session accept failures: interrupted system call
 
Detailed reason for sess_fail: The accept() call was interrupted, usually harmless


 
sess_fail_emfilecounter - info
Session accept failures: too many open files
 
Detailed reason for sess_fail: No file descriptor was available. Consider raising RLIMIT_NOFILE (see ulimit -n).


 
sess_fail_ebadfcounter - info
Session accept failures: bad file descriptor
 
Detailed reason for sess_fail: The listen socket file descriptor was invalid. Should never happen.


 
sess_fail_enomemcounter - info
Session accept failures: not enough memory
 
Detailed reason for sess_fail: Most likely insufficient socket buffer memory. Should never happen


 
sess_fail_othercounter - info
Session accept failures: other
 
Detailed reason for sess_fail: neither of the above, see SessError log (varnishlog -g raw -i SessError).


 
client_req_400counter - info
Client requests received, subject to 400 errors
 
400 means we couldn't make sense of the request, it was malformed in some drastic way.


 
client_req_417counter - info
Client requests received, subject to 417 errors
 
417 means that something went wrong with an Expect: header.


 
client_reqcounter - info
Good client requests received
 
The count of parseable client requests seen.


 
esi_reqcounter - info
ESI subrequests
 
Number of ESI subrequests made.


 
cache_hitcounter - info
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.


 
cache_hit_gracecounter - info
Cache grace hits
 
Count of cache hits with grace. A cache hit with grace is a cache hit where the object is expired. Note that such hits are also included in the cache_hit counter.


 
cache_hitpasscounter - info
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.


 
cache_hitmisscounter - info
Cache hits for miss.
 
Count of hits for miss. A cache hit for miss indicates that Varnish is going to proceed as for a cache miss without request coalescing, and this decision has been cached. This counts how many times the cached decision is being used.


 
cache_misscounter - info
Cache misses
 
Count of misses. A cache miss indicates the object was fetched from the backend before delivering it to the client.


 
beresp_uncacheablecounter - info
Uncacheable backend responses


 
Count of backend responses considered uncacheable.


 
beresp_shortlivedcounter - info
Shortlived objects


 
Count of objects created with ttl+grace+keep shorter than the 'shortlived' runtime parameter.


 
backend_conncounter - info
Backend conn. success
 
How many backend connections have successfully been established.


 
backend_unhealthycounter - info
Backend conn. not attempted


 
backend_busycounter - info
Backend conn. too many


 
backend_failcounter - info
Backend conn. failures


 
backend_reusecounter - info
Backend conn. reuses
 
Count of backend connection reuses. This counter is increased whenever we reuse a recycled connection.


 
backend_recyclecounter - info
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.


 
backend_retrycounter - info
Backend conn. retry


 
fetch_headcounter - info
Fetch no body (HEAD)
 
beresp with no body because the request is HEAD.


 
fetch_lengthcounter - info
Fetch with Length
 
beresp.body with Content-Length.


 
fetch_chunkedcounter - info
Fetch chunked
 
beresp.body with Chunked.


 
fetch_eofcounter - info
Fetch EOF
 
beresp.body with EOF.


 
fetch_badcounter - info
Fetch bad T-E
 
beresp.body length/fetch could not be determined.


 
fetch_nonecounter - info
Fetch no body
 
beresp.body empty


 
fetch_1xxcounter - info
Fetch no body (1xx)
 
beresp with no body because of 1XX response.


 
fetch_204counter - info
Fetch no body (204)
 
beresp with no body because of 204 response.


 
fetch_304counter - info
Fetch no body (304)
 
beresp with no body because of 304 response.


 
fetch_failedcounter - info
Fetch failed (all causes)
 
beresp fetch failed.


 
fetch_no_threadcounter - info
Fetch failed (no thread)
 
beresp fetch failed, no thread available.


 
poolsgauge - info
Number of thread pools
 
Number of thread pools. See also parameter thread_pools. NB: Presently pools cannot be removed once created.


 
threadsgauge - info
Total number of threads
 
Number of threads in all pools. See also parameters thread_pools, thread_pool_min and thread_pool_max.


 
threads_limitedcounter - info
Threads hit max
 
Number of times more threads were needed, but limit was reached in a thread pool. See also parameter thread_pool_max.


 
threads_createdcounter - info
Threads created
 
Total number of threads created in all pools.


 
threads_destroyedcounter - info
Threads destroyed
 
Total number of threads destroyed in all pools.


 
threads_failedcounter - info
Thread creation failed
 
Number of times creating a thread failed. See VSL::Debug for diagnostics. See also parameter thread_fail_delay.


 
thread_queue_lengauge - info
Length of session queue
 
Length of session queue waiting for threads. NB: Only updates once per second. See also parameter thread_queue_limit.


 
busy_sleepcounter - info
Number of requests sent to sleep on busy objhdr
 
Number of requests sent to sleep without a worker thread because they found a busy object.


 
busy_wakeupcounter - info
Number of requests woken after sleep on busy objhdr
 
Number of requests taken off the busy object sleep list and rescheduled.


 
busy_killedcounter - info
Number of requests killed after sleep on busy objhdr
 
Number of requests killed from the busy object sleep list due to lack of resources.


 
sess_queuedcounter - info
Sessions queued for thread
 
Number of times session was queued waiting for a thread. See also parameter thread_queue_limit.


 
sess_droppedcounter - info
Sessions dropped for thread
 
Number of times an HTTP/1 session was dropped because the queue was too long already. See also parameter thread_queue_limit.


 
req_droppedcounter - info
Requests dropped
 
Number of times an HTTP/2 stream was refused because the queue was too long already. See also parameter thread_queue_limit.


 
n_objectgauge - info
object structs made
 
Approximate number of HTTP objects (headers + body, if present) in the cache.


 
n_vampireobjectgauge - diag
unresurrected objects
 
Number of unresurrected objects


 
n_objectcoregauge - info
objectcore structs made
 
Approximate number of object metadata elements in the cache. Each object needs an objectcore, extra objectcores are for hit-for-miss, hit-for-pass and busy objects.


 
n_objectheadgauge - info
objecthead structs made
 
Approximate number of different hash entries in the cache.


 
n_backendgauge - info
Number of backends
 
Number of backends known to us.


 
n_expiredcounter - info
Number of expired objects
 
Number of objects that expired from cache because of old age.


 
n_lru_nukedcounter - info
Number of LRU nuked objects
 
How many objects have been forcefully evicted from storage to make room for a new object.


 
n_lru_movedcounter - diag
Number of LRU moved objects
 
Number of move operations done on the LRU list.


 
n_lru_limitedcounter - info
Reached nuke_limit
 
Number of times more storage space were needed, but limit was reached in a nuke_limit. See also parameter nuke_limit.


 
losthdrcounter - info
HTTP header overflows


 
s_sesscounter - info
Total sessions seen


 
n_pipegauge - info
Number of ongoing pipe sessions


 
pipe_limitedcounter - info
Pipes hit pipe_sess_max
 
Number of times more pipes were needed, but the limit was reached. See also parameter pipe_sess_max.


 
s_pipecounter - info
Total pipe sessions seen


 
s_passcounter - info
Total pass-ed requests seen


 
s_fetchcounter - info
Total backend fetches initiated
 
Total backend fetches initiated, including background fetches.


 
s_bgfetchcounter - info
Total backend background fetches initiated


 
s_synthcounter - info
Total synthetic responses made


 
s_req_hdrbytescounter - info
Request header bytes
 
Total request header bytes received


 
s_req_bodybytescounter - info
Request body bytes
 
Total request body bytes received


 
s_resp_hdrbytescounter - info
Response header bytes
 
Total response header bytes transmitted


 
s_resp_bodybytescounter - info
Response body bytes
 
Total response body bytes transmitted


 
s_pipe_hdrbytescounter - info
Pipe request header bytes
 
Total request bytes received for piped sessions


 
s_pipe_incounter - info
Piped bytes from client
 
Total number of bytes forwarded from clients in pipe sessions


 
s_pipe_outcounter - info
Piped bytes to client
 
Total number of bytes forwarded to clients in pipe sessions


 
sess_closedcounter - info
Session Closed


 
sess_closed_errcounter - info
Session Closed with error
 
Total number of sessions closed with errors. See sc_* diag counters for detailed breakdown


 
sess_readaheadcounter - info
Session Read Ahead


 
sess_herdcounter - diag
Session herd
 
Number of times the timeout_linger triggered


 
sc_rem_closecounter - diag
Session OK REM_CLOSE
 
Number of session closes with REM_CLOSE (Client Closed)


 
sc_req_closecounter - diag
Session OK REQ_CLOSE
 
Number of session closes with REQ_CLOSE (Client requested close)


 
sc_req_http10counter - diag
Session Err REQ_HTTP10
 
Number of session closes with Error REQ_HTTP10 (Proto < HTTP/1.1)


 
sc_rx_badcounter - diag
Session Err RX_BAD
 
Number of session closes with Error RX_BAD (Received bad req/resp)


 
sc_rx_bodycounter - diag
Session Err RX_BODY
 
Number of session closes with Error RX_BODY (Failure receiving req.body)


 
sc_rx_junkcounter - diag
Session Err RX_JUNK
 
Number of session closes with Error RX_JUNK (Received junk data)


 
sc_rx_overflowcounter - diag
Session Err RX_OVERFLOW
 
Number of session closes with Error RX_OVERFLOW (Received buffer overflow)


 
sc_rx_timeoutcounter - diag
Session Err RX_TIMEOUT
 
Number of session closes with Error RX_TIMEOUT (Receive timeout)


 
sc_rx_close_idlecounter - diag
Session Err RX_CLOSE_IDLE
 
Number of session closes with Error RX_CLOSE_IDLE: timeout_idle has been exceeded while waiting for a client request.


 
sc_tx_pipecounter - diag
Session OK TX_PIPE
 
Number of session closes with TX_PIPE (Piped transaction)


 
sc_tx_errorcounter - diag
Session Err TX_ERROR
 
Number of session closes with Error TX_ERROR (Error transaction)


 
sc_tx_eofcounter - diag
Session OK TX_EOF
 
Number of session closes with TX_EOF (EOF transmission)


 
sc_resp_closecounter - diag
Session OK RESP_CLOSE
 
Number of session closes with RESP_CLOSE (Backend/VCL requested close)


 
sc_overloadcounter - diag
Session Err OVERLOAD
 
Number of session closes with Error OVERLOAD (Out of some resource)


 
sc_pipe_overflowcounter - diag
Session Err PIPE_OVERFLOW
 
Number of session closes with Error PIPE_OVERFLOW (Session pipe overflow)


 
sc_range_shortcounter - diag
Session Err RANGE_SHORT
 
Number of session closes with Error RANGE_SHORT (Insufficient data for range)


 
sc_req_http20counter - diag
Session Err REQ_HTTP20
 
Number of session closes with Error REQ_HTTP20 (HTTP2 not accepted)


 
sc_vcl_failurecounter - diag
Session Err VCL_FAILURE
 
Number of session closes with Error VCL_FAILURE (VCL failure)


 
client_resp_500counter - diag
Delivery failed due to insufficient workspace.
 
Number of times we failed a response due to running out of workspace memory during delivery.


 
ws_backend_overflowcounter - diag
workspace_backend overflows
 
Number of times we ran out of space in workspace_backend.


 
ws_client_overflowcounter - diag
workspace_client overflows
 
Number of times we ran out of space in workspace_client.


 
ws_thread_overflowcounter - diag
workspace_thread overflows
 
Number of times we ran out of space in workspace_thread.


 
ws_session_overflowcounter - diag
workspace_session overflows
 
Number of times we ran out of space in workspace_session.


 
shm_recordscounter - diag
SHM records


 
shm_writescounter - diag
SHM writes


 
shm_flushescounter - diag
SHM flushes due to overflow


 
shm_contcounter - diag
SHM MTX contention


 
shm_cyclescounter - diag
SHM cycles through buffer


 
backend_reqcounter - info
Backend requests made


 
n_vclgauge - info
Number of loaded VCLs in total


 
n_vcl_availgauge - diag
Number of VCLs available


 
n_vcl_discardgauge - diag
Number of discarded VCLs


 
vcl_failcounter - info
VCL failures
 
Count of failures which prevented VCL from completing.


 
bansgauge - info
Count of bans
 
Number of all bans in system, including bans superseded by newer bans and bans already checked by the ban-lurker.


 
bans_completedgauge - diag
Number of bans marked 'completed'
 
Number of bans which are no longer active, either because they got checked by the ban-lurker or superseded by newer identical bans.


 
bans_objgauge - diag
Number of bans using obj.*
 
Number of bans which use obj.* variables. These bans can possibly be washed by the ban-lurker.


 
bans_reqgauge - diag
Number of bans using req.*
 
Number of bans which use req.* variables. These bans can not be washed by the ban-lurker.


 
bans_addedcounter - diag
Bans added
 
Counter of bans added to ban list.


 
bans_deletedcounter - diag
Bans deleted
 
Counter of bans deleted from ban list.


 
bans_testedcounter - diag
Bans tested against objects (lookup)
 
Count of how many bans and objects have been tested against each other during hash lookup.


 
bans_obj_killedcounter - diag
Objects killed by bans (lookup)
 
Number of objects killed by bans during object lookup.


 
bans_lurker_testedcounter - diag
Bans tested against objects (lurker)
 
Count of how many bans and objects have been tested against each other by the ban-lurker.


 
bans_tests_testedcounter - diag
Ban tests tested against objects (lookup)
 
Count of how many tests and objects have been tested against each other during lookup. 'ban req.url == foo && req.http.host == bar' counts as one in 'bans_tested' and as two in 'bans_tests_tested'


 
bans_lurker_tests_testedcounter - diag
Ban tests tested against objects (lurker)
 
Count of how many tests and objects have been tested against each other by the ban-lurker. 'ban req.url == foo && req.http.host == bar' counts as one in 'bans_tested' and as two in 'bans_tests_tested'


 
bans_lurker_obj_killedcounter - diag
Objects killed by bans (lurker)
 
Number of objects killed by the ban-lurker.


 
bans_lurker_obj_killed_cutoffcounter - diag
Objects killed by bans for cutoff (lurker)
 
Number of objects killed by the ban-lurker to keep the number of bans below ban_cutoff.


 
bans_dupscounter - diag
Bans superseded by other bans
 
Count of bans replaced by later identical bans.


 
bans_lurker_contentioncounter - diag
Lurker gave way for lookup
 
Number of times the ban-lurker had to wait for lookups.


 
bans_persisted_bytesgauge - diag
Bytes used by the persisted ban lists
 
Number of bytes used by the persisted ban lists.


 
bans_persisted_fragmentationgauge - diag
Extra bytes in persisted ban lists due to fragmentation
 
Number of extra bytes accumulated through dropped and completed bans in the persistent ban lists.


 
n_purgescounter - info
Number of purge operations executed


 
n_obj_purgedcounter - info
Number of purged objects


 
exp_mailedcounter - diag
Number of objects mailed to expiry thread
 
Number of objects mailed to expiry thread for handling.


 
exp_receivedcounter - diag
Number of objects received by expiry thread
 
Number of objects received by expiry thread for handling.


 
hcb_nolockcounter - debug
HCB Lookups without lock


 
hcb_lockcounter - debug
HCB Lookups with lock


 
hcb_insertcounter - debug
HCB Inserts


 
esi_errorscounter - diag
ESI parse errors (unlock)


 
esi_warningscounter - diag
ESI parse warnings (unlock)


 
vmodsgauge - info
Loaded VMODs


 
n_gzipcounter - info
Gzip operations


 
n_gunzipcounter - info
Gunzip operations


 
n_test_gunzipcounter - info
Test gunzip operations
 
Those operations occur when Varnish receives a compressed object from a backend. They are done to verify the gzip stream while it's inserted in storage.


MGT – MANAGEMENT PROCESS COUNTERS

uptimecounter - info
Management process uptime
 
Uptime in seconds of the management process


 
child_startcounter - diag
Child process started
 
Number of times the child process has been started


 
child_exitcounter - diag
Child process normal exit
 
Number of times the child process has been cleanly stopped


 
child_stopcounter - diag
Child process unexpected exit
 
Number of times the child process has exited with an unexpected return code


 
child_diedcounter - diag
Child process died (signal)
 
Number of times the child process has died due to signals


 
child_dumpcounter - diag
Child process core dumped
 
Number of times the child process has produced core dumps


 
child_paniccounter - diag
Child process panic
 
Number of times the management process has caught a child panic


MEMPOOL – MEMORY POOL COUNTERS

livegauge - debug
In use


 
poolgauge - debug
In Pool


 
sz_wantedgauge - debug
Size requested


 
sz_actualgauge - debug
Size allocated


 
allocscounter - debug
Allocations


 
freescounter - debug
Frees


 
recyclecounter - debug
Recycled from pool


 
timeoutcounter - debug
Timed out from pool


 
toosmallcounter - debug
Too small to recycle


 
surpluscounter - debug
Too many for pool


 
randrycounter - debug
Pool ran dry


SMA – MALLOC STEVEDORE COUNTERS

c_reqcounter - info
Allocator requests
 
Number of times the storage has been asked to provide a storage segment.


 
c_failcounter - info
Allocator failures
 
Number of times the storage has failed to provide a storage segment.


 
c_bytescounter - info
Bytes allocated
 
Number of total bytes allocated by this storage.


 
c_freedcounter - info
Bytes freed
 
Number of total bytes returned to this storage.


 
g_allocgauge - info
Allocations outstanding
 
Number of storage allocations outstanding.


 
g_bytesgauge - info
Bytes outstanding
 
Number of bytes allocated from the storage.


 
g_spacegauge - info
Bytes available
 
Number of bytes left in the storage.


SMU – UMEM STEVEDORE COUNTERS

c_reqcounter - info
Allocator requests
 
Number of times the storage has been asked to provide a storage segment.


 
c_failcounter - info
Allocator failures
 
Number of times the storage has failed to provide a storage segment.


 
c_bytescounter - info
Bytes allocated
 
Number of total bytes allocated by this storage.


 
c_freedcounter - info
Bytes freed
 
Number of total bytes returned to this storage.


 
g_allocgauge - info
Allocations outstanding
 
Number of storage allocations outstanding.


 
g_bytesgauge - info
Bytes outstanding
 
Number of bytes allocated from the storage.


 
g_spacegauge - info
Bytes available
 
Number of bytes left in the storage.


SMF – FILE STEVEDORE COUNTERS

c_reqcounter - info
Allocator requests
 
Number of times the storage has been asked to provide a storage segment.


 
c_failcounter - info
Allocator failures
 
Number of times the storage has failed to provide a storage segment.


 
c_bytescounter - info
Bytes allocated
 
Number of total bytes allocated by this storage.


 
c_freedcounter - info
Bytes freed
 
Number of total bytes returned to this storage.


 
g_allocgauge - info
Allocations outstanding
 
Number of storage allocations outstanding.


 
g_bytesgauge - info
Bytes outstanding
 
Number of bytes allocated from the storage.


 
g_spacegauge - info
Bytes available
 
Number of bytes left in the storage.


 
g_smfgauge - info
N struct smf


 
g_smf_fraggauge - info
N small free smf


 
g_smf_largegauge - info
N large free smf


VBE – BACKEND COUNTERS

happybitmap - info
Happy health probes
 
Represents the last probe results as a bitmap. Happy probes are bits set to 1, and the unhappy ones are set to 0. The highest bits represent the oldest probes.


 
bereq_hdrbytescounter - info
Request header bytes
 
Total backend request header bytes sent


 
bereq_bodybytescounter - info
Request body bytes
 
Total backend request body bytes sent


 
beresp_hdrbytescounter - info
Response header bytes
 
Total backend response header bytes received


 
beresp_bodybytescounter - info
Response body bytes
 
Total backend response body bytes received


 
pipe_hdrbytescounter - info
Pipe request header bytes
 
Total request bytes sent for piped sessions


 
pipe_outcounter - info
Piped bytes to backend
 
Total number of bytes forwarded to backend in pipe sessions


 
pipe_incounter - info
Piped bytes from backend
 
Total number of bytes forwarded from backend in pipe sessions


 
conngauge - info
Concurrent connections used
 
The number of currently used connections to the backend. This number is always less or equal to the number of connections to the backend (as, for example shown as ESTABLISHED for TCP connections in netstat) due to connection pooling.


 
reqcounter - info
Backend requests sent


 
unhealthycounter - info
Fetches not attempted due to backend being unhealthy


 
busycounter - info
Fetches not attempted due to backend being busy
 
Number of times the max_connections limit was reached


 
failcounter - info
Connections failed
 
Counter of failed opens. Detailed reasons are given in the fail_* counters (DIAG level) and in the log under the FetchError tag.
 
This counter is the sum of all detailed fail_* counters.
 
All fail_* counters may be slightly inaccurate for efficiency.


 
fail_eaccescounter - diag
Connections failed with EACCES or EPERM


 
fail_eaddrnotavailcounter - diag
Connections failed with EADDRNOTAVAIL


 
fail_econnrefusedcounter - diag
Connections failed with ECONNREFUSED


 
fail_enetunreachcounter - diag
Connections failed with ENETUNREACH


 
fail_etimedoutcounter - diag
Connections failed ETIMEDOUT


 
fail_othercounter - diag
Connections failed for other reason


 
helddowncounter - diag
Connection opens not attempted
 
Connections not attempted during the backend_local_error_holddown or backend_remote_error_holddown interval after a fundamental connection issue.


LCK – LOCK COUNTERS

Counters which track the activity in the different classes of mutex-locks.
 
The counts may be slightly wrong if there are more than one lock instantiated in each class (ie: .creat > 1)


 
creatcounter - debug
Created locks


 
destroycounter - debug
Destroyed locks


 
lockscounter - debug
Lock Operations


 
dbg_busycounter - debug
Contended lock operations
 
If the lck debug bit is set: Lock operations which returned EBUSY on the first locking attempt.
 
If the lck debug bit is unset, this counter will never be incremented even if lock operations are contended.


 
dbg_try_failcounter - debug
Contended trylock operations
 
If the lck debug bit is set: Trylock operations which returned EBUSY.
 
If the lck debug bit is unset, this counter will never be incremented even if lock operations are contended.


AUTHORS

This man page was written by Lasse Karstensen, using content from vsc2rst written by Tollef Fog Heen.

Questions & Answers

Helpful answers and articles about varnish-counters you may found on these sites:
Stack Overflow Server Fault Super User Unix & Linux Ask Ubuntu Network Engineering DevOps Raspberry Pi Webmasters Google Search