]> git.ipfire.org Git - thirdparty/collectd.git/commitdiff
Add varnish 6 support
authorCharly Koza <cka@f4-group.com>
Thu, 23 Apr 2020 13:52:00 +0000 (15:52 +0200)
committerCharly Koza <cka@f4-group.com>
Thu, 23 Apr 2020 14:46:37 +0000 (16:46 +0200)
configure.ac
src/varnish.c

index 1fa3580a986ca1d3f7383f03a0942eea3eb75c56..45b94ce0d2a6c7d207b27fd89698d7aba36f60fa 100644 (file)
@@ -6084,24 +6084,29 @@ if test "x$with_libvarnish" = "xyes"; then
   SAVE_CPPFLAGS="$CPPFLAGS"
   CPPFLAGS="$CPPFLAGS $with_libvarnish_cflags"
 
-  $PKG_CONFIG --atleast-version=5.2 'varnishapi' 2>/dev/null
+  $PKG_CONFIG --atleast-version=6 'varnishapi' 2>/dev/null
   if test $? -eq 0; then
-    AC_DEFINE([HAVE_VARNISH_V5], [1], [Varnish 5 API support])
+    AC_DEFINE([HAVE_VARNISH_V6], [1], [Varnish 6 API support])
   else
-    AC_CHECK_HEADERS([vapi/vsc.h],
-      [AC_DEFINE([HAVE_VARNISH_V4], [1], [Varnish 4 API support])],
-      [
-        AC_CHECK_HEADERS([vsc.h],
-          [AC_DEFINE([HAVE_VARNISH_V3], [1], [Varnish 3 API support]) ],
-          [
-            AC_CHECK_HEADERS([varnishapi.h],
-              [AC_DEFINE([HAVE_VARNISH_V2], [1], [Varnish 2 API support])],
-              [with_libvarnish="no (found none of the varnish header files)"]
-            )
-          ]
-        )
-      ]
-    )
+    $PKG_CONFIG --atleast-version=5.2 'varnishapi' 2>/dev/null
+    if test $? -eq 0; then
+      AC_DEFINE([HAVE_VARNISH_V5], [1], [Varnish 5 API support])
+    else
+      AC_CHECK_HEADERS([vapi/vsc.h],
+        [AC_DEFINE([HAVE_VARNISH_V4], [1], [Varnish 4 API support])],
+        [
+          AC_CHECK_HEADERS([vsc.h],
+            [AC_DEFINE([HAVE_VARNISH_V3], [1], [Varnish 3 API support]) ],
+            [
+              AC_CHECK_HEADERS([varnishapi.h],
+                [AC_DEFINE([HAVE_VARNISH_V2], [1], [Varnish 2 API support])],
+                [with_libvarnish="no (found none of the varnish header files)"]
+              )
+            ]
+          )
+        ]
+      )
+    fi
   fi
 
   CPPFLAGS="$SAVE_CPPFLAGS"
index f4c70af8428d3fb43ffed436ce45051ec691cf26..be6c7041efdc0c454db86445feaacdec2bb9f624 100644 (file)
@@ -29,7 +29,7 @@
 #include "plugin.h"
 #include "utils/common/common.h"
 
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
 #include <vapi/vsc.h>
 #include <vapi/vsm.h>
 typedef struct VSC_C_main c_varnish_stats_t;
@@ -71,17 +71,17 @@ struct user_config_s {
 #if HAVE_VARNISH_V2
   bool collect_sm;
 #endif
-#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
   bool collect_sma;
 #endif
   bool collect_struct;
   bool collect_totals;
-#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
   bool collect_uptime;
 #endif
   bool collect_vcl;
   bool collect_workers;
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
   bool collect_vsm;
   bool collect_lck;
   bool collect_mempool;
@@ -138,7 +138,7 @@ static int varnish_submit_derive(const char *plugin_instance, /* {{{ */
                         });
 } /* }}} int varnish_submit_derive */
 
-#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
 static int varnish_monitor(void *priv,
                            const struct VSC_point *const pt) /* {{{ */
 {
@@ -151,7 +151,7 @@ static int varnish_monitor(void *priv,
 
   conf = priv;
 
-#if HAVE_VARNISH_V5
+#if HAVE_VARNISH_V5 || HAVE_VARNISH_V6
   char namebuff[DATA_MAX_NAME_LEN];
 
   char const *c = strrchr(pt->name, '.');
@@ -197,7 +197,7 @@ static int varnish_monitor(void *priv,
     else if (strcmp(name, "client_req") == 0)
       return varnish_submit_derive(conf->instance, "connections", "connections",
                                    "received", val);
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
     else if (strcmp(name, "client_req_400") == 0)
       return varnish_submit_derive(conf->instance, "connections", "connections",
                                    "error_400", val);
@@ -312,7 +312,7 @@ static int varnish_monitor(void *priv,
     else if (strcmp(name, "fetch_304") == 0)
       return varnish_submit_derive(conf->instance, "fetch", "http_requests",
                                    "no_body_304", val);
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
     else if (strcmp(name, "fetch_no_thread") == 0)
       return varnish_submit_derive(conf->instance, "fetch", "http_requests",
                                    "no_thread", val);
@@ -371,7 +371,7 @@ static int varnish_monitor(void *priv,
     else if (strcmp(name, "n_objoverflow") == 0)
       return varnish_submit_derive(conf->instance, "objects", "total_objects",
                                    "workspace_overflow", val);
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
     else if (strcmp(name, "exp_mailed") == 0)
       return varnish_submit_gauge(conf->instance, "struct", "objects",
                                   "exp_mailed", val);
@@ -403,7 +403,7 @@ static int varnish_monitor(void *priv,
                                    "duplicate", val);
   }
 #endif
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
   if (conf->collect_ban) {
     if (strcmp(name, "bans") == 0)
       return varnish_submit_derive(conf->instance, "ban", "total_operations",
@@ -490,7 +490,7 @@ static int varnish_monitor(void *priv,
     else if (strcmp(name, "sess_herd") == 0)
       return varnish_submit_derive(conf->instance, "session",
                                    "total_operations", "herd", val);
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
     else if (strcmp(name, "sess_closed_err") == 0)
       return varnish_submit_derive(conf->instance, "session",
                                    "total_operations", "closed_err", val);
@@ -703,7 +703,7 @@ static int varnish_monitor(void *priv,
     else if (strcmp(name, "n_wrk_lqueue") == 0)
       return varnish_submit_derive(conf->instance, "workers", "total_requests",
                                    "queue_length", val);
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
     else if (strcmp(name, "pools") == 0)
       return varnish_submit_gauge(conf->instance, "workers", "pools", "pools",
                                   val);
@@ -713,7 +713,7 @@ static int varnish_monitor(void *priv,
 #endif
   }
 
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
   if (conf->collect_vsm) {
     if (strcmp(name, "vsm_free") == 0)
       return varnish_submit_gauge(conf->instance, "vsm", "bytes", "free", val);
@@ -1326,14 +1326,14 @@ static void varnish_monitor(const user_config_t *conf, /* {{{ */
 } /* }}} void varnish_monitor */
 #endif
 
-#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
 static int varnish_read(user_data_t *ud) /* {{{ */
 {
 #if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
   struct VSM_data *vd;
   bool ok;
   const c_varnish_stats_t *stats;
-#elif HAVE_VARNISH_V5
+#elif HAVE_VARNISH_V5 || HAVE_VARNISH_V6
   struct vsm *vd;
   struct vsc *vsc;
   int vsm_status;
@@ -1348,7 +1348,7 @@ static int varnish_read(user_data_t *ud) /* {{{ */
 
   vd = VSM_New();
 
-#if HAVE_VARNISH_V5
+#if HAVE_VARNISH_V5 || HAVE_VARNISH_V6
   vsc = VSC_New();
 #endif
 
@@ -1361,14 +1361,14 @@ static int varnish_read(user_data_t *ud) /* {{{ */
 
 #if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
     status = VSM_n_Arg(vd, conf->instance);
-#elif HAVE_VARNISH_V5
+#elif HAVE_VARNISH_V5 || HAVE_VARNISH_V6
     status = VSM_Arg(vd, 'n', conf->instance);
 #endif
 
     if (status < 0) {
 #if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
       VSM_Delete(vd);
-#elif HAVE_VARNISH_V5
+#elif HAVE_VARNISH_V5 || HAVE_VARNISH_V6
       VSC_Destroy(&vsc, vd);
       VSM_Destroy(&vd);
 #endif
@@ -1405,7 +1405,7 @@ static int varnish_read(user_data_t *ud) /* {{{ */
   }
 #endif
 
-#if HAVE_VARNISH_V5
+#if HAVE_VARNISH_V5 || HAVE_VARNISH_V6
   if (VSM_Attach(vd, STDERR_FILENO)) {
     ERROR("varnish plugin: Cannot attach to varnish. %s", VSM_Error(vd));
     VSC_Destroy(&vsc, vd);
@@ -1426,13 +1426,13 @@ static int varnish_read(user_data_t *ud) /* {{{ */
   VSC_Iter(vd, varnish_monitor, conf);
 #elif HAVE_VARNISH_V4
   VSC_Iter(vd, NULL, varnish_monitor, conf);
-#elif HAVE_VARNISH_V5
+#elif HAVE_VARNISH_V5 || HAVE_VARNISH_V6
   VSC_Iter(vsc, vd, varnish_monitor, conf);
 #endif
 
 #if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
   VSM_Delete(vd);
-#elif HAVE_VARNISH_V5
+#elif HAVE_VARNISH_V5 || HAVE_VARNISH_V6
   VSC_Destroy(&vsc, vd);
   VSM_Destroy(&vd);
 #endif
@@ -1500,18 +1500,18 @@ static int varnish_config_apply_default(user_config_t *conf) /* {{{ */
 #if HAVE_VARNISH_V2
   conf->collect_sm = false;
 #endif
-#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
   conf->collect_sma = false;
 #endif
   conf->collect_sms = false;
   conf->collect_struct = false;
   conf->collect_totals = false;
-#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
   conf->collect_uptime = false;
 #endif
   conf->collect_vcl = false;
   conf->collect_workers = false;
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
   conf->collect_vsm = false;
   conf->collect_lck = false;
   conf->collect_mempool = false;
@@ -1631,7 +1631,7 @@ static int varnish_config_instance(const oconfig_item_t *ci) /* {{{ */
     else if (strcasecmp("CollectSMS", child->key) == 0)
       cf_util_get_boolean(child, &conf->collect_sms);
     else if (strcasecmp("CollectSMA", child->key) == 0)
-#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
       cf_util_get_boolean(child, &conf->collect_sma);
 #else
       WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.",
@@ -1649,7 +1649,7 @@ static int varnish_config_instance(const oconfig_item_t *ci) /* {{{ */
     else if (strcasecmp("CollectTotals", child->key) == 0)
       cf_util_get_boolean(child, &conf->collect_totals);
     else if (strcasecmp("CollectUptime", child->key) == 0)
-#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
       cf_util_get_boolean(child, &conf->collect_uptime);
 #else
       WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.",
@@ -1660,56 +1660,56 @@ static int varnish_config_instance(const oconfig_item_t *ci) /* {{{ */
     else if (strcasecmp("CollectWorkers", child->key) == 0)
       cf_util_get_boolean(child, &conf->collect_workers);
     else if (strcasecmp("CollectVSM", child->key) == 0)
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
       cf_util_get_boolean(child, &conf->collect_vsm);
 #else
       WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.",
               child->key, "v4");
 #endif
     else if (strcasecmp("CollectLock", child->key) == 0)
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
       cf_util_get_boolean(child, &conf->collect_lck);
 #else
       WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.",
               child->key, "v4");
 #endif
     else if (strcasecmp("CollectMempool", child->key) == 0)
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
       cf_util_get_boolean(child, &conf->collect_mempool);
 #else
       WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.",
               child->key, "v4");
 #endif
     else if (strcasecmp("CollectManagement", child->key) == 0)
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
       cf_util_get_boolean(child, &conf->collect_mgt);
 #else
       WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.",
               child->key, "v4");
 #endif
     else if (strcasecmp("CollectSMF", child->key) == 0)
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
       cf_util_get_boolean(child, &conf->collect_smf);
 #else
       WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.",
               child->key, "v4");
 #endif
     else if (strcasecmp("CollectSMF", child->key) == 0)
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
       cf_util_get_boolean(child, &conf->collect_smf);
 #else
       WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.",
               child->key, "v4");
 #endif
     else if (strcasecmp("CollectVBE", child->key) == 0)
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
       cf_util_get_boolean(child, &conf->collect_vbe);
 #else
       WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.",
               child->key, "v4");
 #endif
     else if (strcasecmp("CollectMSE", child->key) == 0)
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
       cf_util_get_boolean(child, &conf->collect_mse);
 #else
       WARNING("Varnish plugin: \"%s\" is available for Varnish %s only.",
@@ -1739,15 +1739,15 @@ static int varnish_config_instance(const oconfig_item_t *ci) /* {{{ */
 #if HAVE_VARNISH_V2
       && !conf->collect_sm
 #endif
-#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
       && !conf->collect_sma
 #endif
       && !conf->collect_struct && !conf->collect_totals
-#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
       && !conf->collect_uptime
 #endif
       && !conf->collect_vcl && !conf->collect_workers
-#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5 || HAVE_VARNISH_V6
       && !conf->collect_vsm && !conf->collect_vbe && !conf->collect_smf &&
       !conf->collect_mgt && !conf->collect_lck && !conf->collect_mempool &&
       !conf->collect_mse