---
name: "varnish-counters"
section: "7"
platform: "linux"
package: "varnish"
version: "7.7.0-3+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/varnish-counters"
---

# varnish-counters(7)

Varnish counter field definitions

## NAME

varnish-counters - Varnish counter field definitions

## 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)

**creat** – *counter* - debug

Created locks

**destroy** – *counter* - debug

Destroyed locks

**locks** – *counter* - debug

Lock Operations

**dbg\_busy** – *counter* - 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\_fail** – *counter* - 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.

## MAIN – MAIN COUNTERS

**summs** – *counter* - debug

stat summ operations

Number of times per-thread statistics were summed into the global counters.

**uptime** – *counter* - info

Child process uptime

How long the child process has been running.

**sess\_conn** – *counter* - info

Sessions accepted

Count of sessions successfully accepted

**sess\_fail** – *counter* - 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\_econnaborted** – *counter* - info

Session accept failures: connection aborted

Detailed reason for sess\_fail: Connection aborted by the client, usually harmless.

**sess\_fail\_eintr** – *counter* - info

Session accept failures: interrupted system call

Detailed reason for sess\_fail: The accept() call was interrupted, usually harmless

**sess\_fail\_emfile** – *counter* - 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\_ebadf** – *counter* - info

Session accept failures: bad file descriptor

Detailed reason for sess\_fail: The listen socket file descriptor was invalid. Should never happen.

**sess\_fail\_enomem** – *counter* - info

Session accept failures: not enough memory

Detailed reason for sess\_fail: Most likely insufficient socket buffer memory. Should never happen

**sess\_fail\_other** – *counter* - info

Session accept failures: other

Detailed reason for sess\_fail: neither of the above, see SessError log (varnishlog -g raw -i SessError).

**client\_req\_400** – *counter* - 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\_417** – *counter* - info

Client requests received, subject to 417 errors

417 means that something went wrong with an Expect: header.

**client\_req** – *counter* - info

Good client requests received

The count of parseable client requests seen.

**esi\_req** – *counter* - info

ESI subrequests

Number of ESI subrequests made.

**cache\_hit** – *counter* - 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\_grace** – *counter* - 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\_hitpass** – *counter* - 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\_hitmiss** – *counter* - 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\_miss** – *counter* - info

Cache misses

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

**beresp\_uncacheable** – *counter* - info

Uncacheable backend responses

Count of backend responses considered uncacheable.

**beresp\_shortlived** – *counter* - info

Shortlived objects

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

**backend\_conn** – *counter* - info

Backend conn. success

How many backend connections have successfully been established.

**backend\_unhealthy** – *counter* - info

Backend conn. not attempted

**backend\_busy** – *counter* - info

Backend conn. too many

**backend\_fail** – *counter* - info

Backend conn. failures

**backend\_reuse** – *counter* - info

Backend conn. reuses

Count of backend connection reuses. This counter is increased whenever we reuse a recycled connection.

**backend\_recycle** – *counter* - 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\_retry** – *counter* - info

Backend conn. retry

**backend\_wait** – *counter* - info

Backend conn. waited in queue for a connection

Count of backend requests that waited in a backend\_wait queue for a connection to become available.  The size of a backend wait queue is defined by the backend wait\_limit property.  The wait queue is only used when max\_connections to the backend are in use.

**backend\_wait\_fail** – *counter* - info

Backend conn. waited in queue and did not get a connection

Count of backend requests that waited in a backend\_wait queue for a connection to become available and did not get one (timed out). The maximum time to wait in the queue is defined by the backend wait\_timeout property.

**fetch\_head** – *counter* - info

Fetch no body (HEAD)

beresp with no body because the request is HEAD.

**fetch\_length** – *counter* - info

Fetch with Length

beresp.body with Content-Length.

**fetch\_chunked** – *counter* - info

Fetch chunked

beresp.body with Chunked.

**fetch\_eof** – *counter* - info

Fetch EOF

beresp.body with EOF.

**fetch\_bad** – *counter* - info

Fetch bad T-E

beresp.body length/fetch could not be determined.

**fetch\_none** – *counter* - info

Fetch no body

beresp.body empty

**fetch\_1xx** – *counter* - info

Fetch no body (1xx)

beresp with no body because of 1XX response.

**fetch\_204** – *counter* - info

Fetch no body (204)

beresp with no body because of 204 response.

**fetch\_304** – *counter* - info

Fetch no body (304)

beresp with no body because of 304 response.

**fetch\_failed** – *counter* - info

Fetch failed (all causes)

beresp fetch failed.

**bgfetch\_no\_thread** – *counter* - info

Background fetch failed (no thread)

A bgfetch triggered by a grace hit failed, no thread available.

**pools** – *gauge* - info

Number of thread pools

Number of thread pools. See also parameter thread\_pools. NB: Presently pools cannot be removed once created.

**threads** – *gauge* - info

Total number of threads

Number of threads in all pools. See also parameters thread\_pools, thread\_pool\_min and thread\_pool\_max.

**threads\_limited** – *counter* - 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\_created** – *counter* - info

Threads created

Total number of threads created in all pools.

**threads\_destroyed** – *counter* - info

Threads destroyed

Total number of threads destroyed in all pools.

**threads\_failed** – *counter* - info

Thread creation failed

Number of times creating a thread failed. See VSL::Debug for diagnostics. See also parameter thread\_fail\_delay.

**thread\_queue\_len** – *gauge* - 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\_sleep** – *counter* - 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\_wakeup** – *counter* - info

Number of requests woken after sleep on busy objhdr

Number of requests taken off the busy object sleep list and rescheduled.

**busy\_killed** – *counter* - 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\_queued** – *counter* - info

Sessions queued for thread

Number of times session was queued waiting for a thread. See also parameter thread\_queue\_limit.

**sess\_dropped** – *counter* - 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\_dropped** – *counter* - 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.

**req\_reset** – *counter* - info

Requests reset

Number of times a client left before the VCL processing of its requests completed. For HTTP/2 sessions, either the stream was reset by an RST\_STREAM frame from the client, or a stream or connection error occurred.

**n\_object** – *gauge* - info

object structs made

Approximate number of HTTP objects (headers + body, if present) in the cache.

**n\_vampireobject** – *gauge* - diag

unresurrected objects

Number of unresurrected objects

**n\_objectcore** – *gauge* - 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\_objecthead** – *gauge* - info

objecthead structs made

Approximate number of different hash entries in the cache.

**n\_backend** – *gauge* - info

Number of backends

Number of backends known to us.

**n\_expired** – *counter* - info

Number of expired objects

Number of objects that expired from cache because of old age.

**n\_superseded** – *counter* - diag

Number of superseded objects

Number of times an object was superseded by a new one.

**n\_lru\_nuked** – *counter* - info

Number of LRU nuked objects

How many objects have been forcefully evicted from storage to make room for a new object.

**n\_lru\_moved** – *counter* - diag

Number of LRU moved objects

Number of move operations done on the LRU list.

**n\_lru\_limited** – *counter* - 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.

**losthdr** – *counter* - info

HTTP header overflows

**s\_sess** – *counter* - info

Total sessions seen

**n\_pipe** – *gauge* - info

Number of ongoing pipe sessions

**pipe\_limited** – *counter* - 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\_pipe** – *counter* - info

Total pipe sessions seen

**s\_pass** – *counter* - info

Total pass-ed requests seen

**s\_fetch** – *counter* - info

Total backend fetches initiated

Total backend fetches initiated, including background fetches.

**s\_bgfetch** – *counter* - info

Total backend background fetches initiated

**s\_synth** – *counter* - info

Total synthetic responses made

**s\_req\_hdrbytes** – *counter* - info

Request header bytes

Total request header bytes received

**s\_req\_bodybytes** – *counter* - info

Request body bytes

Total request body bytes received

**s\_resp\_hdrbytes** – *counter* - info

Response header bytes

Total response header bytes transmitted

**s\_resp\_bodybytes** – *counter* - info

Response body bytes

Total response body bytes transmitted

**s\_pipe\_hdrbytes** – *counter* - info

Pipe request header bytes

Total request bytes received for piped sessions

**s\_pipe\_in** – *counter* - info

Piped bytes from client

Total number of bytes forwarded from clients in pipe sessions

**s\_pipe\_out** – *counter* - info

Piped bytes to client

Total number of bytes forwarded to clients in pipe sessions

**sess\_closed** – *counter* - info

Session Closed

**sess\_closed\_err** – *counter* - info

Session Closed with error

Total number of sessions closed with errors. See sc\_\* diag counters for detailed breakdown

**sess\_readahead** – *counter* - info

Session Read Ahead

**sess\_herd** – *counter* - diag

Session herd

Number of times the timeout\_linger triggered

**sc\_rem\_close** – *counter* - diag

Session OK  REM\_CLOSE

Number of session closes with REM\_CLOSE (Client Closed)

**sc\_req\_close** – *counter* - diag

Session OK  REQ\_CLOSE

Number of session closes with REQ\_CLOSE (Client requested close)

**sc\_req\_http10** – *counter* - diag

Session Err REQ\_HTTP10

Number of session closes with Error REQ\_HTTP10 (Proto \< HTTP/1.1)

**sc\_rx\_bad** – *counter* - diag

Session Err RX\_BAD

Number of session closes with Error RX\_BAD (Received bad req/resp)

**sc\_rx\_body** – *counter* - diag

Session Err RX\_BODY

Number of session closes with Error RX\_BODY (Failure receiving req.body)

**sc\_rx\_junk** – *counter* - diag

Session Err RX\_JUNK

Number of session closes with Error RX\_JUNK (Received junk data)

**sc\_rx\_overflow** – *counter* - diag

Session Err RX\_OVERFLOW

Number of session closes with Error RX\_OVERFLOW (Received buffer overflow)

**sc\_rx\_timeout** – *counter* - diag

Session Err RX\_TIMEOUT

Number of session closes with Error RX\_TIMEOUT (Receive timeout)

**sc\_rx\_close\_idle** – *counter* - 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\_pipe** – *counter* - diag

Session OK  TX\_PIPE

Number of session closes with TX\_PIPE (Piped transaction)

**sc\_tx\_error** – *counter* - diag

Session Err TX\_ERROR

Number of session closes with Error TX\_ERROR (Error transaction)

**sc\_tx\_eof** – *counter* - diag

Session OK  TX\_EOF

Number of session closes with TX\_EOF (EOF transmission)

**sc\_resp\_close** – *counter* - diag

Session OK  RESP\_CLOSE

Number of session closes with RESP\_CLOSE (Backend/VCL requested close)

**sc\_overload** – *counter* - diag

Session Err OVERLOAD

Number of session closes with Error OVERLOAD (Out of some resource)

**sc\_pipe\_overflow** – *counter* - diag

Session Err PIPE\_OVERFLOW

Number of session closes with Error PIPE\_OVERFLOW (Session pipe overflow)

**sc\_range\_short** – *counter* - diag

Session Err RANGE\_SHORT

Number of session closes with Error RANGE\_SHORT (Insufficient data for range)

**sc\_req\_http20** – *counter* - diag

Session Err REQ\_HTTP20

Number of session closes with Error REQ\_HTTP20 (HTTP2 not accepted)

**sc\_vcl\_failure** – *counter* - diag

Session Err VCL\_FAILURE

Number of session closes with Error VCL\_FAILURE (VCL failure)

**sc\_rapid\_reset** – *counter* - diag

Session Err RAPID\_RESET

Number of times we failed an http/2 session because it hit its configured limits for the number of permitted rapid stream resets.

**sc\_bankrupt** – *counter* - diag

Session Err BANKRUPT

Number of times we failed an http/2 session because all the streams were waiting for their windows to be credited when h2\_window\_timeout triggered.

**client\_resp\_500** – *counter* - 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\_overflow** – *counter* - diag

workspace\_backend overflows

Number of times we ran out of space in workspace\_backend.

**ws\_client\_overflow** – *counter* - diag

workspace\_client overflows

Number of times we ran out of space in workspace\_client.

**ws\_thread\_overflow** – *counter* - diag

workspace\_thread overflows

Number of times we ran out of space in workspace\_thread.

**ws\_session\_overflow** – *counter* - diag

workspace\_session overflows

Number of times we ran out of space in workspace\_session.

**shm\_records** – *counter* - diag

SHM records

Number of log records written to the shared memory log.

**shm\_writes** – *counter* - diag

SHM writes

Number of individual writes to the shared memory log. A single write may batch multiple records for buffered tasks.

**shm\_flushes** – *counter* - diag

SHM flushes due to overflow

Number of writes performed before the end of a buffered task because adding a record to a batch would exceed vsl\_buffer.

**shm\_cont** – *counter* - diag

SHM lock contention

Number of times a write had to wait for the lock.

**shm\_cycles** – *counter* - diag

SHM cycles through VSL space

Number of times a write of log records would reach past the end of the shared memory log, cycling back to the beginning.

**shm\_bytes** – *counter* - diag

SHM bytes

Number of bytes written to the shared memory log.

**backend\_req** – *counter* - info

Backend requests made

**n\_vcl** – *gauge* - info

Number of loaded VCLs in total

**n\_vcl\_avail** – *gauge* - diag

Number of VCLs available

**n\_vcl\_discard** – *gauge* - diag

Number of discarded VCLs

**vcl\_fail** – *counter* - info

VCL failures

Count of failures which prevented VCL from completing.

**bans** – *gauge* - 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\_completed** – *gauge* - 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\_obj** – *gauge* - diag

Number of bans using obj.\*

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

**bans\_req** – *gauge* - diag

Number of bans using req.\*

Number of bans which use req.\* variables.  These bans cannot be washed by the ban-lurker.

**bans\_added** – *counter* - diag

Bans added

Counter of bans added to ban list.

**bans\_deleted** – *counter* - diag

Bans deleted

Counter of bans deleted from ban list.

**bans\_tested** – *counter* - diag

Bans tested against objects (lookup)

Count of how many bans and objects have been tested against each other during hash lookup.

**bans\_obj\_killed** – *counter* - diag

Objects killed by bans (lookup)

Number of objects killed by bans during object lookup.

**bans\_lurker\_tested** – *counter* - 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\_tested** – *counter* - 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\_tested** – *counter* - 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\_killed** – *counter* - diag

Objects killed by bans (lurker)

Number of objects killed by the ban-lurker.

**bans\_lurker\_obj\_killed\_cutoff** – *counter* - 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\_dups** – *counter* - diag

Bans superseded by other bans

Count of bans replaced by later identical bans.

**bans\_lurker\_contention** – *counter* - diag

Lurker gave way for lookup

Number of times the ban-lurker had to wait for lookups.

**bans\_persisted\_bytes** – *gauge* - diag

Bytes used by the persisted ban lists

Number of bytes used by the persisted ban lists.

**bans\_persisted\_fragmentation** – *gauge* - 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\_purges** – *counter* - info

Number of purge operations executed

**n\_obj\_purged** – *counter* - info

Number of purged objects

**exp\_mailed** – *counter* - diag

Number of objects mailed to expiry thread

Number of objects mailed to expiry thread for handling.

**exp\_received** – *counter* - diag

Number of objects received by expiry thread

Number of objects received by expiry thread for handling.

**hcb\_nolock** – *counter* - debug

HCB Lookups without lock

**hcb\_lock** – *counter* - debug

HCB Lookups with lock

**hcb\_insert** – *counter* - debug

HCB Inserts

**esi\_errors** – *counter* - diag

ESI parse errors (unlock)

**esi\_warnings** – *counter* - diag

ESI parse warnings (unlock)

**vmods** – *gauge* - info

Loaded VMODs

**n\_gzip** – *counter* - info

Gzip operations

**n\_gunzip** – *counter* - info

Gunzip operations

**n\_test\_gunzip** – *counter* - 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.

**http1\_iovs\_flush** – *counter* - info

Premature iovec flushes

Number of additional writes performed on HTTP1 connections because the number of IO vectors was too small to submit all possible IO in one go. This number is configured through the **http1\_iovs** parameter for client connections and implicitly defined by the amount of free workspace for backend connections.

## MEMPOOL – MEMORY POOL COUNTERS

**live** – *gauge* - debug

In use

**pool** – *gauge* - debug

In Pool

**sz\_wanted** – *gauge* - debug

Size requested

**sz\_actual** – *gauge* - debug

Size allocated

**allocs** – *counter* - debug

Allocations

**frees** – *counter* - debug

Frees

**recycle** – *counter* - debug

Recycled from pool

**timeout** – *counter* - debug

Timed out from pool

**toosmall** – *counter* - debug

Too small to recycle

**surplus** – *counter* - debug

Too many for pool

**randry** – *counter* - debug

Pool ran dry

## MGT – MANAGEMENT PROCESS COUNTERS

**uptime** – *counter* - info

Management process uptime

Uptime in seconds of the management process

**child\_start** – *counter* - diag

Child process started

Number of times the child process has been started

**child\_exit** – *counter* - diag

Child process normal exit

Number of times the child process has been cleanly stopped

**child\_stop** – *counter* - diag

Child process unexpected exit

Number of times the child process has exited with an unexpected return code

**child\_died** – *counter* - diag

Child process died (signal)

Number of times the child process has died due to signals

**child\_dump** – *counter* - diag

Child process core dumped

Number of times the child process has produced core dumps

**child\_panic** – *counter* - diag

Child process panic

Number of times the management process has caught a child panic

## SMA – MALLOC STEVEDORE COUNTERS

**c\_req** – *counter* - info

Allocator requests

Number of times the storage has been asked to provide a storage segment.

**c\_fail** – *counter* - info

Allocator failures

Number of times the storage has failed to provide a storage segment.

**c\_bytes** – *counter* - info

Bytes allocated

Number of total bytes allocated by this storage.

**c\_freed** – *counter* - info

Bytes freed

Number of total bytes returned to this storage.

**g\_alloc** – *gauge* - info

Allocations outstanding

Number of storage allocations outstanding.

**g\_bytes** – *gauge* - info

Bytes outstanding

Number of bytes allocated from the storage.

**g\_space** – *gauge* - info

Bytes available

Number of bytes left in the storage.

## SMF – FILE STEVEDORE COUNTERS

**c\_req** – *counter* - info

Allocator requests

Number of times the storage has been asked to provide a storage segment.

**c\_fail** – *counter* - info

Allocator failures

Number of times the storage has failed to provide a storage segment.

**c\_bytes** – *counter* - info

Bytes allocated

Number of total bytes allocated by this storage.

**c\_freed** – *counter* - info

Bytes freed

Number of total bytes returned to this storage.

**g\_alloc** – *gauge* - info

Allocations outstanding

Number of storage allocations outstanding.

**g\_bytes** – *gauge* - info

Bytes outstanding

Number of bytes allocated from the storage.

**g\_space** – *gauge* - info

Bytes available

Number of bytes left in the storage.

**g\_smf** – *gauge* - info

N struct smf

**g\_smf\_frag** – *gauge* - info

N small free smf

**g\_smf\_large** – *gauge* - info

N large free smf

## SMU – UMEM STEVEDORE COUNTERS

**c\_req** – *counter* - info

Allocator requests

Number of times the storage has been asked to provide a storage segment.

**c\_fail** – *counter* - info

Allocator failures

Number of times the storage has failed to provide a storage segment.

**c\_bytes** – *counter* - info

Bytes allocated

Number of total bytes allocated by this storage.

**c\_freed** – *counter* - info

Bytes freed

Number of total bytes returned to this storage.

**g\_alloc** – *gauge* - info

Allocations outstanding

Number of storage allocations outstanding.

**g\_bytes** – *gauge* - info

Bytes outstanding

Number of bytes allocated from the storage.

**g\_space** – *gauge* - info

Bytes available

Number of bytes left in the storage.

## VBE – BACKEND COUNTERS

**happy** – *bitmap* - 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\_hdrbytes** – *counter* - info

Request header bytes

Total backend request header bytes sent

**bereq\_bodybytes** – *counter* - info

Request body bytes

Total backend request body bytes sent

**beresp\_hdrbytes** – *counter* - info

Response header bytes

Total backend response header bytes received

**beresp\_bodybytes** – *counter* - info

Response body bytes

Total backend response body bytes received

**pipe\_hdrbytes** – *counter* - info

Pipe request header bytes

Total request bytes sent for piped sessions

**pipe\_out** – *counter* - info

Piped bytes to backend

Total number of bytes forwarded to backend in pipe sessions

**pipe\_in** – *counter* - info

Piped bytes from backend

Total number of bytes forwarded from backend in pipe sessions

**conn** – *gauge* - 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.

**req** – *counter* - info

Backend requests sent

**unhealthy** – *counter* - info

Fetches not attempted due to backend being unhealthy

**busy** – *counter* - info

Fetches not attempted due to backend being busy

Number of times the max\_connections limit was reached

**fail** – *counter* - 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\_eacces** – *counter* - diag

Connections failed with EACCES or EPERM

**fail\_eaddrnotavail** – *counter* - diag

Connections failed with EADDRNOTAVAIL

**fail\_econnrefused** – *counter* - diag

Connections failed with ECONNREFUSED

**fail\_enetunreach** – *counter* - diag

Connections failed with ENETUNREACH

**fail\_etimedout** – *counter* - diag

Connections failed ETIMEDOUT

**fail\_other** – *counter* - diag

Connections failed for other reason

**helddown** – *counter* - 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.

## WAITER – WAITER COUNTERS

**conns** – *gauge* - debug

Number of idle connections

Number of idle connections being waited over.

**remclose** – *counter* - debug

Number of idle connections closed by peer

Number of idle connections that experienced closure by peer while being waited for.

**timeout** – *counter* - debug

Number of idle connections timeout

Number of idle connections that experienced a timeout event while being waited for.

**action** – *counter* - debug

Number of idle connections read events

Number of idle connections that experienced a read event while being waited for.

## AUTHORS

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