Try it free

Vinyl Cache extension

  • Latest Dynatrace
  • Extension
  • Published Jun 11, 2026

Monitor Vinyl Cache instances by collecting performance, backend, client, and thread metrics to track cache health and optimize content delivery.

Get started

Overview

Monitor Vinyl Cache performance to optimize content delivery and reduce response times.

Use cases

  • Monitor the health and state of Vinyl Cache instances.
  • Detect and alert on anomalous behavior.
  • Understand the load and operational performance of the cache.

Requirements

  • OneAgent must be installed on the host with the Vinyl Cache instance to be monitored.

  • vinylstat binary must be present on the host.

  • OneAgent user must be able to execute the binary on the host.

  • Before running the sudo vinylstat command, make sure dtuser has sudo permissions and is set up for passwordless access in the sudoers file.

Compatibility information

Vinyl version 9.0.0+.

Details

This extension collects the following Vinyl Cache server metrics by executing the vinylstat command:

  • Cache performance
  • Backend metrics
  • Client metrics
  • Thread metrics

Licensing and costs

There is no charge to use the extension. You are only charged for the data that the extension ingests.

The Vinyl Cache extension ingests custom metrics, which consume Davis Data Units (DDUs) (Dynatrace classic license) or Metrics powered by Grail (DPS), according to your license model.

The following formula provides the approximate annual data points ingested, assuming all feature sets are enabled. Actual ingested metric data point volumes depend heavily on your specific Vinyl Cache environment.

(
(20 * number of backends)
+ (7 * number of malloc stevedores)
+ (7 * number of umem stevedores)
+ (10 * number of file stevedores)
+ 199
)
* 60 minutes * 24 hours * 365 days data points per year

Dynatrace Platform Subscription

In the Dynatrace Platform Subscription, metric ingestion consumes Metrics powered by Grail according to the number of ingested metric data points.

To calculate the approximate yearly consumption, apply the following calculation: <metric data points per minute> * 60 minutes * 24 hours * 365 days.

Dynatrace classic license

In the classic licensing model, metric ingestion consumes Davis Data Units (DDUs) at the rate of .001 DDUs per metric data point. Multiply the above formula for annual data points by .001 to estimate annual DDU usage.

The DDU cost above does not include any possible log events or custom events that are triggered by the extension. For more information, see DDU events.

Feature sets

When activating your extension using a monitoring configuration, you can limit monitoring to one of the feature sets. To work properly, the extension has to collect at least one metric after the activation.

In highly segmented networks, feature sets can reflect the segments of your environment. Then, when you create a monitoring configuration, you can select a feature set and a corresponding ActiveGate group that can connect to this particular segment.

All metrics that aren't categorized into any feature set are considered to be the default and are always reported.

A metric inherits the feature set of a subgroup, which in turn inherits the feature set of a group. Also, the feature set defined on the metric level overrides the feature set defined on the subgroup level, which in turn overrides the feature set defined on the group level.

sma
Metric nameMetric keyDescription
Allocator requestsvinyl.cache.sma.c_req.countNumber of times the storage has been asked to provide a storage segment.
Allocator failuresvinyl.cache.sma.c_fail.countNumber of times the storage has failed to provide a storage segment.
Bytes allocatedvinyl.cache.sma.c_bytes.countNumber of total bytes allocated by this storage.
Bytes freedvinyl.cache.sma.c_freed.countNumber of total bytes returned to this storage.
Allocations outstandingvinyl.cache.sma.g_allocNumber of storage allocations outstanding.
Bytes outstandingvinyl.cache.sma.g_bytesNumber of bytes allocated from the storage.
Bytes availablevinyl.cache.sma.g_spaceNumber of bytes left in the storage.
main
Metric nameMetric keyDescription
stat summ operationsvinyl.cache.main.summs.countNumber of times per-thread statistics were summed into the global counters.
Child process uptimevinyl.cache.main.uptime.countHow long the child process has been running.
Sessions acceptedvinyl.cache.main.sess_conn.countCount of sessions successfully accepted
Session accept failuresvinyl.cache.main.sess_fail.countCount 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 abortedvinyl.cache.main.sess_fail_econnaborted.countDetailed reason for sess_fail: Connection aborted by the client, usually harmless.
Session accept failures: interrupted system callvinyl.cache.main.sess_fail_eintr.countDetailed reason for sess_fail: The accept() call was interrupted, usually harmless
Session accept failures: too many open filesvinyl.cache.main.sess_fail_emfile.countDetailed reason for sess_fail: No file descriptor was available. Consider raising RLIMIT_NOFILE (see ulimit -n).
Session accept failures: bad file descriptorvinyl.cache.main.sess_fail_ebadf.countDetailed reason for sess_fail: The listen socket file descriptor was invalid. Should never happen.
Session accept failures: not enough memoryvinyl.cache.main.sess_fail_enomem.countDetailed reason for sess_fail: Most likely insufficient socket buffer memory. Should never happen
Session accept failures: othervinyl.cache.main.sess_fail_other.countDetailed reason for sess_fail: neither of the above, see SessError log (vinyllog -g raw -i SessError).
Client requests received, subject to 400 errorsvinyl.cache.main.client_req_400.count400 means we couldn't make sense of the request, it was malformed in some drastic way.
Client requests received, subject to 417 errorsvinyl.cache.main.client_req_417.count417 means that something went wrong with an Expect: header.
Good client requests receivedvinyl.cache.main.client_req.countThe count of parseable client requests seen.
ESI subrequestsvinyl.cache.main.esi_req.countNumber of ESI subrequests made.
Cache hitsvinyl.cache.main.cache_hit.countCount 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 hitsvinyl.cache.main.cache_hit_grace.countCount 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.vinyl.cache.main.cache_hitpass.countCount 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.vinyl.cache.main.cache_hitmiss.countCount 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 missesvinyl.cache.main.cache_miss.countCount of misses. A cache miss indicates the object was fetched from the backend before delivering it to the client.
Uncacheable backend responsesvinyl.cache.main.beresp_uncacheable.countCount of backend responses considered uncacheable.
Shortlived objectsvinyl.cache.main.beresp_shortlived.countCount of objects created with ttl+grace+keep shorter than the 'shortlived' runtime parameter.
Backend conn. successvinyl.cache.main.backend_conn.countHow many backend connections have successfully been established.
Backend conn. not attemptedvinyl.cache.main.backend_unhealthy.countBackend conn. not attempted
Backend conn. too manyvinyl.cache.main.backend_busy.countBackend conn. too many
Backend conn. failuresvinyl.cache.main.backend_fail.countBackend conn. failures
Backend conn. reusesvinyl.cache.main.backend_reuse.countCount of backend connection reuses. This counter is increased whenever we reuse a recycled connection.
Backend conn. recyclesvinyl.cache.main.backend_recycle.countCount 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. retryvinyl.cache.main.backend_retry.countBackend conn. retry
Fetch no body (HEAD)vinyl.cache.main.fetch_head.countberesp with no body because the request is HEAD.
Fetch with Lengthvinyl.cache.main.fetch_length.countberesp.body with Content-Length.
Fetch chunkedvinyl.cache.main.fetch_chunked.countberesp.body with Chunked.
Fetch EOFvinyl.cache.main.fetch_eof.countberesp.body with EOF.
Fetch bad T-Evinyl.cache.main.fetch_bad.countberesp.body length/fetch could not be determined.
Fetch no bodyvinyl.cache.main.fetch_none.countberesp.body empty
Fetch no body (1xx)vinyl.cache.main.fetch_1xx.countberesp with no body because of 1XX response.
Fetch no body (204)vinyl.cache.main.fetch_204.countberesp with no body because of 204 response.
Fetch no body (304)vinyl.cache.main.fetch_304.countberesp with no body because of 304 response.
Fetch failed (all causes)vinyl.cache.main.fetch_failed.countberesp fetch failed.
Background fetch failed (no thread)vinyl.cache.main.bgfetch_no_thread.countA bgfetch triggered by a grace hit failed, no thread available.
Number of thread poolsvinyl.cache.main.poolsNumber of thread pools. See also parameter thread_pools. NB: Presently pools cannot be removed once created.
Total number of threadsvinyl.cache.main.threadsNumber of threads in all pools. See also parameters thread_pools, thread_pool_min and thread_pool_max.
Threads hit maxvinyl.cache.main.threads_limited.countNumber of times more threads were needed, but limit was reached in a thread pool. See also parameter thread_pool_max.
Threads createdvinyl.cache.main.threads_created.countTotal number of threads created in all pools.
Threads destroyedvinyl.cache.main.threads_destroyed.countTotal number of threads destroyed in all pools.
Thread creation failedvinyl.cache.main.threads_failed.countNumber of times creating a thread failed. See VSL::Debug for diagnostics. See also parameter thread_fail_delay.
Length of session queuevinyl.cache.main.thread_queue_lenLength 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 objhdrvinyl.cache.main.busy_sleep.countNumber of requests sent to sleep without a worker thread because they found a busy object.
Number of requests woken after sleep on busy objhdrvinyl.cache.main.busy_wakeup.countNumber of requests taken off the busy object sleep list and rescheduled.
Number of requests killed after sleep on busy objhdrvinyl.cache.main.busy_killed.countNumber of requests killed from the busy object sleep list due to lack of resources.
Sessions queued for threadvinyl.cache.main.sess_queued.countNumber of times session was queued waiting for a thread. See also parameter thread_queue_limit.
Sessions dropped for threadvinyl.cache.main.sess_dropped.countNumber of times an HTTP/1 session was dropped because the queue was too long already. See also parameter thread_queue_limit.
Requests droppedvinyl.cache.main.req_dropped.countNumber of times an HTTP/2 stream was refused because the queue was too long already. See also parameter thread_queue_limit.
object structs madevinyl.cache.main.n_objectApproximate number of HTTP objects (headers + body, if present) in the cache.
unresurrected objectsvinyl.cache.main.n_vampireobjectNumber of unresurrected objects
objectcore structs madevinyl.cache.main.n_objectcoreApproximate 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 madevinyl.cache.main.n_objectheadApproximate number of different hash entries in the cache.
Number of backendsvinyl.cache.main.n_backendNumber of backends known to us.
Number of expired objectsvinyl.cache.main.n_expired.countNumber of objects that expired from cache because of old age.
Number of LRU nuked objectsvinyl.cache.main.n_lru_nuked.countHow many objects have been forcefully evicted from storage to make room for a new object.
Number of LRU moved objectsvinyl.cache.main.n_lru_moved.countNumber of move operations done on the LRU list.
Reached nuke_limitvinyl.cache.main.n_lru_limited.countNumber of times more storage space were needed, but limit was reached in a nuke_limit. See also parameter nuke_limit.
HTTP header overflowsvinyl.cache.main.losthdr.countHTTP header overflows
Total sessions seenvinyl.cache.main.s_sess.countTotal sessions seen
Number of ongoing pipe sessionsvinyl.cache.main.n_pipeNumber of ongoing pipe sessions
Pipes hit pipe_sess_maxvinyl.cache.main.pipe_limited.countNumber of times more pipes were needed, but the limit was reached. See also parameter pipe_sess_max.
Total pipe sessions seenvinyl.cache.main.s_pipe.countTotal pipe sessions seen
Total pass-ed requests seenvinyl.cache.main.s_pass.countTotal pass-ed requests seen
Total backend fetches initiatedvinyl.cache.main.s_fetch.countTotal backend fetches initiated, including background fetches.
Total backend background fetches initiatedvinyl.cache.main.s_bgfetch.countTotal backend background fetches initiated
Total synthetic responses madevinyl.cache.main.s_synth.countTotal synthetic responses made
Request header bytesvinyl.cache.main.s_req_hdrbytes.countTotal request header bytes received
Request body bytesvinyl.cache.main.s_req_bodybytes.countTotal request body bytes received
Response header bytesvinyl.cache.main.s_resp_hdrbytes.countTotal response header bytes transmitted
Response body bytesvinyl.cache.main.s_resp_bodybytes.countTotal response body bytes transmitted
Pipe request header bytesvinyl.cache.main.s_pipe_hdrbytes.countTotal request bytes received for piped sessions
Piped bytes from clientvinyl.cache.main.s_pipe_in.countTotal number of bytes forwarded from clients in pipe sessions
Piped bytes to clientvinyl.cache.main.s_pipe_out.countTotal number of bytes forwarded to clients in pipe sessions
Session Closedvinyl.cache.main.sess_closed.countSession Closed
Session Closed with errorvinyl.cache.main.sess_closed_err.countTotal number of sessions closed with errors. See sc_* diag counters for detailed breakdown
Session Read Aheadvinyl.cache.main.sess_readahead.countSession Read Ahead
Session herdvinyl.cache.main.sess_herd.countNumber of times the timeout_linger triggered
Session OK REM_CLOSEvinyl.cache.main.sc_rem_close.countNumber of session closes with REM_CLOSE (Client Closed)
Session OK REQ_CLOSEvinyl.cache.main.sc_req_close.countNumber of session closes with REQ_CLOSE (Client requested close)
Session Err REQ_HTTP10vinyl.cache.main.sc_req_http10.countNumber of session closes with Error REQ_HTTP10 (Proto < HTTP/1.1)
Session Err RX_BADvinyl.cache.main.sc_rx_bad.countNumber of session closes with Error RX_BAD (Received bad req/resp)
Session Err RX_BODYvinyl.cache.main.sc_rx_body.countNumber of session closes with Error RX_BODY (Failure receiving req.body)
Session Err RX_JUNKvinyl.cache.main.sc_rx_junk.countNumber of session closes with Error RX_JUNK (Received junk data)
Session Err RX_OVERFLOWvinyl.cache.main.sc_rx_overflow.countNumber of session closes with Error RX_OVERFLOW (Received buffer overflow)
Session Err RX_TIMEOUTvinyl.cache.main.sc_rx_timeout.countNumber of session closes with Error RX_TIMEOUT (Receive timeout)
Session Err RX_CLOSE_IDLEvinyl.cache.main.sc_rx_close_idle.countNumber of session closes with Error RX_CLOSE_IDLE: timeout_idle has been exceeded while waiting for a client request.
Session OK TX_PIPEvinyl.cache.main.sc_tx_pipe.countNumber of session closes with TX_PIPE (Piped transaction)
Session Err TX_ERRORvinyl.cache.main.sc_tx_error.countNumber of session closes with Error TX_ERROR (Error transaction)
Session OK TX_EOFvinyl.cache.main.sc_tx_eof.countNumber of session closes with TX_EOF (EOF transmission)
Session OK RESP_CLOSEvinyl.cache.main.sc_resp_close.countNumber of session closes with RESP_CLOSE (Backend/VCL requested close)
Session Err OVERLOADvinyl.cache.main.sc_overload.countNumber of session closes with Error OVERLOAD (Out of some resource)
Session Err PIPE_OVERFLOWvinyl.cache.main.sc_pipe_overflow.countNumber of session closes with Error PIPE_OVERFLOW (Session pipe overflow)
Session Err RANGE_SHORTvinyl.cache.main.sc_range_short.countNumber of session closes with Error RANGE_SHORT (Insufficient data for range)
Session Err REQ_HTTP20vinyl.cache.main.sc_req_http20.countNumber of session closes with Error REQ_HTTP20 (HTTP2 not accepted)
Session Err VCL_FAILUREvinyl.cache.main.sc_vcl_failure.countNumber of session closes with Error VCL_FAILURE (VCL failure)
Delivery failed due to insufficient workspace.vinyl.cache.main.client_resp_500.countNumber of times we failed a response due to running out of workspace memory during delivery.
workspace_backend overflowsvinyl.cache.main.ws_backend_overflow.countNumber of times we ran out of space in workspace_backend.
workspace_client overflowsvinyl.cache.main.ws_client_overflow.countNumber of times we ran out of space in workspace_client.
workspace_thread overflowsvinyl.cache.main.ws_thread_overflow.countNumber of times we ran out of space in workspace_thread.
workspace_session overflowsvinyl.cache.main.ws_session_overflow.countNumber of times we ran out of space in workspace_session.
SHM recordsvinyl.cache.main.shm_records.countNumber of log records written to the shared memory log.
SHM writesvinyl.cache.main.shm_writes.countNumber of individual writes to the shared memory log. A single write may batch multiple records for bufferred tasks.
SHM flushes due to overflowvinyl.cache.main.shm_flushes.countNumber of writes performed before the end of a bufferred task because adding a record to a batch would exceed vsl_buffer.
SHM lock contentionvinyl.cache.main.shm_cont.countNumber of times a write had to wait for the lock.
SHM cycles through VSL spacevinyl.cache.main.shm_cycles.countNumber of times a write of log records would reach past the end of the shared memory log, cycling back to the beginning.
SHM bytesvinyl.cache.main.shm_bytes.countNumber of bytes written to the shared memory log.
Backend requests madevinyl.cache.main.backend_req.countBackend requests made
Number of loaded VCLs in totalvinyl.cache.main.n_vclNumber of loaded VCLs in total
Number of VCLs availablevinyl.cache.main.n_vcl_availNumber of VCLs available
Number of discarded VCLsvinyl.cache.main.n_vcl_discardNumber of discarded VCLs
VCL failuresvinyl.cache.main.vcl_fail.countCount of failures which prevented VCL from completing.
Count of bansvinyl.cache.main.bansNumber of all bans in system, including bans superseded by newer bans and bans already checked by the ban-lurker.
Number of bans marked 'completed'vinyl.cache.main.bans_completedNumber 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.*vinyl.cache.main.bans_objNumber of bans which use obj.* variables. These bans can possibly be washed by the ban-lurker.
Number of bans using req.*vinyl.cache.main.bans_reqNumber of bans which use req.* variables. These bans can not be washed by the ban-lurker.
Bans addedvinyl.cache.main.bans_added.countCounter of bans added to ban list.
Bans deletedvinyl.cache.main.bans_deleted.countCounter of bans deleted from ban list.
Bans tested against objects (lookup)vinyl.cache.main.bans_tested.countCount of how many bans and objects have been tested against each other during hash lookup.
Objects killed by bans (lookup)vinyl.cache.main.bans_obj_killed.countNumber of objects killed by bans during object lookup.
Bans tested against objects (lurker)vinyl.cache.main.bans_lurker_tested.countCount of how many bans and objects have been tested against each other by the ban-lurker.
Ban tests tested against objects (lookup)vinyl.cache.main.bans_tests_tested.countCount 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)vinyl.cache.main.bans_lurker_tests_tested.countCount 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)vinyl.cache.main.bans_lurker_obj_killed.countNumber of objects killed by the ban-lurker.
Objects killed by bans for cutoff (lurker)vinyl.cache.main.bans_lurker_obj_killed_cutoff.countNumber of objects killed by the ban-lurker to keep the number of bans below ban_cutoff.
Bans superseded by other bansvinyl.cache.main.bans_dups.countCount of bans replaced by later identical bans.
Lurker gave way for lookupvinyl.cache.main.bans_lurker_contention.countNumber of times the ban-lurker had to wait for lookups.
Bytes used by the persisted ban listsvinyl.cache.main.bans_persisted_bytesNumber of bytes used by the persisted ban lists.
Extra bytes in persisted ban lists due to fragmentationvinyl.cache.main.bans_persisted_fragmentationNumber of extra bytes accumulated through dropped and completed bans in the persistent ban lists.
Number of purge operations executedvinyl.cache.main.n_purges.countNumber of purge operations executed
Number of purged objectsvinyl.cache.main.n_obj_purged.countNumber of purged objects
Number of objects mailed to expiry threadvinyl.cache.main.exp_mailed.countNumber of objects mailed to expiry thread for handling.
Number of objects received by expiry threadvinyl.cache.main.exp_received.countNumber of objects received by expiry thread for handling.
HCB Lookups without lockvinyl.cache.main.hcb_nolock.countHCB Lookups without lock
HCB Lookups with lockvinyl.cache.main.hcb_lock.countHCB Lookups with lock
HCB Insertsvinyl.cache.main.hcb_insert.countHCB Inserts
ESI parse errors (unlock)vinyl.cache.main.esi_errors.countESI parse errors (unlock)
ESI parse warnings (unlock)vinyl.cache.main.esi_warnings.countESI parse warnings (unlock)
Loaded VMODsvinyl.cache.main.vmodsLoaded VMODs
Gzip operationsvinyl.cache.main.n_gzip.countGzip operations
Gunzip operationsvinyl.cache.main.n_gunzip.countGunzip operations
Test gunzip operationsvinyl.cache.main.n_test_gunzip.countThose 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.
Premature iovec flushesvinyl.cache.main.http1_iovs_flush.countNumber 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.
Premature iovec flushesvinyl.cache.main.http1_absolute_form.countRequests with absolute form request target
mempool
Metric nameMetric keyDescription
In usevinyl.cache.mempool.liveIn use
In Poolvinyl.cache.mempool.poolIn Pool
Size requestedvinyl.cache.mempool.sz_wantedSize requested
Size allocatedvinyl.cache.mempool.sz_actualSize allocated
Allocationsvinyl.cache.mempool.allocs.countAllocations
Freesvinyl.cache.mempool.frees.countFrees
Recycled from poolvinyl.cache.mempool.recycle.countRecycled from pool
Timed out from poolvinyl.cache.mempool.timeout.countTimed out from pool
Too small to recyclevinyl.cache.mempool.toosmall.countToo small to recycle
Too many for poolvinyl.cache.mempool.surplus.countToo many for pool
Pool ran dryvinyl.cache.mempool.randry.countPool ran dry
lck
Metric nameMetric keyDescription
Created locksvinyl.cache.lck.creat.countCreated locks
Destroyed locksvinyl.cache.lck.destroy.countDestroyed locks
Lock Operationsvinyl.cache.lck.locks.countLock Operations
Contended lock operationsvinyl.cache.lck.dbg_busy.countIf 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 operationsvinyl.cache.lck.dbg_try_fail.countIf 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.
vbe
Metric nameMetric keyDescription
Happy health probesvinyl.cache.vbe.happyRepresents 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 bytesvinyl.cache.vbe.bereq_hdrbytes.countTotal backend request header bytes sent
Request body bytesvinyl.cache.vbe.bereq_bodybytes.countTotal backend request body bytes sent
Response header bytesvinyl.cache.vbe.beresp_hdrbytes.countTotal backend response header bytes received
Response body bytesvinyl.cache.vbe.beresp_bodybytes.countTotal backend response body bytes received
Pipe request header bytesvinyl.cache.vbe.pipe_hdrbytes.countTotal request bytes sent for piped sessions
Piped bytes to backendvinyl.cache.vbe.pipe_out.countTotal number of bytes forwarded to backend in pipe sessions
Piped bytes from backendvinyl.cache.vbe.pipe_in.countTotal number of bytes forwarded from backend in pipe sessions
Concurrent connections usedvinyl.cache.vbe.connThe 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 sentvinyl.cache.vbe.req.countBackend requests sent
Fetches not attempted due to backend being unhealthyvinyl.cache.vbe.unhealthy.countFetches not attempted due to backend being unhealthy
Fetches not attempted due to backend being busyvinyl.cache.vbe.busy.countNumber of times the max_connections limit was reached .. === Anything below is actually per VCP entry, but collected per === backend for simplicity
Connections failedvinyl.cache.vbe.fail.countCounter 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 EPERMvinyl.cache.vbe.fail_eacces.countConnections failed with EACCES or EPERM
Connections failed with EADDRNOTAVAILvinyl.cache.vbe.fail_eaddrnotavail.countConnections failed with EADDRNOTAVAIL
Connections failed with ECONNREFUSEDvinyl.cache.vbe.fail_econnrefused.countConnections failed with ECONNREFUSED
Connections failed with ENETUNREACHvinyl.cache.vbe.fail_enetunreach.countConnections failed with ENETUNREACH
Connections failed ETIMEDOUTvinyl.cache.vbe.fail_etimedout.countConnections failed ETIMEDOUT
Connections failed for other reasonvinyl.cache.vbe.fail_other.countConnections failed for other reason
Connection opens not attemptedvinyl.cache.vbe.helddown.countConnections not attempted during the backend_local_error_holddown or backend_remote_error_holddown interval after a fundamental connection issue.
mgt
Metric nameMetric keyDescription
Management process uptimevinyl.cache.mgt.uptime.countUptime in seconds of the management process
Child process startedvinyl.cache.mgt.child_start.countNumber of times the child process has been started
Child process normal exitvinyl.cache.mgt.child_exit.countNumber of times the child process has been cleanly stopped
Child process unexpected exitvinyl.cache.mgt.child_stop.countNumber of times the child process has exited with an unexpected return code
Child process died (signal)vinyl.cache.mgt.child_died.countNumber of times the child process has died due to signals
Child process core dumpedvinyl.cache.mgt.child_dump.countNumber of times the child process has produced core dumps
Child process panicvinyl.cache.mgt.child_panic.countNumber of times the management process has caught a child panic
default
Metric nameMetric keyDescription
Return codevinyl.cache.returncodeReturn code of the vinylstat command
smf
Metric nameMetric keyDescription
Allocator requestsvinyl.cache.smf.c_req.countNumber of times the storage has been asked to provide a storage segment.
Allocator failuresvinyl.cache.smf.c_fail.countNumber of times the storage has failed to provide a storage segment.
Bytes allocatedvinyl.cache.smf.c_bytes.countNumber of total bytes allocated by this storage.
Bytes freedvinyl.cache.smf.c_freed.countNumber of total bytes returned to this storage.
Allocations outstandingvinyl.cache.smf.g_allocNumber of storage allocations outstanding.
Bytes outstandingvinyl.cache.smf.g_bytesNumber of bytes allocated from the storage.
Bytes availablevinyl.cache.smf.g_spaceNumber of bytes left in the storage.
N struct smfvinyl.cache.smf.g_smfN struct smf
N small free smfvinyl.cache.smf.g_smf_fragN small free smf
N large free smfvinyl.cache.smf.g_smf_largeN large free smf
smu
Metric nameMetric keyDescription
Allocator requestsvinyl.cache.smu.c_req.countNumber of times the storage has been asked to provide a storage segment.
Allocator failuresvinyl.cache.smu.c_fail.countNumber of times the storage has failed to provide a storage segment.
Bytes allocatedvinyl.cache.smu.c_bytes.countNumber of total bytes allocated by this storage.
Bytes freedvinyl.cache.smu.c_freed.countNumber of total bytes returned to this storage.
Allocations outstandingvinyl.cache.smu.g_allocNumber of storage allocations outstanding.
Bytes outstandingvinyl.cache.smu.g_bytesNumber of bytes allocated from the storage.
Bytes availablevinyl.cache.smu.g_spaceNumber of bytes left in the storage.
Hub

Explore in Dynatrace Hub

Monitor Vinyl Cache instances by collecting performance, backend, client, and thread metrics to track cache health and optimize content delivery.

Related tags
DatabasePythonCacheThe Vinyl Cache ProjectApplication Observability