Merge branch 'collectd-4.10' into collectd-5.0
[collectd.git] / src / varnish.c
index 2325312..37fd4bb 100644 (file)
@@ -1,6 +1,8 @@
 /**
  * collectd - src/varnish.c
- * Copyright (C) 2010 Jerome Renard
+ * Copyright (C) 2010 Jérôme Renard
+ * Copyright (C) 2010 Marc Fournier
+ * Copyright (C) 2010 Florian Forster
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
@@ -16,8 +18,9 @@
  * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  *
  * Authors:
+ *   Jérôme Renard <jerome.renard at gmail.com>
+ *   Marc Fournier <marc.fournier at camptocamp.com>
  *   Florian octo Forster <octo at verplant.org>
- *   Jerome Renard <jerome.renard@gmail.com>
  **/
 
 /**
@@ -160,25 +163,23 @@ static int varnish_submit (const char *plugin_instance, /* {{{ */
        vl.values = &value;
        vl.values_len = 1;
 
-       sstrncpy(vl.host, hostname_g, sizeof(vl.host));
+       sstrncpy (vl.host, hostname_g, sizeof (vl.host));
 
-       sstrncpy(vl.plugin, "varnish", sizeof(vl.plugin));
+       sstrncpy (vl.plugin, "varnish", sizeof (vl.plugin));
 
        if (plugin_instance == NULL)
                plugin_instance = "default";
 
-       sstrncpy (vl.plugin_instance, plugin_instance,
-                               sizeof (vl.plugin_instance));
-       strncat(vl.plugin_instance, "-", 1);
-       strncat(vl.plugin_instance, category, sizeof(category));
+       ssnprintf (vl.plugin_instance, sizeof (vl.plugin_instance),
+               "%s-%s", plugin_instance, category);
 
-       sstrncpy(vl.type, type, sizeof(vl.type));
+       sstrncpy (vl.type, type, sizeof (vl.type));
 
        if (type_instance != NULL)
-               sstrncpy(vl.type_instance, type_instance,
-                               sizeof(vl.type_instance));
+               sstrncpy (vl.type_instance, type_instance,
+                               sizeof (vl.type_instance));
 
-       return (plugin_dispatch_values(&vl));
+       return (plugin_dispatch_values (&vl));
 } /* }}} int varnish_submit */
 
 static int varnish_submit_gauge (const char *plugin_instance, /* {{{ */
@@ -203,9 +204,9 @@ static int varnish_submit_derive (const char *plugin_instance, /* {{{ */
        return (varnish_submit (plugin_instance, category, type, type_instance, value));
 } /* }}} int varnish_submit_derive */
 
-static void varnish_monitor(const user_config_t *conf, struct varnish_stats *VSL_stats) /* {{{ */
+static void varnish_monitor (const user_config_t *conf, struct varnish_stats *VSL_stats) /* {{{ */
 {
-       if(conf->collect_cache)
+       if (conf->collect_cache)
        {
                /* Cache hits */
                varnish_submit_derive (conf->instance, "cache", "cache_result", "hit",     VSL_stats->cache_hit);
@@ -215,17 +216,17 @@ static void varnish_monitor(const user_config_t *conf, struct varnish_stats *VSL
                varnish_submit_derive (conf->instance, "cache", "cache_result", "hitpass", VSL_stats->cache_hitpass);
        }
 
-       if(conf->collect_connections)
+       if (conf->collect_connections)
        {
                /* Client connections accepted */
-               varnish_submit_derive (conf->instance, "client", "connections", "accepted", VSL_stats->client_conn);
+               varnish_submit_derive (conf->instance, "connections", "connections", "accepted", VSL_stats->client_conn);
                /* Connection dropped, no sess */
-               varnish_submit_derive (conf->instance, "client", "connections", "dropped" , VSL_stats->client_drop);
+               varnish_submit_derive (conf->instance, "connections", "connections", "dropped" , VSL_stats->client_drop);
                /* Client requests received    */
-               varnish_submit_derive (conf->instance, "client", "connections", "received", VSL_stats->client_req);
+               varnish_submit_derive (conf->instance, "connections", "connections", "received", VSL_stats->client_req);
        }
 
-       if(conf->collect_esi)
+       if (conf->collect_esi)
        {
                /* Objects ESI parsed (unlock) */
                varnish_submit_derive (conf->instance, "esi", "total_operations", "parsed", VSL_stats->esi_parse);
@@ -233,7 +234,7 @@ static void varnish_monitor(const user_config_t *conf, struct varnish_stats *VSL
                varnish_submit_derive (conf->instance, "esi", "total_operations", "error",  VSL_stats->esi_errors);
        }
 
-       if(conf->collect_backend)
+       if (conf->collect_backend)
        {
                /* Backend conn. success       */
                varnish_submit_derive (conf->instance, "backend", "connections", "success"      , VSL_stats->backend_conn);
@@ -253,7 +254,7 @@ static void varnish_monitor(const user_config_t *conf, struct varnish_stats *VSL
                varnish_submit_derive (conf->instance, "backend", "connections", "unused"       , VSL_stats->backend_unused);
        }
 
-       if(conf->collect_fetch)
+       if (conf->collect_fetch)
        {
                /* Fetch head                */
                varnish_submit_derive (conf->instance, "fetch", "http_requests", "head"       , VSL_stats->fetch_head);
@@ -275,7 +276,7 @@ static void varnish_monitor(const user_config_t *conf, struct varnish_stats *VSL
                varnish_submit_derive (conf->instance, "fetch", "http_requests", "failed"     , VSL_stats->fetch_failed);
        }
 
-       if(conf->collect_hcb)
+       if (conf->collect_hcb)
        {
                /* HCB Lookups without lock */
                varnish_submit_derive (conf->instance, "hcb", "cache_operation", "lookup_nolock", VSL_stats->hcb_nolock);
@@ -285,7 +286,7 @@ static void varnish_monitor(const user_config_t *conf, struct varnish_stats *VSL
                varnish_submit_derive (conf->instance, "hcb", "cache_operation", "insert",        VSL_stats->hcb_insert);
        }
 
-       if(conf->collect_shm)
+       if (conf->collect_shm)
        {
                /* SHM records                 */
                varnish_submit_derive (conf->instance, "shm", "total_operations", "records"   , VSL_stats->shm_records);
@@ -299,19 +300,19 @@ static void varnish_monitor(const user_config_t *conf, struct varnish_stats *VSL
                varnish_submit_derive (conf->instance, "shm", "total_operations", "cycles"    , VSL_stats->shm_cycles);
        }
 
-       if(conf->collect_sm)
+       if (conf->collect_sm)
        {
                /* allocator requests */
                varnish_submit_derive (conf->instance, "sm", "total_requests", "nreq",  VSL_stats->sm_nreq);
                /* outstanding allocations */
                varnish_submit_gauge (conf->instance,  "sm", "requests", "outstanding", VSL_stats->sm_nobj);
                /* bytes allocated */
-               varnish_submit_gauge (conf->instance,  "sm", "bytes", "allocated",      VSL_stats->sm_balloc);
+               varnish_submit_derive (conf->instance,  "sm", "total_bytes", "allocated",      VSL_stats->sm_balloc);
                /* bytes free */
-               varnish_submit_gauge (conf->instance,  "sm", "bytes", "free",           VSL_stats->sm_bfree);
+               varnish_submit_derive (conf->instance,  "sm", "total_bytes", "free",           VSL_stats->sm_bfree);
        }
 
-       if(conf->collect_sma)
+       if (conf->collect_sma)
        {
                /* SMA allocator requests */
                varnish_submit_derive (conf->instance, "sma", "total_requests", "nreq",  VSL_stats->sma_nreq);
@@ -320,12 +321,12 @@ static void varnish_monitor(const user_config_t *conf, struct varnish_stats *VSL
                /* SMA outstanding bytes */
                varnish_submit_gauge (conf->instance,  "sma", "bytes", "outstanding",    VSL_stats->sma_nbytes);
                /* SMA bytes allocated */
-               varnish_submit_gauge (conf->instance,  "sma", "bytes", "allocated",      VSL_stats->sma_balloc);
+               varnish_submit_derive (conf->instance,  "sma", "total_bytes", "allocated",      VSL_stats->sma_balloc);
                /* SMA bytes free */
-               varnish_submit_gauge (conf->instance,  "sma", "bytes", "free" ,          VSL_stats->sma_bfree);
+               varnish_submit_derive (conf->instance,  "sma", "total_bytes", "free" ,          VSL_stats->sma_bfree);
        }
 
-       if(conf->collect_sms)
+       if (conf->collect_sms)
        {
                /* SMS allocator requests */
                varnish_submit_derive (conf->instance, "sms", "total_requests", "allocator", VSL_stats->sms_nreq);
@@ -334,49 +335,49 @@ static void varnish_monitor(const user_config_t *conf, struct varnish_stats *VSL
                /* SMS outstanding bytes */
                varnish_submit_gauge (conf->instance,  "sms", "bytes", "outstanding",        VSL_stats->sms_nbytes);
                /* SMS bytes allocated */
-               varnish_submit_gauge (conf->instance,  "sms", "bytes", "allocated",          VSL_stats->sms_balloc);
+               varnish_submit_derive (conf->instance,  "sms", "total_bytes", "allocated",          VSL_stats->sms_balloc);
                /* SMS bytes freed */
-               varnish_submit_gauge (conf->instance,  "sms", "bytes", "free",               VSL_stats->sms_bfree);
+               varnish_submit_derive (conf->instance,  "sms", "total_bytes", "free",               VSL_stats->sms_bfree);
        }
 
-       if(conf->collect_totals)
+       if (conf->collect_totals)
        {
                /* Total Sessions */
-               varnish_submit_derive (conf->instance, "s", "total_sessions", "sessions",  VSL_stats->s_sess);
+               varnish_submit_derive (conf->instance, "totals", "total_sessions", "sessions",  VSL_stats->s_sess);
                /* Total Requests */
-               varnish_submit_derive (conf->instance, "s", "total_requests", "requests",  VSL_stats->s_req);
+               varnish_submit_derive (conf->instance, "totals", "total_requests", "requests",  VSL_stats->s_req);
                /* Total pipe */
-               varnish_submit_derive (conf->instance, "s", "total_operations", "pipe",    VSL_stats->s_pipe);
+               varnish_submit_derive (conf->instance, "totals", "total_operations", "pipe",    VSL_stats->s_pipe);
                /* Total pass */
-               varnish_submit_derive (conf->instance, "s", "total_operations", "pass",    VSL_stats->s_pass);
+               varnish_submit_derive (conf->instance, "totals", "total_operations", "pass",    VSL_stats->s_pass);
                /* Total fetch */
-               varnish_submit_derive (conf->instance, "s", "total_operations", "fetches", VSL_stats->s_fetch);
+               varnish_submit_derive (conf->instance, "totals", "total_operations", "fetches", VSL_stats->s_fetch);
                /* Total header bytes */
-               varnish_submit_derive (conf->instance, "s", "total_bytes", "header-bytes", VSL_stats->s_hdrbytes);
+               varnish_submit_derive (conf->instance, "totals", "total_bytes", "header-bytes", VSL_stats->s_hdrbytes);
                /* Total body byte */
-               varnish_submit_derive (conf->instance, "s", "total_bytes", "body-bytes",   VSL_stats->s_bodybytes);
+               varnish_submit_derive (conf->instance, "totals", "total_bytes", "body-bytes",   VSL_stats->s_bodybytes);
        }
 
-       if(conf->collect_workers)
+       if (conf->collect_workers)
        {
                /* worker threads */
-               varnish_submit_gauge (conf->instance, "n_wrk", "threads", "worker",            VSL_stats->n_wrk);
+               varnish_submit_gauge (conf->instance, "workers", "threads", "worker",            VSL_stats->n_wrk);
                /* worker threads created */
-               varnish_submit_gauge (conf->instance, "n_wrk", "total_threads", "created",     VSL_stats->n_wrk_create);
+               varnish_submit_derive (conf->instance, "workers", "total_threads", "created",     VSL_stats->n_wrk_create);
                /* worker threads not created */
-               varnish_submit_gauge (conf->instance, "n_wrk", "total_threads", "failed",      VSL_stats->n_wrk_failed);
+               varnish_submit_derive (conf->instance, "workers", "total_threads", "failed",      VSL_stats->n_wrk_failed);
                /* worker threads limited */
-               varnish_submit_gauge (conf->instance, "n_wrk", "total_threads", "limited",     VSL_stats->n_wrk_max);
+               varnish_submit_derive (conf->instance, "workers", "total_threads", "limited",     VSL_stats->n_wrk_max);
                /* queued work requests */
-               varnish_submit_gauge (conf->instance, "n_wrk", "total_requests", "queued",     VSL_stats->n_wrk_queue);
+               varnish_submit_derive (conf->instance, "workers", "total_requests", "queued",     VSL_stats->n_wrk_queue);
                /* overflowed work requests */
-               varnish_submit_gauge (conf->instance, "n_wrk", "total_requests", "overflowed", VSL_stats->n_wrk_overflow);
+               varnish_submit_derive (conf->instance, "workers", "total_requests", "overflowed", VSL_stats->n_wrk_overflow);
                /* dropped work requests */
-               varnish_submit_gauge (conf->instance, "n_wrk", "total_requests", "dropped",    VSL_stats->n_wrk_drop);
+               varnish_submit_derive (conf->instance, "workers", "total_requests", "dropped",    VSL_stats->n_wrk_drop);
        }
 } /* }}} void varnish_monitor */
 
-static int varnish_read(user_data_t *ud) /* {{{ */
+static int varnish_read (user_data_t *ud) /* {{{ */
 {
        struct varnish_stats *VSL_stats;
        user_config_t *conf;
@@ -386,15 +387,15 @@ static int varnish_read(user_data_t *ud) /* {{{ */
 
        conf = ud->data;
 
-       VSL_stats = VSL_OpenStats(conf->instance);
+       VSL_stats = VSL_OpenStats (conf->instance);
        if (VSL_stats == NULL)
        {
-               ERROR("Varnish plugin : unable to load statistics");
+               ERROR ("Varnish plugin : unable to load statistics");
 
                return (-1);
        }
 
-       varnish_monitor(conf, VSL_stats);
+       varnish_monitor (conf, VSL_stats);
 
     return (0);
 } /* }}} */
@@ -595,7 +596,7 @@ static int varnish_config (oconfig_item_t *ci) /* {{{ */
 
 void module_register (void) /* {{{ */
 {
-       plugin_register_complex_config("varnish", varnish_config);
+       plugin_register_complex_config ("varnish", varnish_config);
        plugin_register_init ("varnish", varnish_init);
 } /* }}} */