This extension works only with the standalone machine agent.
Varnish Cache is a web application accelerator also known as a caching HTTP reverse proxy. You install it in front of any server that speaks HTTP and configure it to cache the contents. The varnish-monitoring-extension gathers cache metrics exposed through Varnish's REST API and sends them to the AppDynamics Metric Browser.
- Type 'ant package' in the command line from the varnish-monitoring-extension directory.
- Deploy the file VarnishMonitor.zip found in the 'dist' directory into the <machineagent install dir>/monitors/ directory.
- Unzip the deployed file.
- Open <machineagent install dir>/monitors/VarnishMonitor/monitor.xml and configure the Varnish parameters.
<argument name="host" is-required="true" default-value="localhost"/> <argument name="port" is-required="true" default-value="6085"/> <argument name="username" is-required="true" default-value="username"/> <argument name="password" is-required="true" default-value="password"/> <argument name="enabled-metrics-path" is-required="true" default-value="monitors/VarnishMonitor/conf/EnabledMetrics.xml"/> - Open <machineagent install dir>/monitors/VarnishMonitor/conf/EnabledMetrics.xml and configure the list of enabled metrics. Here is a sample configuration of the enabled metrics:
<Metric name="mem_free"/> <Metric name="mem_total"/>
- Restart the machine agent.
- In the AppDynamics Metric Browser, look for: Application Infrastructure Performance | <Tier> | Custom Metrics | Varnish
| Directory/File | Description |
|---|---|
| conf | Contains the monitor.xml, EnabledMetrics.xml |
| lib | Contains third-party project references |
| src | Contains source code of the Varnish monitoring extension |
| dist | Only obtained when using ant. Run 'ant build' to get binaries. Run 'ant package' to get the distributable .zip file |
| build.xml | Ant build script to package the project (required only if changing Java code) |
NOTE: By default, only metrics from "client_conn" to "dir_dns_cache_full" in the following list are reported. This can be changed in the EnabledMetrics.xml file.
| Metric Name | Description |
|---|---|
| client_conn | Client connections accepted |
| client_drop | Connection dropped, no sess/wrk |
| client_req | Client requests received |
| cache_hit | Cache hits |
| cache_hitpass | Cache hits for pass |
| cache_miss | Cache misses |
| backend_conn | Backend conn. success |
| backend_unhealthy | Backend conn. not attempted |
| backend_busy | Backend conn. too many |
| backend_fail | Backend conn. failures |
| backend_reuse | Backend conn. reuses |
| backend_toolate | Backend conn. was closed |
| backend_recycle | Backend conn. recycles |
| backend_retry | Backend conn. retry |
| n_wrk | N worker threads |
| n_wrk_create | N worker threads created |
| n_wrk_failed | N worker threads not created |
| n_wrk_max | N worker threads limited |
| n_wrk_lqueue | work request queue length |
| n_wrk_queued | N queued work requests |
| n_wrk_drop | N dropped work requests |
| n_backend | N backends |
| n_expired | N expired objects |
| s_sess | Total Sessions |
| s_req | Total Requests |
| uptime | Client uptime |
| dir_dns_lookups | DNS director lookups |
| dir_dns_failed | DNS director failed lookups |
| dir_dns_hit | DNS director cached lookups hit |
| dir_dns_cache_full | DNS director full dnscache |
| timestamp | Timestamp in milliseconds |
| fetch_head | Fetch head |
| fetch_length | Fetch with Length |
| fetch_chunked | Fetch chunked |
| fetch_eof | Fetch EOF |
| fetch_bad | Fetch had bad headers |
| fetch_close | Fetch wanted close |
| fetch_oldhttp | Fetch pre HTTP/1.1 closed |
| fetch_zero | Fetch zero len |
| fetch_failed | Fetch failed |
| fetch_1xx | Fetch no body (1xx) |
| fetch_204 | Fetch no body (204) |
| fetch_304 | Fetch no body (304) |
| n_sess_mem | N struct sess_mem |
| n_sess | N struct sess |
| n_object | N struct object |
| n_vampireobject | N unresurrected objects |
| n_objectcore | N struct objectcore |
| n_objecthead | N struct objecthead |
| n_waitinglist | N struct waitinglist |
| n_vbc | N struct vbc |
| n_lru_nuked | N LRU nuked objects |
| n_lru_moved | N LRU moved objects |
| losthdr | HTTP header overflows |
| n_objsendfile | Objects sent with sendfile |
| n_objwrite | Objects sent with write |
| n_objoverflow | Objects overflowing workspace |
| s_pipe | Total pipe |
| s_pass | Total pass |
| s_fetch | Total fetch |
| s_hdrbytes | Total header bytes |
| s_bodybytes | Total body bytes |
| sess_closed | Session Closed |
| sess_pipeline | Session Pipeline |
| sess_readahead | Session Read Ahead |
| sess_linger | Session Linger |
| sess_herd | Session herd |
| shm_records | SHM records |
| shm_writes | SHM writes |
| shm_flushes | SHM flushes due to overflow |
| shm_cont | SHM MTX contention |
| shm_cycles | SHM cycles through buffer |
| sms_nreq | SMS allocator requests |
| sms_nobj | SMS outstanding allocations |
| sms_nbytes | SMS outstanding bytes |
| sms_balloc | SMS bytes allocated |
| sms_bfree | SMS bytes freed |
| backend_req | Backend requests made |
| n_vcl | N vcl total |
| n_vcl_avail | N vcl available |
| n_vcl_discard | N vcl discarded |
| n_ban | N total active bans |
| n_ban_gone | N total gone bans |
| n_ban_add | N new bans added |
| n_ban_retire | N old bans deleted |
| n_ban_obj_test | N objects tested |
| n_ban_re_test | N regexps tested against |
| n_ban_dups | N duplicate bans removed |
| hcb_nolock | HCB Lookups without lock |
| hcb_lock | HCB Lookups with lock |
| hcb_insert | HCB Inserts |
| esi_errors | ESI parse errors (unlock) |
| esi_warnings | ESI parse warnings (unlock) |
| accept_fail | Accept failures |
| client_drop_late | Connection dropped late |
| vmods | Loaded VMODs |
| n_gzip | Gzip operations |
| n_gunzip | Gunzip operations |
| sess_pipe_overflow | Dropped sessions due to session pipe overflow |
| LCK.sms.creat | Created locks |
| LCK.sms.destroy | Destroyed locks |
| LCK.sms.locks | Lock Operations |
| LCK.sms.colls | Collisions |
| LCK.smp.creat | Created locks |
| LCK.smp.destroy | Destroyed locks |
| LCK.smp.locks | Lock Operations |
| LCK.smp.colls | Collisions |
| LCK.sma.creat | Created locks |
| LCK.sma.destroy | Destroyed locks |
| LCK.sma.locks | Lock Operations |
| LCK.sma.colls | Collisions |
| LCK.smf.creat | Created locks |
| LCK.smf.destroy | Destroyed locks |
| LCK.smf.locks | Lock Operations |
| LCK.smf.colls | Collisions |
| LCK.hsl.creat | Created locks |
| LCK.hsl.destroy | Destroyed locks |
| LCK.hsl.locks | Lock Operations |
| LCK.hsl.colls | Collisions |
| LCK.hcb.creat | Created locks |
| LCK.hcb.destroy | Destroyed locks |
| LCK.hcb.locks | Lock Operations |
| LCK.hcb.colls | Collisions |
| LCK.hcl.creat | Created locks |
| LCK.hcl.destroy | Destroyed locks |
| LCK.hcl.locks | Lock Operations |
| LCK.hcl.colls | Collisions |
| LCK.vcl.creat | Created locks |
| LCK.vcl.destroy | Destroyed locks |
| LCK.vcl.locks | Lock Operations |
| LCK.vcl.colls | Collisions |
| LCK.stat.creat | Created locks |
| LCK.stat.destroy | Destroyed locks |
| LCK.stat.locks | Lock Operations |
| LCK.stat.colls | Collisions |
| LCK.sessmem.creat | Created locks |
| LCK.sessmem.destroy | Destroyed locks |
| LCK.sessmem.locks | Lock Operations |
| LCK.sessmem.colls | Collisions |
| LCK.wstat.creat | Created locks |
| LCK.wstat.destroy | Destroyed locks |
| LCK.wstat.locks | Lock Operations |
| LCK.wstat.colls | Collisions |
| LCK.herder.creat | Created locks |
| LCK.herder.destroy | Destroyed locks |
| LCK.herder.locks | Lock Operations |
| LCK.herder.colls | Collisions |
| LCK.wq.creat | Created locks |
| LCK.wq.destroy | Destroyed locks |
| LCK.wq.locks | Lock Operations |
| LCK.wq.colls | Collisions |
| LCK.objhdr.creat | Created locks |
| LCK.objhdr.destroy | Destroyed locks |
| LCK.objhdr.locks | Lock Operations |
| LCK.objhdr.colls | Collisions |
| LCK.exp.creat | Created locks |
| LCK.exp.destroy | Destroyed locks |
| LCK.exp.locks | Lock Operations |
| LCK.exp.colls | Collisions |
| LCK.lru.creat | Created locks |
| LCK.lru.destroy | Destroyed locks |
| LCK.lru.locks | Lock Operations |
| LCK.lru.colls | Collisions |
| LCK.cli.creat | Created locks |
| LCK.cli.destroy | Destroyed locks |
| LCK.cli.locks | Lock Operations |
| LCK.cli.colls | Collisions |
| LCK.ban.creat | Created locks |
| LCK.ban.destroy | Destroyed locks |
| LCK.ban.locks | Lock Operations |
| LCK.ban.colls | Collisions |
| LCK.vbp.creat | Created locks |
| LCK.vbp.destroy | Destroyed locks |
| LCK.vbp.locks | Lock Operations |
| LCK.vbp.colls | Collisions |
| LCK.vbe.creat | Created locks |
| LCK.vbe.destroy | Destroyed locks |
| LCK.vbe.locks | Lock Operations |
| LCK.vbe.colls | Collisions |
| LCK.backend.creat | Created locks |
| LCK.backend.destroy | Destroyed locks |
| LCK.backend.locks | Lock Operations |
| LCK.backend.colls | Collisions |
| SMA.s0.c_req | Allocator requests |
| SMA.s0.c_fail | Allocator failures |
| SMA.s0.c_bytes | Bytes allocated |
| SMA.s0.c_freed | Bytes freed |
| SMA.s0.g_alloc | Allocations outstanding |
| SMA.s0.g_bytes | Bytes outstanding |
| SMA.s0.g_space | Bytes available |
| SMA.Transient.c_req | Allocator requests |
| SMA.Transient.c_fail | Allocator failures |
| SMA.Transient.c_bytes | Bytes allocated |
| SMA.Transient.c_freed | Bytes freed |
| SMA.Transient.g_alloc | Allocations outstanding |
| SMA.Transient.g_bytes | Bytes outstanding |
| SMA.Transient.g_space | Bytes available |
| VBE.default.vcls | VCL references |
| VBE.default.happy | Happy health probes |
##Contributing
Always feel free to fork and contribute any changes directly here on GitHub.
##Community
Find out more in the AppSphere community.
##Support
For any questions or feature request, please contact AppDynamics Center of Excellence.
