#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;
#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;
});
} /* }}} 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) /* {{{ */
{
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, '.');
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);
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);
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);
"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",
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);
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);
#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);
} /* }}} 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;
vd = VSM_New();
-#if HAVE_VARNISH_V5
+#if HAVE_VARNISH_V5 || HAVE_VARNISH_V6
vsc = VSC_New();
#endif
#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
}
#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);
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
#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;
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.",
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.",
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.",
#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