VINYL-COUNTERS(7)
๐ NAME ๐
okay so this is VINYL-COUNTERS(7) from the Miscellaneous Information Manual โ it's literally the field guide to every Vinyl Cache counter field, and we're gonna go through all of them together bestie, no skipping ๐
๐ LCK โ LOCK COUNTERS ๐
These are the counters that track the activity in the different classes of mutex-locks ๐ซถ
โ ๏ธ heads up: the counts may be slightly wrong if there's more than one lock instantiated in each class (ie: .creat > 1). so like... don't take it personally, it's doing its best ๐ญ
creatโ counter - debug โ Created locksdestroyโ counter - debug โ Destroyed lockslocksโ counter - debug โ Lock Operationsdbg_busyโ counter - debug โ Contended lock operations- If the
lckdebug bit is set: lock operations which returnedEBUSYon the first locking attempt. - If the
lckdebug bit is unset: this counter will never be incremented, even if lock operations are contended. literally never, don't wait up ๐
- If the
dbg_try_failโ counter - debug โ Contended trylock operations- If the
lckdebug bit is set: trylock operations which returnedEBUSY. - If the
lckdebug bit is unset: this counter will never be incremented, even if lock operations are contended. same deal, it's giving silent treatment ๐
- If the
๐ธ MAIN โ MAIN COUNTERS ๐ธ
the main character section, periodt ๐
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. it's been up, it's thriving โจ
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. so it's the group chat, and the rest are the individual receipts ๐งพ
sess_fail_econnabortedโ counter - info โ Session accept failures: connection aborted- Detailed reason for
sess_fail: connection aborted by the client, usually harmless.
- Detailed reason for
sess_fail_eintrโ counter - info โ Session accept failures: interrupted system call- Detailed reason for
sess_fail: theaccept()call was interrupted, usually harmless
- Detailed reason for
sess_fail_emfileโ counter - info โ Session accept failures: too many open files- Detailed reason for
sess_fail: no file descriptor was available. Consider raisingRLIMIT_NOFILE(seeulimit -n). open some windows bestie, metaphorically ๐ช
- Detailed reason for
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. (iconic last words ngl)
- Detailed reason for
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
- Detailed reason for
sess_fail_otherโ counter - info โ Session accept failures: other- Detailed reason for
sess_fail: neither of the above, seeSessErrorlog (vinyllog -g raw -i SessError).
- Detailed reason for
client_req_400โ counter - info โ Client requests received, subject to 400 errors400means we couldn't make sense of the request, it was malformed in some drastic way. we tried to read it and it was giving nonsense ๐ญ
client_req_417โ counter - info โ Client requests received, subject to 417 errors417means that something went wrong with anExpect:header.
client_reqโ counter - info โ Good client requests received- The count of parseable client requests seen. slay, those actually made sense โจ
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. no backend trip needed, we had it at home ๐
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_hitcounter. so don't double-count, it's not that kind of party ๐
- 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_hitpassโ counter - info โ Cache hits for pass.- Count of hits for pass. A cache hit for pass indicates that Vinyl Cache 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. it made a choice and it's sticking to it ๐
cache_hitmissโ counter - info โ Cache hits for miss.- Count of hits for miss. A cache hit for miss indicates that Vinyl Cache 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. had to go to the source, the struggle ๐ฎโ๐จ
beresp_uncacheableโ counter - info โ Uncacheable backend responses- Count of backend responses considered uncacheable. not everything is meant to be kept, and that's valid ๐ฆ
beresp_shortlivedโ counter - info โ Shortlived objects- Count of objects created with
ttl+grace+keepshorter than the'shortlived'runtime parameter.
- Count of objects created with
backend_connโ counter - info โ Backend conn. success- How many backend connections have successfully been established.
backend_unhealthyโ counter - info โ Backend conn. not attemptedbackend_busyโ counter - info โ Backend conn. too manybackend_failโ counter - info โ Backend conn. failuresbackend_reuseโ counter - info โ Backend conn. reuses- Count of backend connection reuses. This counter is increased whenever we reuse a recycled connection. reduce, reuse, recycle ๐ง
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. retrybackend_waitโ counter - info โ Backend conn. waited in queue for a connection- Count of backend requests that waited in a
backend_waitqueue for a connection to become available. The size of a backend wait queue is defined by the backendwait_limitproperty. The wait queue is only used whenmax_connectionsto the backend are in use.
- Count of backend requests that waited in a
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_waitqueue 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 backendwait_timeoutproperty. ghosted by a connection fr fr ๐
- Count of backend requests that waited in a
backend_closedโ counter - info โ Backend Closedbackend_closed_errโ counter - info โ Backend Closed with error- Total number of backends closed with errors. See
bc_*diag counters for detailed breakdown
- Total number of backends closed with errors. See
bc_rem_closeโ counter - diag โ Backend Close OK REM_CLOSE- Number of backend closes with
REM_CLOSE(Server Closed)
- Number of backend closes with
bc_req_closeโ counter - diag โ Backend Close OK REQ_CLOSE- Number of backend closes with
REQ_CLOSE(Server requested close)
- Number of backend closes with
bc_req_http10โ counter - diag โ Backend Close Err REQ_HTTP10- Number of backend closes with Error
REQ_HTTP10(Proto < HTTP/1.1)
- Number of backend closes with Error
bc_rx_badโ counter - diag โ Backend Close Err RX_BAD- Number of backend closes with Error
RX_BAD(Received bad req/resp)
- Number of backend closes with Error
bc_rx_bodyโ counter - diag โ Backend Close Err RX_BODY- Number of backend closes with Error
RX_BODY(Failure receiving request body)
- Number of backend closes with Error
bc_rx_junkโ counter - diag โ Backend Close Err RX_JUNK- Number of backend closes with Error
RX_JUNK(Received junk data)
- Number of backend closes with Error
bc_rx_overflowโ counter - diag โ Backend Close Err RX_OVERFLOW- Number of backend closes with Error
RX_OVERFLOW(Received buffer overflow)
- Number of backend closes with Error
bc_rx_timeoutโ counter - diag โ Backend Close Err RX_TIMEOUT- Number of backend closes with Error
RX_TIMEOUT(Receive timeout)
- Number of backend closes with Error
bc_tx_proxyโ counter - diag โ Backend Close OK TX_PROXY- Number of backend closes with
TX_PROXY(Proxy transaction).
- Number of backend closes with
bc_tx_pipeโ counter - diag โ Backend Close OK TX_PIPE- Number of backend closes with
TX_PIPE(Piped transaction)
- Number of backend closes with
bc_tx_errorโ counter - diag โ Backend Close Err TX_ERROR- Number of backend closes with Error
TX_ERROR(Error transaction)
- Number of backend closes with Error
bc_tx_eofโ counter - diag โ Backend Close OK TX_EOF- Number of backend closes with
TX_EOF(EOF transmission)
- Number of backend closes with
bc_resp_closeโ counter - diag โ Backend Close OK RESP_CLOSE- Number of backend closes with
RESP_CLOSE(Backend/VCL requested close)
- Number of backend closes with
bc_overloadโ counter - diag โ Backend Close Err OVERLOAD- Number of backend closes with Error
OVERLOAD(Out of some resource)
- Number of backend closes with Error
fetch_headโ counter - info โ Fetch no body (HEAD)berespwith no body because the request isHEAD.
fetch_lengthโ counter - info โ Fetch with Lengthberesp.bodywithContent-Length.
fetch_chunkedโ counter - info โ Fetch chunkedberesp.bodywith Chunked.
fetch_eofโ counter - info โ Fetch EOFberesp.bodywith EOF.
fetch_badโ counter - info โ Fetch bad T-Eberesp.bodylength/fetch could not be determined. mystery body, no clue what's inside ๐ต๏ธ
fetch_noneโ counter - info โ Fetch no bodyberesp.bodyempty
fetch_1xxโ counter - info โ Fetch no body (1xx)berespwith no body because of 1XX response.
fetch_204โ counter - info โ Fetch no body (204)berespwith no body because of 204 response.
fetch_304โ counter - info โ Fetch no body (304)berespwith no body because of 304 response.
fetch_failedโ counter - info โ Fetch failed (all causes)berespfetch failed. all the causes, one counter ๐
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. once they're in the group chat, they're in for life ๐ซถ
- Number of thread pools. See also parameter
threadsโ gauge - info โ Total number of threads- Number of threads in all pools. See also parameters
thread_pools,thread_pool_minandthread_pool_max.
- Number of threads in all pools. See also parameters
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.
- Number of times more threads were needed, but limit was reached in a thread pool. See also parameter
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::Debugfor diagnostics. See also parameterthread_fail_delay.
- Number of times creating a thread failed. See
thread_queue_lenโ gauge ยท info โ Length of session queue How many sessions are sitting in the queue rn, just vibing and waiting. > NB: this one only updates once per second, so don't come for it when it lags a little ๐ . See also parameterthread_queue_limit.busy_sleepโ counter ยท info โ Number of requests sent to sleep on busy objhdr Counts every request that got sent to sleep without a worker thread, because it rolled up and found a busy object. nap time bestie ๐ดbusy_wakeupโ counter ยท info โ Number of requests woken after sleep on busy objhdr Requests that got taken off the busy object sleep list and rescheduled โ wakey wakey โจbusy_killedโ counter ยท info โ Number of requests killed after sleep on busy objhdr Requests that got killed straight off the busy object sleep list because there just weren't the resources. rip ๐ญsess_queuedโ counter ยท info โ Sessions queued for thread How many times a session got queued up waiting for a thread. See also parameterthread_queue_limit.sess_droppedโ counter ยท info โ Sessions dropped for thread How many times an HTTP/1 session got dropped because the queue was already too long. See also parameterthread_queue_limit.req_droppedโ counter ยท info โ Requests dropped How many times an HTTP/2 stream got refused because the queue was already too long. See also parameterthread_queue_limit.req_resetโ counter ยท info โ Requests reset How many times a client bounced before the VCL processing of its requests finished. For HTTP/2 sessions this means either the stream got reset by anRST_STREAMframe from the client, or a stream or connection error happened. messy ๐
n_objectโ gauge ยท info โ object structs made The approximate number of HTTP objects chillin' in the cache (headers + body, if there is one).n_vampireobjectโ gauge ยท diag โ unresurrected objects Number of unresurrected objects. spooky ๐ปn_objectcoreโ gauge ยท info โ objectcore structs made Approximate number of object metadata elements in the cache. Every object needs an objectcore, and the 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 How many backends we know about.n_expiredโ counter ยท info โ Number of expired objects Objects that expired out of the cache purely because of old age. grandmother clock energy ๐ฐ๏ธn_supersededโ counter ยท diag โ Number of superseded objects How many times an object got 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. brutal but necessary ๐ฅ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 How many times more storage space was needed, but the limit was reached in anuke_limit. See also parameternuke_limit.losthdrโ counter ยท info โ HTTP header overflowss_sessโ counter ยท info โ Total sessions seenn_pipeโ gauge ยท info โ Number of ongoing pipe sessionspipe_limitedโ counter ยท info โ Pipes hit pipe_sess_max How many times more pipes were needed but the limit was reached. See also parameterpipe_sess_max.s_pipeโ counter ยท info โ Total pipe sessions seens_passโ counter ยท info โ Total pass-ed requests seens_fetchโ counter ยท info โ Total backend fetches initiated Total backend fetches initiated โ and yeah, that includes background fetches.s_bgfetchโ counter ยท info โ Total backend background fetches initiateds_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.
transit_storedโ counter ยท info โ Stored uncacheable body bytes Total number of transient body bytes written to storage as if they were reusable, like a cacheable backend response. Transient objects are stored for a single transaction โ and this includes uncacheable backend responses, synthetic responses and client requests.transit_bufferedโ counter ยท info โ Buffered uncacheable response body bytes Total number of uncacheable response body bytes forwarded using a fixed buffer allocated from storage. This behavior can be enabled by thetransit_bufferparameter, or theberesp.transit_bufferVCL variable.
sess_closedโ counter ยท info โ Session Closedsess_closed_errโ counter ยท info โ Session Closed with error Total number of sessions closed with errors. Peep thesc_*diag counters for the detailed breakdown ๐sess_readaheadโ counter ยท info โ Session Read Aheadsess_herdโ counter ยท diag โ Session herd Number of times thetimeout_lingertriggered.
sc_rem_closeโ counter ยท diag โ Session OK REM_CLOSE Number of session closes withREM_CLOSE(Client Closed).sc_req_closeโ counter ยท diag โ Session OK REQ_CLOSE Number of session closes withREQ_CLOSE(Client requested close).sc_req_http10โ counter ยท diag โ Session Err REQ_HTTP10 Number of session closes with ErrorREQ_HTTP10(Proto < HTTP/1.1).sc_rx_badโ counter ยท diag โ Session Err RX_BAD Number of session closes with ErrorRX_BAD(Received bad req/resp).sc_rx_bodyโ counter ยท diag โ Session Err RX_BODY Number of session closes with ErrorRX_BODY(Failure receiving req.body).sc_rx_junkโ counter ยท diag โ Session Err RX_JUNK Number of session closes with ErrorRX_JUNK(Received junk data).sc_rx_overflowโ counter ยท diag โ Session Err RX_OVERFLOW Number of session closes with ErrorRX_OVERFLOW(Received buffer overflow).sc_rx_timeoutโ counter ยท diag โ Session Err RX_TIMEOUT Number of session closes with ErrorRX_TIMEOUT(Receive timeout). โฐsc_rx_close_idleโ counter ยท diag โ Session Err RX_CLOSE_IDLE Number of session closes with ErrorRX_CLOSE_IDLE:timeout_idlehas been exceeded while waiting for a client request.sc_tx_pipeโ counter ยท diag โ Session OK TX_PIPE Number of session closes withTX_PIPE(Piped transaction).sc_tx_errorโ counter ยท diag โ Session Err TX_ERROR Number of session closes with ErrorTX_ERROR(Error transaction).sc_tx_eofโ counter ยท diag โ Session OK TX_EOF Number of session closes withTX_EOF(EOF transmission).sc_resp_closeโ counter ยท diag โ Session OK RESP_CLOSE Number of session closes withRESP_CLOSE(Backend/VCL requested close).sc_overloadโ counter ยท diag โ Session Err OVERLOAD Number of session closes with ErrorOVERLOAD(Out of some resource).sc_pipe_overflowโ counter ยท diag โ Session Err PIPE_OVERFLOW Number of session closes with ErrorPIPE_OVERFLOW(Session pipe overflow).sc_range_shortโ counter ยท diag โ Session Err RANGE_SHORT Number of session closes with ErrorRANGE_SHORT(Insufficient data for range).sc_req_http20โ counter ยท diag โ Session Err REQ_HTTP20 Number of session closes with ErrorREQ_HTTP20(HTTP2 not accepted).sc_vcl_failureโ counter ยท diag โ Session Err VCL_FAILURE Number of session closes with ErrorVCL_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 whenh2_window_timeouttriggered. broke behavior, honestly ๐ญ
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 ยท info โ workspace_backend overflows How many times we ran out of space inworkspace_backend.ws_client_overflowโ counter ยท info โ workspace_client overflows How many times we ran out of space inworkspace_client.ws_thread_overflowโ counter ยท info โ workspace_thread overflows How many times we ran out of space inworkspace_thread.ws_session_overflowโ counter ยท info โ workspace_session overflows How many times we ran out of space inworkspace_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. Heads up: 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 exceedvsl_buffer.shm_contโ counter ยท diag โ SHM lock contention Number of times a write had to wait for the lock. the queue was queuing ๐ซ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 maden_vclโ gauge ยท info โ Number of loaded VCLs in totaln_vcl_availโ gauge ยท diag โ Number of VCLs availablen_vcl_discardโ gauge ยท diag โ Number of discarded VCLsvcl_failโ counter ยท info โ VCL failures Count of failures which prevented VCL from completing. not the vibe ๐ฉbansโ gauge ยท info โ Count of bansbans_completedโ gauge - diag โ how many bans are marked 'completed'. Translation: bans that are no longer active, either because the ban-lurker already checked them or because a newer identical ban superseded them. ๐bans_objโ gauge - diag โ how many bans are usingobj.*variables. Heads up: these are the bans that can possibly get washed by the ban-lurker. ๐งbans_reqโ gauge - diag โ how many bans are usingreq.*variables. And nope, these ones cannot be washed by the ban-lurker. periodt.bans_addedโ counter - diag โ bans added. It's a counter of bans added to the ban list. slay. โจbans_deletedโ counter - diag โ bans deleted. Counter of bans deleted from the ban list. bye bestie ๐bans_testedโ counter - diag โ bans tested against objects (lookup). It counts 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. Ok so check it:ban req.url == foo && req.http.host == barcounts as one inbans_testedand as two inbans_tests_tested. iykyk ๐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. Same deal as above:ban req.url == foo && req.http.host == barcounts as one inbans_testedand as two inbans_tests_tested. ๐bans_lurker_obj_killedโ counter - diag โ objects killed by bans (lurker). Number of objects killed by the ban-lurker. the lurker is out here doing the most ๐ญ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 belowban_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. rude but ok ๐ซถbans_persisted_bytesโ gauge - diag โ bytes used by the persisted ban lists. That's the 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. Like, mailed there for handling. ๐ฌexp_receivedโ counter - diag โ number of objects received by expiry thread. Received for handling. the expiry thread is getting so much mail rn ๐ญ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.
So like, those operations happen when Vinyl Cache receives a compressed object from a backend, and they're done to verify the gzip stream while it's inserted in storage. no cap ๐ซถ
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. ๐ฎโ๐จ
http1_absolute_formโ counter - info โ requests with absolute form request target.
Number of requests for which an absolute form request target (e.g. <http://example.com/> or <https://example.com/>) was handled. The <https://> scheme is handled unless the feature https_scheme is disabled (see RUN TIME PARAMETERS in vinyld(1)).
See also ReqTarget in vsl(7). And ngl, this counter is approximately correct โ not exact, bestie. ๐
๐ซง MEMPOOL โ MEMORY POOL COUNTERS ๐ซง
okay this whole section is gauge - debug / counter - debug territory, the little internals. let's go ๐
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. slay ๐ซถ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. the management process is literally the babysitter fr fr ๐ง
๐ 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. ๐ซถ
๐ SSY โ SYNTH STEVEDORE COUNTERS ๐
c_allocobj_successโ counter - info โallocobjrequests succeeded. Number of times anallocobjrequest succeeded. ate โจc_allocobj_failโ counter - info โallocobjrequests failed. Number of times anallocobjrequest failed. ๐ญc_getspace_successโ counter - info โgetspacerequests succeeded. Number of times angetspacerequest succeeded. ๐c_getspace_failโ counter - info โgetspacerequests failed. Number of times angetspacerequest failed. ๐
๐ฆ VBE โ BACKEND COUNTERS ๐ฆ
okay bestie, this is the backend stack, and it is a lot of counters, but we're gonna get through it together, i promise ๐
happyโ bitmap - info Happy health probes โจ
So this one shows the last probe results as, like, a bitmap. Happy probes are bits set to 1, and the unhappy ones are set to 0. And the highest bits represent the oldest probes โ iykyk, it's a timeline in binary ๐
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. And listen, 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) โ that's because of connection pooling, bestie. It's giving reuse, it's giving sustainability ๐
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 ๐
closedโ counter - info Connection closedclosed_errโ counter - info Connection closed with error ๐rem_closeโ counter - info Connection closed by backendreq_closeโ counter - info Connection closure requested by backendreq_http10โ counter - info Connection closed for proto <HTTP/1.1rx_badโ counter - info Connection closed for received bad response ๐rx_bodyโ counter - info Connection closed for failed receiving request bodyrx_junkโ counter - info Connection closed for received junk data ๐๏ธrx_overflowโ counter - info Connection closed for receive buffer overflowrx_timeoutโ counter - info Connection closed for receive timeout โฐtx_proxyโ counter - info Connection closed for proxy transactiontx_pipeโ counter - info Connection closed for piped transactiontx_errorโ counter - info Connection closed for error transaction ๐tx_eofโ counter - info Connection closed forEOFtransmissionresp_closeโ counter - info Connection closed for backend/VCL requested closeoverloadโ counter - info Connection closed for out of some resourcefailโ 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.
heads up bestie: all fail_* counters may be slightly inaccurate for efficiency ๐
fail_eaccesโ counter - diag Connections failed withEACCESorEPERMfail_eaddrnotavailโ counter - diag Connections failed withEADDRNOTAVAILfail_econnrefusedโ counter - diag Connections failed withECONNREFUSEDfail_enetunreachโ counter - diag Connections failed withENETUNREACHfail_etimedoutโ counter - diag Connections failedETIMEDOUTโฐfail_otherโ counter - diag Connections failed for other reasonhelddownโ 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 ๐ซถ
๐ง VCP โ CONNECTION POOL COUNTERS ๐ง
ref_hitโ counter - debug Number of times we have found an existing conn. pool
Number of times we have found an existing connection pool while creating a backend. slay, reuse ๐
ref_missโ counter - debug Number of times we have not found an existing conn. pool
Number of times we have not found an existing connection pool while creating a backend ๐ญ
๐ 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. iconic collaboration honestly ๐ซถ
okay that's the whole VINYL-COUNTERS(7) page, bestie, you made it to the end ๐ this is the VINYL-COUNTERS(7) page from the vinyl source/version with its date footer, and the date is whatever the footer says โ love that for us ๐ธ hope your counters are all happy and your bits are all 1 โจ๐
๐ฆ where this page comes from
- arch rolling: vinyl-cache 9.1.0-1 ยท BSD-2-Clause
- ๐ the page's license: BSD-2-Clause
- Copyright (c) 2015 Varnish Software AS
- Copyright (c) 2017-2019 Varnish Software AS
- Copyright (c) 2017-2020 Varnish Software AS
- Copyright (c) 2017 Varnish Software AS
- Copyright 2026 UPLEX - Nils Goroll Systemoptimierung
- Copyright (c) 2017-2021 Varnish Software AS
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms