X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fvarnish.c;h=8e6d95eefadb2c8cced71ceb87c22643457f648b;hb=8aad55ab7d737a97d5927458b2b00885e27cae4d;hp=517258e2cf3148bd1276c3d51811a67b75a191a3;hpb=70d4799e842e29d270fe601ef2e21131365737ee;p=collectd.git diff --git a/src/varnish.c b/src/varnish.c index 517258e2..8e6d95ee 100644 --- a/src/varnish.c +++ b/src/varnish.c @@ -78,6 +78,9 @@ struct user_config_s { #endif _Bool collect_vcl; _Bool collect_workers; +#if HAVE_VARNISH_V4 + _Bool collect_vsm; +#endif }; typedef struct user_config_s user_config_t; /* }}} */ @@ -547,7 +550,7 @@ static void varnish_monitor (const user_config_t *conf, /* {{{ */ /* worker threads limited */ varnish_submit_derive (conf->instance, "workers", "total_threads", "limited", stats->n_wrk_max); /* dropped work requests */ - varnish_submit_derive (conf->instance, "workers", "total_requests", "dropped", stats->n_wrk_drop); + 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); @@ -561,6 +564,23 @@ static void varnish_monitor (const user_config_t *conf, /* {{{ */ #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 */ #if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 @@ -688,6 +708,9 @@ static int varnish_config_apply_default (user_config_t *conf) /* {{{ */ #endif conf->collect_vcl = 0; conf->collect_workers = 0; +#if HAVE_VARNISH_V4 + conf->collect_vsm = 0; +#endif return (0); } /* }}} int varnish_config_apply_default */ @@ -815,6 +838,10 @@ static int varnish_config_instance (const oconfig_item_t *ci) /* {{{ */ cf_util_get_boolean (child, &conf->collect_vcl); else if (strcasecmp ("CollectWorkers", child->key) == 0) cf_util_get_boolean (child, &conf->collect_workers); +#if HAVE_VARNISH_V4 + else if (strcasecmp ("CollectVSM", child->key) == 0) + cf_util_get_boolean (child, &conf->collect_vsm); +#endif else { WARNING ("Varnish plugin: Ignoring unknown " @@ -853,7 +880,11 @@ static int varnish_config_instance (const oconfig_item_t *ci) /* {{{ */ && !conf->collect_uptime #endif && !conf->collect_vcl - && !conf->collect_workers) + && !conf->collect_workers +#if HAVE_VARNISH_V4 + && !conf->collect_vsm +#endif + ) { WARNING ("Varnish plugin: No metric has been configured for " "instance \"%s\". Disabling this instance.",