varnish−mib − net-snmp module for obtaining Varnish Cache statistics
dlmod varnish_mib /usr/lib/snmp/varnish−mib.so
Dynamically loadable object module for net-snmp that provides access to Varnish Cache statistics. The module is loaded into snmpd(8) as shown above (actual path can of course differ, depending on how the package was configured).
The module obtains most of the data using Varnish API. Information about available bans (banTable subtree) as well as the mechanism for setting bans (clientBan OID) are implemented via varnishd administrative interface. For these to work, the module must have read access to Varnish secret file. In other words, the secret file must be readable either by the user snmpd runs as, or by one of this user’s groups.
Configuration statements specific to varnish−mib must appear in the snmpd.conf file below the dlmod statement that loads the module.
configuration statements are available:
To create banTable (see below), varnish_mib connects to varnish administration port and issues the ban.list command. To minimize the performance impact, the information obtained is cached for a predefined amount of time (60 seconds by default). This amount (in seconds) is configured by varnishBanTableTimeout statement.
Sets timeout for I/O operations with Varnish administrative port. Default is 5 seconds.
Update interval for backendTable. Default is 5 seconds.
defines the following debugging tokens:
Enables general debugging information.
Varnish CLI interaction.
The following OIDs are defined:
Number of accepted connections.
Number of received HTTP requests.
Number of cache hits. A cache hit indicates that an object has been delivered to a client without fetching it from a backend server.
Number of hits for pass. A cache hit for pass indicates that Varnish passes the request to the backend and this decision itself has been cached.
Number of misses. A cache miss indicates the object was fetched from the backend before delivering it to the client.
A write-only OID. When set, invalidates the cache using the supplied value as argument to ban. When read, returns an empty string. E.g., to invalidate caches of all png images:
snmpset hostname VARNISH−MIB::clientBan.0 s ’req.url ~ "\.png$"’
Number of successful connections to the backend.
Number of backend connections not attempted, because of the unhealthy status of the backend.
Number of backend connections failed because there were too many connections open.
Number of failed backend connections.
Number of reused backend connections. This counter is increased whenever Varnish reuses a recycled connection.
Number of backend connection recycles. This counter is increased whenever Varnish has 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.
Number of unused backend connections.
Backend connections retried.
Total backend requests made.
This branch provides a
conceptual table of backends with the corresponding
statistics. It is indexed by vbeIndex. Each row has
the following elements:
A string uniqiely identifying the backend.
IPv4 address of the backend. Empty if the backend has no IPv4 address.
IPv6 address of the backend. Empty if the backend has no IPv6 address.
Number of successful health probes.
Number of VCL references.
Total number of request header bytes sent to that backend.
Total number of request body bytes sent to that backend.
Total number of response header bytes received from that backend.
Total number of response body bytes received from that backend.
Total number of header bytes piped to that backend.
Total number of bytes piped to that backend.
Total number of bytes piped from that backend.
Total number of sessions served since the startup.
Total number of requests received since the startup.
Total number of requests piped to the backend.
Total number of requests passed to the backend.
Total number of fetches.
Total request header bytes received.
Total request body bytes received.
Total header bytes sent out in responses.
Total body bytes sent out in responses.
Total request header bytes received for piped sessions.
Total number of bytes forwarded from clients in pipe sessions.
Total number of bytes forwarded to clients in pipe sessions.
Master daemon uptime, in hundredths of a second.
Number of sessions succesfully accepted.
Number of times session was queued waiting for a thread.
Number of sessions dropped because session queue was full.
Number of sessions closed.
Number of sessions dropped for thread.
Number of session accept failures.
Number of session pipe overflows.
Number of thread pools.
Number of thread pools.
Number of times more threads were needed, but limit was reached in a thread pool.
Total number of threads created in all pools.
Total number of threads destroyed in all pools.
Number of times creating a thread failed.
Total number of bans.
Count of completed bans.
Number of bans using obj.*.
Number of bans using req.*.
Number of bans added.
Number of bans deleted.
Number of bans tested against objects (lookup).
Number of objects killed by bans (lookup).
Number of bans tested against objects (lurker).
Number of ban tests tested against objects (lookup).
Number of ban tests tested against objects (lurker).
Number of objects killed by bans (lurker).
Number of ans superseded by other bans.
Number of times lurker gave way for lookup.
Number of bytes used by the persisted ban lists.
Extra bytes in persisted ban lists due to fragmentation.
A table of configured varnish
bans. It is indexed by the banIndex OID. Each row has
the following elements:
Time when the ban was set.
Number of references to that ban. This equals to the number of objects in the varnish cache affected by that ban.
VCL expression of the ban.
Notice that for performance reasons, the ban table is cached, so the total number of rows in the banTable may diverge from the value of bansTotal variable. The default update interval is 60 seconds. It can be configured in the snmpd.conf file (see the varnishBanTableTimeout statement above).
The agent branch is reserved for OIDs for implementation-specific management. It is not used currently.
Report bugs to <email@example.com>.
© 2014 Sergey Poznyakoff
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
Manpage server at Ulysses.gnu.org.ua.
Powered by mansrv 1.0