NAME
varnish-counters - Varnish counter field definitionsMAIN – MAIN COUNTERS
summs – counter - debugstat summ operations
Number of times per-thread statistics were summed into the global
counters.
Child process uptime
How long the child process has been running.
Sessions accepted
Count of sessions successfully accepted
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.
Session accept failures: connection aborted
Detailed reason for sess_fail: Connection aborted by the client, usually
harmless.
Session accept failures: interrupted system
call
Detailed reason for sess_fail: The accept() call was interrupted, usually
harmless
Session accept failures: too many open files
Detailed reason for sess_fail: No file descriptor was available. Consider
raising RLIMIT_NOFILE (see ulimit -n).
Session accept failures: bad file descriptor
Detailed reason for sess_fail: The listen socket file descriptor was invalid.
Should never happen.
Session accept failures: not enough memory
Detailed reason for sess_fail: Most likely insufficient socket buffer memory.
Should never happen
Session accept failures: other
Detailed reason for sess_fail: neither of the above, see SessError log
(varnishlog -g raw -i SessError).
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 requests received, subject to 417
errors
417 means that something went wrong with an Expect: header.
Good client requests received
The count of parseable client requests seen.
ESI subrequests
Number of ESI subrequests made.
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 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 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 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 misses
Count of misses. A cache miss indicates the object was fetched from the backend
before delivering it to the client.
Uncacheable backend responses
Shortlived objects
Backend conn. success
How many backend connections have successfully been established.
Backend conn. not attempted
Backend conn. too many
Backend conn. failures
Backend conn. reuses
Count of backend connection reuses. This counter is increased whenever we reuse
a recycled connection.
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 conn. retry
Fetch no body (HEAD)
beresp with no body because the request is HEAD.
Fetch with Length
beresp.body with Content-Length.
Fetch chunked
beresp.body with Chunked.
Fetch EOF
beresp.body with EOF.
Fetch bad T-E
beresp.body length/fetch could not be determined.
Fetch no body
beresp.body empty
Fetch no body (1xx)
beresp with no body because of 1XX response.
Fetch no body (204)
beresp with no body because of 204 response.
Fetch no body (304)
beresp with no body because of 304 response.
Fetch failed (all causes)
beresp fetch failed.
Fetch failed (no thread)
beresp fetch failed, no thread available.
Number of thread pools
Number of thread pools. See also parameter thread_pools. NB: Presently pools
cannot be removed once created.
Total number of threads
Number of threads in all pools. See also parameters thread_pools,
thread_pool_min and thread_pool_max.
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 created
Total number of threads created in all pools.
Threads destroyed
Total number of threads destroyed in all pools.
Thread creation failed
Number of times creating a thread failed. See VSL::Debug for diagnostics. See
also parameter thread_fail_delay.
Length of session queue
Length of session queue waiting for threads. NB: Only updates once per second.
See also parameter thread_queue_limit.
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.
Number of requests woken after sleep on busy
objhdr
Number of requests taken off the busy object sleep list and rescheduled.
Number of requests killed after sleep on busy
objhdr
Number of requests killed from the busy object sleep list due to lack of
resources.
Sessions queued for thread
Number of times session was queued waiting for a thread. See also parameter
thread_queue_limit.
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.
Requests dropped
Number of times an HTTP/2 stream was refused because the queue was too long
already. See also parameter thread_queue_limit.
object structs made
Approximate number of HTTP objects (headers + body, if present) in the
cache.
unresurrected objects
Number of unresurrected objects
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.
objecthead structs made
Approximate number of different hash entries in the cache.
Number of backends
Number of backends known to us.
Number of expired objects
Number of objects that expired from cache because of old age.
Number of LRU nuked objects
How many objects have been forcefully evicted from storage to make room for a
new object.
Number of LRU moved objects
Number of move operations done on the LRU list.
Reached nuke_limit
Number of times more storage space were needed, but limit was reached in a
nuke_limit. See also parameter nuke_limit.
HTTP header overflows
Total sessions seen
Number of ongoing pipe sessions
Pipes hit pipe_sess_max
Number of times more pipes were needed, but the limit was reached. See also
parameter pipe_sess_max.
Total pipe sessions seen
Total pass-ed requests seen
Total backend fetches initiated
Total backend fetches initiated, including background fetches.
Total backend background fetches
initiated
Total synthetic responses made
Request header bytes
Total request header bytes received
Request body bytes
Total request body bytes received
Response header bytes
Total response header bytes transmitted
Response body bytes
Total response body bytes transmitted
Pipe request header bytes
Total request bytes received for piped sessions
Piped bytes from client
Total number of bytes forwarded from clients in pipe sessions
Piped bytes to client
Total number of bytes forwarded to clients in pipe sessions
Session Closed
Session Closed with error
Total number of sessions closed with errors. See sc_* diag counters for detailed
breakdown
Session Read Ahead
Session herd
Number of times the timeout_linger triggered
Session OK REM_CLOSE
Number of session closes with REM_CLOSE (Client Closed)
Session OK REQ_CLOSE
Number of session closes with REQ_CLOSE (Client requested close)
Session Err REQ_HTTP10
Number of session closes with Error REQ_HTTP10 (Proto < HTTP/1.1)
Session Err RX_BAD
Number of session closes with Error RX_BAD (Received bad req/resp)
Session Err RX_BODY
Number of session closes with Error RX_BODY (Failure receiving req.body)
Session Err RX_JUNK
Number of session closes with Error RX_JUNK (Received junk data)
Session Err RX_OVERFLOW
Number of session closes with Error RX_OVERFLOW (Received buffer overflow)
Session Err RX_TIMEOUT
Number of session closes with Error RX_TIMEOUT (Receive timeout)
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.
Session OK TX_PIPE
Number of session closes with TX_PIPE (Piped transaction)
Session Err TX_ERROR
Number of session closes with Error TX_ERROR (Error transaction)
Session OK TX_EOF
Number of session closes with TX_EOF (EOF transmission)
Session OK RESP_CLOSE
Number of session closes with RESP_CLOSE (Backend/VCL requested close)
Session Err OVERLOAD
Number of session closes with Error OVERLOAD (Out of some resource)
Session Err PIPE_OVERFLOW
Number of session closes with Error PIPE_OVERFLOW (Session pipe overflow)
Session Err RANGE_SHORT
Number of session closes with Error RANGE_SHORT (Insufficient data for
range)
Session Err REQ_HTTP20
Number of session closes with Error REQ_HTTP20 (HTTP2 not accepted)
Session Err VCL_FAILURE
Number of session closes with Error VCL_FAILURE (VCL failure)
Delivery failed due to insufficient workspace.
Number of times we failed a response due to running out of workspace memory
during delivery.
workspace_backend overflows
Number of times we ran out of space in workspace_backend.
workspace_client overflows
Number of times we ran out of space in workspace_client.
workspace_thread overflows
Number of times we ran out of space in workspace_thread.
workspace_session overflows
Number of times we ran out of space in workspace_session.
SHM records
SHM writes
SHM flushes due to overflow
SHM MTX contention
SHM cycles through buffer
Backend requests made
Number of loaded VCLs in total
Number of VCLs available
Number of discarded VCLs
VCL failures
Count of failures which prevented VCL from completing.
Count of bans
Number of all bans in system, including bans superseded by newer bans and bans
already checked by the ban-lurker.
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.
Number of bans using obj.*
Number of bans which use obj.* variables. These bans can possibly be washed by
the ban-lurker.
Number of bans using req.*
Number of bans which use req.* variables. These bans can not be washed by the
ban-lurker.
Bans added
Counter of bans added to ban list.
Bans deleted
Counter of bans deleted from ban list.
Bans tested against objects (lookup)
Count of how many bans and objects have been tested against each other during
hash lookup.
Objects killed by bans (lookup)
Number of objects killed by bans during object lookup.
Bans tested against objects (lurker)
Count of how many bans and objects have been tested against each other by the
ban-lurker.
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'
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'
Objects killed by bans (lurker)
Number of objects killed by the ban-lurker.
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 superseded by other bans
Count of bans replaced by later identical bans.
Lurker gave way for lookup
Number of times the ban-lurker had to wait for lookups.
Bytes used by the persisted ban lists
Number of bytes used by the persisted ban lists.
Extra bytes in persisted ban lists due to
fragmentation
Number of extra bytes accumulated through dropped and completed bans in the
persistent ban lists.
Number of purge operations executed
Number of purged objects
Number of objects mailed to expiry thread
Number of objects mailed to expiry thread for handling.
Number of objects received by expiry thread
Number of objects received by expiry thread for handling.
HCB Lookups without lock
HCB Lookups with lock
HCB Inserts
ESI parse errors (unlock)
ESI parse warnings (unlock)
Loaded VMODs
Gzip operations
Gunzip operations
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
uptime – counter - infoManagement process uptime
Uptime in seconds of the management process
Child process started
Number of times the child process has been started
Child process normal exit
Number of times the child process has been cleanly stopped
Child process unexpected exit
Number of times the child process has exited with an unexpected return
code
Child process died (signal)
Number of times the child process has died due to signals
Child process core dumped
Number of times the child process has produced core dumps
Child process panic
Number of times the management process has caught a child panic
MEMPOOL – MEMORY POOL COUNTERS
live – gauge - debugIn use
In Pool
Size requested
Size allocated
Allocations
Frees
Recycled from pool
Timed out from pool
Too small to recycle
Too many for pool
Pool ran dry
SMA – MALLOC STEVEDORE COUNTERS
c_req – counter - infoAllocator requests
Number of times the storage has been asked to provide a storage segment.
Allocator failures
Number of times the storage has failed to provide a storage segment.
Bytes allocated
Number of total bytes allocated by this storage.
Bytes freed
Number of total bytes returned to this storage.
Allocations outstanding
Number of storage allocations outstanding.
Bytes outstanding
Number of bytes allocated from the storage.
Bytes available
Number of bytes left in the storage.
SMU – UMEM STEVEDORE COUNTERS
c_req – counter - infoAllocator requests
Number of times the storage has been asked to provide a storage segment.
Allocator failures
Number of times the storage has failed to provide a storage segment.
Bytes allocated
Number of total bytes allocated by this storage.
Bytes freed
Number of total bytes returned to this storage.
Allocations outstanding
Number of storage allocations outstanding.
Bytes outstanding
Number of bytes allocated from the storage.
Bytes available
Number of bytes left in the storage.
SMF – FILE STEVEDORE COUNTERS
c_req – counter - infoAllocator requests
Number of times the storage has been asked to provide a storage segment.
Allocator failures
Number of times the storage has failed to provide a storage segment.
Bytes allocated
Number of total bytes allocated by this storage.
Bytes freed
Number of total bytes returned to this storage.
Allocations outstanding
Number of storage allocations outstanding.
Bytes outstanding
Number of bytes allocated from the storage.
Bytes available
Number of bytes left in the storage.
N struct smf
N small free smf
N large free smf
VBE – BACKEND COUNTERS
happy – bitmap - infoHappy 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.
Request header bytes
Total backend request header bytes sent
Request body bytes
Total backend request body bytes sent
Response header bytes
Total backend response header bytes received
Response body bytes
Total backend response body bytes received
Pipe request header bytes
Total request bytes sent for piped sessions
Piped bytes to backend
Total number of bytes forwarded to backend in pipe sessions
Piped bytes from backend
Total number of bytes forwarded from backend in pipe sessions
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.
Backend requests sent
Fetches not attempted due to backend being
unhealthy
Fetches not attempted due to backend being
busy
Number of times the max_connections limit was reached
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.
Connections failed with EACCES or EPERM
Connections failed with EADDRNOTAVAIL
Connections failed with ECONNREFUSED
Connections failed with ENETUNREACH
Connections failed ETIMEDOUT
Connections failed for other reason
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)
Created locks
Destroyed locks
Lock Operations
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.
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.