X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fvarnish.c;h=1089222327ac8a61f540f4a27d333ed1455c6a66;hb=26314b8c3fb08e1f0017ee9a6277b7fe370bf2a0;hp=38efcdc8929e19d2d7912a120dc613537123f2fa;hpb=0bbb85cf0a4d087409b1887f5073cd25d35e383c;p=collectd.git diff --git a/src/varnish.c b/src/varnish.c index 38efcdc8..10892223 100644 --- a/src/varnish.c +++ b/src/varnish.c @@ -29,19 +29,19 @@ #include "configfile.h" #if HAVE_VARNISH_V4 -#include -#include +#include +#include typedef struct VSC_C_main c_varnish_stats_t; #endif #if HAVE_VARNISH_V3 -#include -#include +#include +#include typedef struct VSC_C_main c_varnish_stats_t; #endif #if HAVE_VARNISH_V2 -#include +#include typedef struct varnish_stats c_varnish_stats_t; #endif @@ -550,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); @@ -608,6 +608,7 @@ static int varnish_read (user_data_t *ud) /* {{{ */ status = VSM_n_Arg (vd, conf->instance); if (status < 0) { + VSM_Delete (vd); ERROR ("varnish plugin: VSM_n_Arg (\"%s\") failed " "with status %i.", conf->instance, status); @@ -621,7 +622,8 @@ static int varnish_read (user_data_t *ud) /* {{{ */ if (VSM_Open (vd)) #endif { - ERROR ("varnish plugin: Unable to load statistics."); + VSM_Delete (vd); + ERROR ("varnish plugin: Unable to open connection."); return (-1); } @@ -631,9 +633,17 @@ static int varnish_read (user_data_t *ud) /* {{{ */ #else /* if HAVE_VARNISH_V4 */ stats = VSC_Main(vd, NULL); #endif + if (!stats) + { + VSM_Delete (vd); + ERROR ("varnish plugin: Unable to get statistics."); + + return (-1); + } + varnish_monitor (conf, stats); - VSM_Close (vd); + VSM_Delete (vd); return (0); } /* }}} */