summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 4632d38)
raw | patch | inline | side by side (parent: 4632d38)
author | Marc Fournier <marc.fournier@camptocamp.com> | |
Wed, 4 Nov 2015 20:12:36 +0000 (21:12 +0100) | ||
committer | Marc Fournier <marc.fournier@camptocamp.com> | |
Wed, 4 Nov 2015 21:07:54 +0000 (22:07 +0100) |
Segregating v2-specific code will allow reworking the v3 and v4 parts,
while ensuring backwards compatibility with v2.
The downside is that this leads to a large chunk of mostly duplicate
code. That said, my suggestion would be to drop support for varnish v2
in collectd 5.6.
NB: this commit breaks v3 and v4 support.
while ensuring backwards compatibility with v2.
The downside is that this leads to a large chunk of mostly duplicate
code. That said, my suggestion would be to drop support for varnish v2
in collectd 5.6.
NB: this commit breaks v3 and v4 support.
src/varnish.c | patch | blob | history |
diff --git a/src/varnish.c b/src/varnish.c
index 1089222327ac8a61f540f4a27d333ed1455c6a66..45e7f9c6f78797bbf8f7c3c69f2149252089df10 100644 (file)
--- a/src/varnish.c
+++ b/src/varnish.c
return (varnish_submit (plugin_instance, category, type, type_instance, value));
} /* }}} int varnish_submit_derive */
+#if HAVE_VARNISH_V2
static void varnish_monitor (const user_config_t *conf, /* {{{ */
const c_varnish_stats_t *stats)
{
if (conf->collect_connections)
{
-#ifndef HAVE_VARNISH_V4
/* Client connections accepted */
varnish_submit_derive (conf->instance, "connections", "connections", "accepted", stats->client_conn);
/* Connection dropped, no sess */
varnish_submit_derive (conf->instance, "connections", "connections", "dropped" , stats->client_drop);
-#endif
/* Client requests received */
varnish_submit_derive (conf->instance, "connections", "connections", "received", stats->client_req);
}
-#ifdef HAVE_VARNISH_V3
- if (conf->collect_dirdns)
- {
- /* DNS director lookups */
- varnish_submit_derive (conf->instance, "dirdns", "cache_operation", "lookups", stats->dir_dns_lookups);
- /* DNS director failed lookups */
- varnish_submit_derive (conf->instance, "dirdns", "cache_result", "failed", stats->dir_dns_failed);
- /* DNS director cached lookups hit */
- varnish_submit_derive (conf->instance, "dirdns", "cache_result", "hits", stats->dir_dns_hit);
- /* DNS director full dnscache */
- varnish_submit_derive (conf->instance, "dirdns", "cache_result", "cache_full", stats->dir_dns_cache_full);
- }
-#endif
-
if (conf->collect_esi)
{
/* ESI parse errors (unlock) */
varnish_submit_derive (conf->instance, "esi", "total_operations", "error", stats->esi_errors);
-#if HAVE_VARNISH_V2
/* Objects ESI parsed (unlock) */
varnish_submit_derive (conf->instance, "esi", "total_operations", "parsed", stats->esi_parse);
-#else
- /* ESI parse warnings (unlock) */
- varnish_submit_derive (conf->instance, "esi", "total_operations", "warning", stats->esi_warnings);
-#endif
}
if (conf->collect_backend)
varnish_submit_derive (conf->instance, "backend", "connections", "was-closed" , stats->backend_toolate);
/* Backend conn. recycles */
varnish_submit_derive (conf->instance, "backend", "connections", "recycled" , stats->backend_recycle);
-#if HAVE_VARNISH_V2
/* Backend conn. unused */
varnish_submit_derive (conf->instance, "backend", "connections", "unused" , stats->backend_unused);
-#else
- /* Backend conn. retry */
- varnish_submit_derive (conf->instance, "backend", "connections", "retries" , stats->backend_retry);
-#endif
/* Backend requests mades */
varnish_submit_derive (conf->instance, "backend", "http_requests", "requests" , stats->backend_req);
/* N backends */
varnish_submit_derive (conf->instance, "fetch", "http_requests", "zero" , stats->fetch_zero);
/* Fetch failed */
varnish_submit_derive (conf->instance, "fetch", "http_requests", "failed" , stats->fetch_failed);
-#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
- /* Fetch no body (1xx) */
- varnish_submit_derive (conf->instance, "fetch", "http_requests", "no_body_1xx", stats->fetch_1xx);
- /* Fetch no body (204) */
- varnish_submit_derive (conf->instance, "fetch", "http_requests", "no_body_204", stats->fetch_204);
- /* Fetch no body (304) */
- varnish_submit_derive (conf->instance, "fetch", "http_requests", "no_body_304", stats->fetch_304);
-#endif
}
if (conf->collect_hcb)
varnish_submit_derive (conf->instance, "objects", "total_objects", "expired", stats->n_expired);
/* N LRU nuked objects */
varnish_submit_derive (conf->instance, "objects", "total_objects", "lru_nuked", stats->n_lru_nuked);
-#if HAVE_VARNISH_V2
/* N LRU saved objects */
varnish_submit_derive (conf->instance, "objects", "total_objects", "lru_saved", stats->n_lru_saved);
-#endif
/* N LRU moved objects */
varnish_submit_derive (conf->instance, "objects", "total_objects", "lru_moved", stats->n_lru_moved);
-#if HAVE_VARNISH_V2
/* N objects on deathrow */
varnish_submit_derive (conf->instance, "objects", "total_objects", "deathrow", stats->n_deathrow);
-#endif
/* HTTP header overflows */
varnish_submit_derive (conf->instance, "objects", "total_objects", "header_overflow", stats->losthdr);
-#if HAVE_VARNISH_V4
- /* N purged objects */
- varnish_submit_derive (conf->instance, "objects", "total_objects", "purged", stats->n_obj_purged);
-#else
/* Objects sent with sendfile */
varnish_submit_derive (conf->instance, "objects", "total_objects", "sent_sendfile", stats->n_objsendfile);
/* Objects sent with write */
varnish_submit_derive (conf->instance, "objects", "total_objects", "sent_write", stats->n_objwrite);
/* Objects overflowing workspace */
varnish_submit_derive (conf->instance, "objects", "total_objects", "workspace_overflow", stats->n_objoverflow);
-#endif
}
-#if HAVE_VARNISH_V2
if (conf->collect_purge)
{
/* N total active purges */
/* N duplicate purges removed */
varnish_submit_derive (conf->instance, "purge", "total_operations", "duplicate", stats->n_purge_dups);
}
-#endif
-#if HAVE_VARNISH_V3
- if (conf->collect_ban)
- {
- /* N total active bans */
- varnish_submit_derive (conf->instance, "ban", "total_operations", "total", stats->n_ban);
- /* N new bans added */
- varnish_submit_derive (conf->instance, "ban", "total_operations", "added", stats->n_ban_add);
- /* N old bans deleted */
- varnish_submit_derive (conf->instance, "ban", "total_operations", "deleted", stats->n_ban_retire);
- /* N objects tested */
- varnish_submit_derive (conf->instance, "ban", "total_operations", "objects_tested", stats->n_ban_obj_test);
- /* N regexps tested against */
- varnish_submit_derive (conf->instance, "ban", "total_operations", "regexps_tested", stats->n_ban_re_test);
- /* N duplicate bans removed */
- varnish_submit_derive (conf->instance, "ban", "total_operations", "duplicate", stats->n_ban_dups);
- }
-#endif
-#if HAVE_VARNISH_V4
- if (conf->collect_ban)
- {
- /* N total active bans */
- varnish_submit_derive (conf->instance, "ban", "total_operations", "total", stats->bans);
- /* N new bans added */
- varnish_submit_derive (conf->instance, "ban", "total_operations", "added", stats->bans_added);
- /* N bans using obj */
- varnish_submit_derive (conf->instance, "ban", "total_operations", "obj", stats->bans_obj);
- /* N bans using req */
- varnish_submit_derive (conf->instance, "ban", "total_operations", "req", stats->bans_req);
- /* N new bans completed */
- varnish_submit_derive (conf->instance, "ban", "total_operations", "completed", stats->bans_completed);
- /* N old bans deleted */
- varnish_submit_derive (conf->instance, "ban", "total_operations", "deleted", stats->bans_deleted);
- /* N objects tested */
- varnish_submit_derive (conf->instance, "ban", "total_operations", "tested", stats->bans_tested);
- /* N duplicate bans removed */
- varnish_submit_derive (conf->instance, "ban", "total_operations", "duplicate", stats->bans_dups);
- }
-#endif
if (conf->collect_session)
{
varnish_submit_derive (conf->instance, "session", "total_operations", "pipeline", stats->sess_pipeline);
/* Session Read Ahead */
varnish_submit_derive (conf->instance, "session", "total_operations", "readahead", stats->sess_readahead);
-#if HAVE_VARNISH_V4
- /* Sessions accepted */
- varnish_submit_derive (conf->instance, "session", "total_operations", "accepted", stats->sess_conn);
- /* Sessions dropped for thread */
- varnish_submit_derive (conf->instance, "session", "total_operations", "dropped", stats->sess_drop);
- /* Sessions accept failure */
- varnish_submit_derive (conf->instance, "session", "total_operations", "failed", stats->sess_fail);
- /* Sessions pipe overflow */
- varnish_submit_derive (conf->instance, "session", "total_operations", "overflow", stats->sess_pipe_overflow);
- /* Sessions queued for thread */
- varnish_submit_derive (conf->instance, "session", "total_operations", "queued", stats->sess_queued);
-#else
/* Session Linger */
varnish_submit_derive (conf->instance, "session", "total_operations", "linger", stats->sess_linger);
-#endif
/* Session herd */
varnish_submit_derive (conf->instance, "session", "total_operations", "herd", stats->sess_herd);
}
varnish_submit_derive (conf->instance, "shm", "total_operations", "cycles" , stats->shm_cycles);
}
-#if HAVE_VARNISH_V2
if (conf->collect_sm)
{
/* allocator requests */
/* SMA bytes free */
varnish_submit_derive (conf->instance, "sma", "total_bytes", "free" , stats->sma_bfree);
}
-#endif
if (conf->collect_sms)
{
if (conf->collect_struct)
{
-#if !HAVE_VARNISH_V4
/* N struct sess_mem */
varnish_submit_gauge (conf->instance, "struct", "current_sessions", "sess_mem", stats->n_sess_mem);
/* N struct sess */
varnish_submit_gauge (conf->instance, "struct", "current_sessions", "sess", stats->n_sess);
-#endif
/* N struct object */
varnish_submit_gauge (conf->instance, "struct", "objects", "object", stats->n_object);
-#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
- /* N unresurrected objects */
- varnish_submit_gauge (conf->instance, "struct", "objects", "vampireobject", stats->n_vampireobject);
- /* N struct objectcore */
- varnish_submit_gauge (conf->instance, "struct", "objects", "objectcore", stats->n_objectcore);
- /* N struct waitinglist */
- varnish_submit_gauge (conf->instance, "struct", "objects", "waitinglist", stats->n_waitinglist);
-#endif
/* N struct objecthead */
varnish_submit_gauge (conf->instance, "struct", "objects", "objecthead", stats->n_objecthead);
-#ifdef HAVE_VARNISH_V2
/* N struct smf */
varnish_submit_gauge (conf->instance, "struct", "objects", "smf", stats->n_smf);
/* N small free smf */
varnish_submit_gauge (conf->instance, "struct", "objects", "smf_large", stats->n_smf_large);
/* N struct vbe_conn */
varnish_submit_gauge (conf->instance, "struct", "objects", "vbe_conn", stats->n_vbe_conn);
-#endif
}
if (conf->collect_totals)
varnish_submit_derive (conf->instance, "totals", "total_operations", "pass", stats->s_pass);
/* Total fetch */
varnish_submit_derive (conf->instance, "totals", "total_operations", "fetches", stats->s_fetch);
-#if HAVE_VARNISH_V4
- /* Total synth */
- varnish_submit_derive (conf->instance, "totals", "total_bytes", "synth", stats->s_synth);
- /* Request header bytes */
- varnish_submit_derive (conf->instance, "totals", "total_bytes", "req_header", stats->s_req_hdrbytes);
- /* Request body byte */
- varnish_submit_derive (conf->instance, "totals", "total_bytes", "req_body", stats->s_req_bodybytes);
- /* Response header bytes */
- varnish_submit_derive (conf->instance, "totals", "total_bytes", "resp_header", stats->s_resp_hdrbytes);
- /* Response body byte */
- varnish_submit_derive (conf->instance, "totals", "total_bytes", "resp_body", stats->s_resp_bodybytes);
- /* Pipe request header bytes */
- varnish_submit_derive (conf->instance, "totals", "total_bytes", "pipe_header", stats->s_pipe_hdrbytes);
- /* Piped bytes from client */
- varnish_submit_derive (conf->instance, "totals", "total_bytes", "pipe_in", stats->s_pipe_in);
- /* Piped bytes to client */
- varnish_submit_derive (conf->instance, "totals", "total_bytes", "pipe_out", stats->s_pipe_out);
- /* Number of purge operations */
- varnish_submit_derive (conf->instance, "totals", "total_operations", "purges", stats->n_purges);
-#else
/* Total header bytes */
varnish_submit_derive (conf->instance, "totals", "total_bytes", "header-bytes", stats->s_hdrbytes);
/* Total body byte */
varnish_submit_derive (conf->instance, "totals", "total_bytes", "body-bytes", stats->s_bodybytes);
-#endif
-#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
- /* Gzip operations */
- varnish_submit_derive (conf->instance, "totals", "total_operations", "gzip", stats->n_gzip);
- /* Gunzip operations */
- varnish_submit_derive (conf->instance, "totals", "total_operations", "gunzip", stats->n_gunzip);
-#endif
}
-#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
- if (conf->collect_uptime)
- {
- /* Client uptime */
- varnish_submit_gauge (conf->instance, "uptime", "uptime", "client_uptime", stats->uptime);
- }
-#endif
-
if (conf->collect_vcl)
{
/* N vcl total */
varnish_submit_gauge (conf->instance, "vcl", "vcl", "avail_vcl", stats->n_vcl_avail);
/* N vcl discarded */
varnish_submit_gauge (conf->instance, "vcl", "vcl", "discarded_vcl", stats->n_vcl_discard);
-#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
- /* Loaded VMODs */
- varnish_submit_gauge (conf->instance, "vcl", "objects", "vmod", stats->vmods);
-#endif
}
if (conf->collect_workers)
{
-#ifdef HAVE_VARNISH_V4
- /* total number of threads */
- varnish_submit_gauge (conf->instance, "workers", "threads", "worker", stats->threads);
- /* threads created */
- varnish_submit_derive (conf->instance, "workers", "total_threads", "created", stats->threads_created);
- /* thread creation failed */
- varnish_submit_derive (conf->instance, "workers", "total_threads", "failed", stats->threads_failed);
- /* threads hit max */
- varnish_submit_derive (conf->instance, "workers", "total_threads", "limited", stats->threads_limited);
- /* threads destroyed */
- varnish_submit_derive (conf->instance, "workers", "total_threads", "dropped", stats->threads_destroyed);
- /* length of session queue */
- varnish_submit_derive (conf->instance, "workers", "queue_length", "threads", stats->thread_queue_len);
-#else
/* worker threads */
varnish_submit_gauge (conf->instance, "workers", "threads", "worker", stats->n_wrk);
/* worker threads created */
varnish_submit_derive (conf->instance, "workers", "total_threads", "limited", stats->n_wrk_max);
/* dropped work requests */
varnish_submit_derive (conf->instance, "workers", "total_threads", "dropped", stats->n_wrk_drop);
-#ifdef HAVE_VARNISH_V2
/* queued work requests */
varnish_submit_derive (conf->instance, "workers", "total_requests", "queued", stats->n_wrk_queue);
/* overflowed work requests */
varnish_submit_derive (conf->instance, "workers", "total_requests", "overflowed", stats->n_wrk_overflow);
-#else /* HAVE_VARNISH_V3 */
- /* queued work requests */
- varnish_submit_derive (conf->instance, "workers", "total_requests", "queued", stats->n_wrk_queued);
- /* work request queue length */
- varnish_submit_derive (conf->instance, "workers", "total_requests", "queue_length", stats->n_wrk_lqueue);
-#endif
-#endif
}
-#if HAVE_VARNISH_V4
- if (conf->collect_vsm)
- {
- /* Free VSM space */
- varnish_submit_gauge (conf->instance, "vsm", "bytes", "free", stats->vsm_free);
- /* Used VSM space */
- varnish_submit_gauge (conf->instance, "vsm", "bytes", "used", stats->vsm_used);
- /* Cooling VSM space */
- varnish_submit_gauge (conf->instance, "vsm", "bytes", "cooling", stats->vsm_cooling);
- /* Overflow VSM space */
- varnish_submit_gauge (conf->instance, "vsm", "bytes", "overflow", stats->vsm_overflow);
- /* Total overflowed VSM space */
- varnish_submit_derive (conf->instance, "vsm", "total_bytes", "overflowed", stats->vsm_overflowed);
- }
-#endif
-
} /* }}} void varnish_monitor */
+#endif
#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
static int varnish_read (user_data_t *ud) /* {{{ */