author | collectd bot <32910397+collectd-bot@users.noreply.github.com> | |
Sun, 12 Nov 2017 21:04:11 +0000 (22:04 +0100) | ||
committer | GitHub <noreply@github.com> | |
Sun, 12 Nov 2017 21:04:11 +0000 (22:04 +0100) |
Automatically merged due to "Automerge" label
diff --git a/ChangeLog b/ChangeLog
index f990dd46c994b2912ed84bdcada46f9b3cf43879..86b7cb81a5c131bc2dfed42e46bd9ea026b57e12 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2017-11-15, Version 5.8.0 (RC0)
+ * collectd: The core daemon is now completely licensed under the MIT
+ license.
+ * collectd: Added daemon option to avoid making BaseDir. Thanks to
+ Nathaniel Wesley Filardo and Florian Forster. #2422
+ * collectd: Global variables have been moved to their own module to make
+ porting collectd easier. Thanks to Sean Campbell. #2467
+ * collectd as well as Apache, memcached, OpenLDAP, Perl, RouterOS, SNMP,
+ Tail-CSV plugins: Free userdata for "plugin_register_complex_read()".
+ Thanks to Pavel Rochnyack. #2349
+ * Collectd client library: Added parsing and server code. Thanks to
+ Florian Forster. #2258
+ * Build system: Dependency on libltdl has been removed, support for
+ libtool 1 has been dropped. Thanks to Ruben Kerkhof. #1898
+ * Build system: The build system has been switched to non-recursive
+ make. Thanks to Ruben Kerkhof. #2085
+ * APC UPS plugin: The plugin's configuration is now optional. Without a
+ "<Plugin />" block reasonable defaults will be used. Thanks to Pavel
+ Rochnyack. #2351
+ * Chrony plugin: Several issues found when working with a stratum-1
+ server have been fixed. Thanks to Miroslav Lichvar. #2190
+ * Ceph plugin: Support for the Ceph version "Luminous" has been added.
+ Thanks to Aleksei Zakharov. #2464
+ * CPU plugin : Linux-specific "guest" states have been added. Thanks to
+ Xavier G. #2439
+ * cURL plugin, cURL-JSON, cURL-XML, DBI, FileCount, memcachec, Oracle,
+ PostgreSQL, Table, Tail, Tail CSV plugins: The ability to configure
+ the "plugin" field of generated metrics has been added. Thanks to
+ Pavel Rochnyack. #1944, #1681, #1558
+ * cURL-JSON plugin: Parsing of arrays has been fixed. Thanks to Florian
+ Forster. #2281
+ * DPDKEvents plugin: This new plugin reports link status and keep alive
+ events. Thanks to Maryam Tahhan, Harry van Haaren, Serhiy Pshyk,
+ Kim-Marie Jones, Krzysztof Matczak, Przemyslaw Szczerbik, Christian
+ Ehrhardt and Luca Boccassi. #2157, #2348, #2400, #2405, #2417
+ * DPDKStat plugin: The plugin has been refactored to make DPDK related
+ utility functions reusable. Thanks to Krzysztof Matczak, Przemyslaw
+ Szczerbik, Christian Ehrhardt and Luca Boccassi. #2130, #2348, #2400,
+ #2405, #2417
+ * DPDKStat plugin: The "LogLevel" and "RteDriverLibPath" config options
+ have been added. Thanks to Jiri Prokes. #2505
+ * Email plugin as well as Exec and Unixsock plugins: Use
+ "_SC_GETPW_R_SIZE_MAX". Thanks to Florian Forster. #2451
+ * FileCount plugin: Custom values for reported plugin, type and type
+ instance. Thanks to Pavel Rochnyack. #1979
+ * GenericJMX plugin: Support for "AtomicInteger" and "AtomicLong" has
+ been added. Thanks to Pierre Mauduit. #2158
+ * gRPC plugin: Support for meta data has been added. Thanks to Taylor
+ Cramer. #2378
+ * IPC plugin: Fixed failed compilation on AIX. Thanks to Pavel
+ Rochnyack. #2357
+ * Intel PMU plugin: This new plugin collects CPU performance metrics
+ using Intel's Performance Monitoring Unit (PMU). Scaling information
+ added to metadata. Thanks to Serhiy Pshyk and Roman Korynkevych.
+ #2276, #2398, #2374
+ * Intel RDT plugin: Support for collectd's logging infrastructure has
+ been added. PQoS monitoring groups are being reset on start-up to fix
+ potential previous unclean shutdowns. Thanks to Roman Korynkevych.
+ #2089.
+ * IPMI plugin: Support for System Event Log (SEL) has been added. Thanks
+ to Roman Korynkevych. #2091
+ * IPMI plugin: Support for remote IPMI controllers has been added.
+ Thanks to Pavel Rochnyack. #2024
+ * LVM plugin: A check for the "CAP_SYS_ADMIN" capability has been added.
+ This will give users an informative warning when the process is not
+ running with the required privileges for this plugin. Thanks to
+ Florian Forster. #2426, #2499
+ * mcelog plugin: This new plugin subscribes to Machine Check Exceptions
+ (MCE) and dispatches notifications. Metadata reset. Thanks to Maryam
+ Tahhan, Volodymyr Mytnyk, Taras Chornyi, Krzysztof Matczak and Roman
+ Korynkevych. #2003, #2246, #2380
+ * MQTT plugin: Add support for TLS in "Subscriber" blocks. Thanks to
+ Florian Forster. #2434
+ * memcached plugin: Persistent connections have been implemented. Fix
+ hit ratio reporting, add connections rate report. Thanks to Pavel
+ Rochnyack. #2388, #2385
+ * memcached plugin: The type of the "listen_disabled" metric has been
+ changed to "total_events". Thanks to Florian Forster. #2386, #2468
+ * Netlink plugin: The dropped packets metric has been added. Thanks to
+ Denys Fedoryshchenko. #2053
+ * NFS plugin: Support for NFS 4.2 metrics has been added. Thanks to
+ Marek Becka. #2369
+ * NFS plugin: Config options to ignore specified NFS versions have been
+ added. Thanks to Christian Bartolomäus. #2430
+ * NUT plugin: The "ConnectTimeout", "ForceSSL", "VerifyPeer" and
+ "CAPath" options have been added. Thanks to Pavel Rochnyack and Steven
+ Bell. #2145, #2354
+ * OpenLDAP plugin: A segfault after a connection failure has been fixed.
+ Thanks to Pavel Rochnyack. #2377
+ * Openvpn plugin: Added support for status files from latest OpenVPN-2.4
+ and possible from future versions. Thanks to Pavel Rochnyack. #2352
+ * OVS Events plugin: This new plugin reports link state changes from
+ Open vSwitch (OVS). Thanks to Volodymyr Mytnyk. #1971
+ * OVS Stats plugin: This new plugin reports bridge / interface
+ statistics from Open vSwitch (OVS). Thanks to Volodymyr Mytnyk and
+ Taras Chornyi. #2137
+ * Perl plugin: Bugfix, added check of proper interpreter initialization.
+ Thanks to Pavel Rochnyack. #2391
+ * PostgreSQL plugin: The plugin now sets the "application_name"
+ parameter when connecting to the database. Thanks to daniacs. #2497
+ * Processes plugin: The I/O operations reported for selected processes
+ has been fixed. The metric "ps_disk_octets" has been renamed to
+ "io_octets" because it actually contains the number of I/O operation
+ by the process, not just disk related I/O. Same for "io_ops"
+ (previously "ps_disk_ops"). The new metric "disk_octets" has been
+ added and is reporting disk I/O only. Add option to collect the count
+ of active memory maps for Linux processes. The "CollectFileDescriptor"
+ and "CollectContextSwitch" options have been added. Thanks to Pavel
+ Rochnyack and to Wilfried Goesgens. #2232, #2454, #1989
+ * Processes and TCPConns plugins: The OpenBSD implementation has been
+ changed to use "kvm_openfiles" with "KVM_NO_FILES". Thanks to Jeremie
+ Courreges-Anglas. #2061
+ * Python plugin: Extend Notification class to include metadata. Thanks
+ to Volodymyr Mytnyk. #2135
+ * Python plugin: The "CollectdException" class has been added. This
+ allows to throw an exception without a stack trace being logged.
+ Thanks to Sven Trenkel. #2330, #2346
+ * Sensors plugin: Support for (electrical) current has been added.
+ Thanks to Clemens Gruber. #2255
+ * SNMP plugin: Error handling has been improved: a potential double-free
+ is now avoided (potentially leaking memory) and handling of
+ non-failing subtrees has been fixed. Thanks to Pavel Rochnyack. #2449
+ * SNMP plugin: The "Timeout" and "Retries" config options have been
+ added. Thanks to Carlos Vicente. #1472, #2488
+ * SNMP Agent plugin: This new plugin implements an SNMP AgentX subagent
+ that receives and handles queries from SNMP master agent and returns
+ configured metrics. Thanks to Roman Korynkevych, Serhiy Pshyk and
+ Pavel Rochnyack. #2105, #2362
+ * Synproxy plugin: This new plugin provides statistics for Linux
+ SYNPROXY. Thanks to Marek Bečka. #2381
+ * Tail plugin: Allow the calculation of several distributions in one
+ "tail" instance through a "bucket" type. Thanks to Pavel Rochnyack.
+ #2442
+ * Turbostat plugin: Import "msr-index.h" header from Linux and better
+ support for mutliple packages. Thanks to Vincent Brillault. #2445,
+ #2446
+ * Uptime plugin: Changed implementation to read from "/proc/uptime"
+ instead of "/proc/stat". Update for Linux and AIX, uptime is read
+ directly using a system call. Update for BSD and Solaris, uptime is
+ calculated by subtracting boot time from current time. Thanks to Ivan
+ Kurnosov and Marcin Jurkowski. #2431, #2034
+ * UUID plugin: Support for libhal has been removed. Thanks to Ruben
+ Kerkhof. #2080
+ * Varnish plugin: Extended the varnish plugin with varnish-plus
+ counters. Fixed invalid data source type. Thanks to Denes Matetelki.
+ #2453, #2463
+ * virt plugin: The plugin has been updated to use
+ "virConnectListAllDomains()". Thanks to Denis Silakov. #2051
+ * virt plugin: Support for domain tags has been added. Thanks to
+ Francesco Romani. #2048
+ * virt plugin: Connection handling has been improved. Thanks to
+ Francesco Romani. #2100, #2101
+ * virt plugin: Many metrics have been added, including disk, hypervisor
+ CPU usage, performance monitoring events, domain state, CPU pinning
+ (affinity), file system, and job statistics. Thanks to Francesco
+ Romani and Przemyslaw Szczerbik. #2103, #2175, #2168
+ * Write Graphite plugin: Additional tests have been added. Thanks to
+ Florian Forster.
+ * Write HTTP plugin: The "Attribute" and "TTL" options for the KairosDB
+ format have been added. Implementation of "Prefix" option. Thanks to
+ jaroug, Denis Pompilio and Pavel Rochnyack. #2199, #2252, #2482
+ * Write MongoDB plugin: Memory leaks have been fixed. Thanks to
+ Saikrishna Arcot. #2307
+ * Write Prometheus plugin: Label values are now properly escaped. Thanks
+ to Florian Forster. #2035
+ * Write Redis plugin: Add "max_set_duration" to set duration for value.
+ Thanks to Tomofumi Hayashi. #2440
+ * Write Riemann plugin: Export times with microsecond resolution. Thanks
+ to mcorbin. #2315
+ * Write TSDB plugin: The options "ResolveInterval" and "ResolveJitter"
+ have been added to control DNS lookup behavior. This prevents DNS
+ flooding in case TSDB is not available. Thanks to Yves Mettier and
+ Florian Forster. #2059
+ * ZFS ARC plugin: Header lines are now ignored in the Linux
+ implementation. Thanks to YmrDtnJu. #2097
+
2017-06-06, Version 5.7.2
* Build system: The Notify Email plugin is no longer linked with
indirect dependencies. Thanks to Marc Fournier.
diff --git a/configure.ac b/configure.ac
index 55f78d8a73d3d9950d2dcce7b5f16f4f6cd77372..e869a6a0912c5d1e9dca55b7eee82ccd7e2fb34b 100644 (file)
--- a/configure.ac
+++ b/configure.ac
SAVE_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $with_libvarnish_cflags"
- 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
CPPFLAGS="$SAVE_CPPFLAGS"
fi
index 7862663e3550dfd7ee52825848fa47b8d04c5b2e..d84b457bbefdda93144d6a81c627f68b864815ed 100644 (file)
%define with_snmp_agent 0%{!?_without_snmp_agent:1}
%define with_statsd 0%{!?_without_statsd:1}
%define with_swap 0%{!?_without_swap:1}
+%define with_synproxy 0%{!?_without_synproxy:0}
%define with_syslog 0%{!?_without_syslog:1}
%define with_table 0%{!?_without_table:1}
%define with_tail 0%{!?_without_tail:1}
Summary: Statistics collection and monitoring daemon
Name: collectd
Version: 5.7.1
-Release: 7%{?dist}
+Release: 8%{?dist}
URL: https://collectd.org
Source: https://collectd.org/files/%{name}-%{version}.tar.bz2
License: GPLv2
%define _with_swap --disable-swap
%endif
+%if %{with_synproxy}
+%define _with_synproxy --enable-synproxy
+%else
+%define _with_synproxy --disable-synproxy
+%endif
+
%if %{with_syslog}
%define _with_syslog --enable-syslog
%else
%{?_with_snmp_agent} \
%{?_with_statsd} \
%{?_with_swap} \
+ %{?_with_synproxy} \
%{?_with_syslog} \
%{?_with_table} \
%{?_with_tail_csv} \
%if %{with_swap}
%{_libdir}/%{name}/swap.so
%endif
+%if %{with_synproxy}
+%{_libdir}/%{name}/synproxy.so
+%endif
%if %{with_syslog}
%{_libdir}/%{name}/syslog.so
%endif
%{_includedir}/collectd/network_buffer.h
%{_includedir}/collectd/lcc_features.h
%{_libdir}/pkgconfig/libcollectdclient.pc
+%{_includedir}/collectd/network_parse.h
+%{_includedir}/collectd/server.h
+%{_includedir}/collectd/types.h
%{_libdir}/libcollectdclient.so
%files -n libcollectdclient
%doc contrib/
%changelog
+* Thu Sep 28 2017 xakru <calvinxakru@gmail.com> - 5.7.1-8
+- Add new libcollectdclient/network_parse
+- Add new libcollectdclient/server
+- Add new libcollectdclient/types
+- Add new synproxy plugin
+
* Fri Aug 18 2017 Ruben Kerkhof <ruben@rubenkerkhof.com> - 5.7.1-7
- Add new intel_pmu plugin
index d18cc7da1f0493435ad02d55467870604fd80ec0..a81afda8ab8b4370e9d97da9306edfa588ae4fb9 100644 (file)
};
#else
struct ip_mreq mreq = {
- .imr_address.s_addr = INADDR_ANY, .imr_multiaddr.s_addr = sa->s_addr,
+ .imr_multiaddr.s_addr = sa->sin_addr.s_addr,
};
#endif
status = setsockopt(srv->conn, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq,
diff --git a/src/netlink.c b/src/netlink.c
index 0bac3e7582dddb8b1a084e8a42fb1aa073454225..b5ae3bd2c13058ded2aa1902ebfefc2bf9a58fab 100644 (file)
--- a/src/netlink.c
+++ b/src/netlink.c
continue;
if (mnl_attr_validate2(attr, MNL_TYPE_UNSPEC, sizeof(*stats.stats64)) < 0) {
+ char errbuf[1024];
ERROR("netlink plugin: link_filter_cb: IFLA_STATS64 mnl_attr_validate2 "
- "failed.");
+ "failed: %s",
+ sstrerror(errno, errbuf, sizeof(errbuf)));
return MNL_CB_ERROR;
}
stats.stats64 = mnl_attr_get_payload(attr);
continue;
if (mnl_attr_validate2(attr, MNL_TYPE_UNSPEC, sizeof(*stats.stats32)) < 0) {
+ char errbuf[1024];
ERROR("netlink plugin: link_filter_cb: IFLA_STATS mnl_attr_validate2 "
- "failed.");
+ "failed: %s",
+ sstrerror(errno, errbuf, sizeof(errbuf)));
return MNL_CB_ERROR;
}
stats.stats32 = mnl_attr_get_payload(attr);
if (mnl_attr_get_type(attr) == TCA_STATS_BASIC) {
if (mnl_attr_validate2(attr, MNL_TYPE_UNSPEC, sizeof(*q_stats->bs)) < 0) {
+ char errbuf[1024];
ERROR("netlink plugin: qos_attr_cb: TCA_STATS_BASIC mnl_attr_validate2 "
- "failed.");
+ "failed: %s",
+ sstrerror(errno, errbuf, sizeof(errbuf)));
return MNL_CB_ERROR;
}
q_stats->bs = mnl_attr_get_payload(attr);
continue;
if (mnl_attr_validate2(attr, MNL_TYPE_UNSPEC, sizeof(*ts)) < 0) {
+ char errbuf[1024];
ERROR("netlink plugin: qos_filter_cb: TCA_STATS mnl_attr_validate2 "
- "failed.");
+ "failed: %s",
+ sstrerror(errno, errbuf, sizeof(errbuf)));
return MNL_CB_ERROR;
}
ts = mnl_attr_get_payload(attr);
ret = mnl_socket_recvfrom(nl, buf, sizeof(buf));
}
if (ret < 0) {
- ERROR("netlink plugin: ir_read: mnl_socket_recvfrom failed.");
- return -1;
+ char errbuf[1024];
+ ERROR("netlink plugin: ir_read: mnl_socket_recvfrom failed: %s",
+ sstrerror(errno, errbuf, sizeof(errbuf)));
+ return (-1);
}
/* `link_filter_cb' will update `iflist' which is used here to iterate
ret = mnl_socket_recvfrom(nl, buf, sizeof(buf));
}
if (ret < 0) {
- ERROR("netlink plugin: ir_read:mnl_socket_recvfrom failed.");
+ char errbuf[1024];
+ ERROR("netlink plugin: ir_read: mnl_socket_recvfrom failed: %s",
+ sstrerror(errno, errbuf, sizeof(errbuf)));
continue;
}
-
} /* for (type_index) */
} /* for (if_index) */
diff --git a/src/varnish.c b/src/varnish.c
index e4daf4bf84b4e9f59b6215e4462c0d57e383e4ed..08260dc27fe5c28e2a7eb58c6b7350735aa9a827 100644 (file)
--- a/src/varnish.c
+++ b/src/varnish.c
#include "common.h"
#include "plugin.h"
-#if HAVE_VARNISH_V4
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
#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
+#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
_Bool collect_sma;
#endif
_Bool collect_struct;
_Bool collect_totals;
-#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
_Bool collect_uptime;
#endif
_Bool collect_vcl;
_Bool collect_workers;
-#if HAVE_VARNISH_V4
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
_Bool collect_vsm;
_Bool collect_lck;
_Bool collect_mempool;
});
} /* }}} int varnish_submit_derive */
-#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
static int varnish_monitor(void *priv,
const struct VSC_point *const pt) /* {{{ */
{
uint64_t val;
const user_config_t *conf;
- const char *class;
const char *name;
if (pt == NULL)
conf = priv;
-#if HAVE_VARNISH_V4
- class = pt->section->fantom->type;
- name = pt->desc->name;
+#if HAVE_VARNISH_V5
+ char namebuff[DATA_MAX_NAME_LEN];
+
+ char const *c = strrchr(pt->name, '.');
+ if (c == NULL) {
+ return EINVAL;
+ }
+ sstrncpy(namebuff, c + 1, sizeof(namebuff));
+ name = namebuff;
- if (strcmp(class, "MAIN") != 0)
+#elif HAVE_VARNISH_V4
+ if (strcmp(pt->section->fantom->type, "MAIN") != 0)
return 0;
+ name = pt->desc->name;
#elif HAVE_VARNISH_V3
- class = pt->class;
- name = pt->name;
-
- if (strcmp(class, "") != 0)
+ if (strcmp(pt->class, "") != 0)
return 0;
+
+ name = pt->name;
#endif
val = *(const volatile uint64_t *)pt->ptr;
else if (strcmp(name, "client_req") == 0)
return varnish_submit_derive(conf->instance, "connections", "connections",
"received", val);
-#ifdef HAVE_VARNISH_V4
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
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
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
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
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
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
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
if (conf->collect_ban) {
if (strcmp(name, "bans") == 0)
return varnish_submit_derive(conf->instance, "ban", "total_operations",
else if (strcmp(name, "bans_tests_tested") == 0)
return varnish_submit_derive(conf->instance, "ban", "total_operations",
"tests_tested", val);
-
}
#endif
else if (strcmp(name, "sess_herd") == 0)
return varnish_submit_derive(conf->instance, "session",
"total_operations", "herd", val);
-#if HAVE_VARNISH_V4
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
else if (strcmp(name, "sess_closed_err") == 0)
return varnish_submit_derive(conf->instance, "session",
"total_operations", "closed_err", val);
else if (strcmp(name, "sess_dropped") == 0)
return varnish_submit_derive(conf->instance, "session",
- "total_operations", "dropped_for_thread", val);
+ "total_operations", "dropped_for_thread",
+ val);
#endif
}
"dropped", val);
else if (strcmp(name, "thread_queue_len") == 0)
return varnish_submit_gauge(conf->instance, "workers", "queue_length",
- "threads", val);
+ "threads", val);
else if (strcmp(name, "n_wrk") == 0)
return varnish_submit_gauge(conf->instance, "workers", "threads",
"worker", 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
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
else if (strcmp(name, "pools") == 0)
- return varnish_submit_gauge(conf->instance, "workers", "pools",
- "pools", val);
+ return varnish_submit_gauge(conf->instance, "workers", "pools", "pools",
+ val);
else if (strcmp(name, "busy_killed") == 0)
return varnish_submit_derive(conf->instance, "workers", "http_requests",
"busy_killed", val);
#endif
}
-#if HAVE_VARNISH_V4
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
if (conf->collect_vsm) {
if (strcmp(name, "vsm_free") == 0)
return varnish_submit_gauge(conf->instance, "vsm", "bytes", "free", val);
"bitmap", "happy_hprobes", val);
*/
if (strcmp(name, "bereq_hdrbytes") == 0)
- return varnish_submit_derive(conf->instance, "vbe",
- "total_bytes", "bereq_hdrbytes", val);
+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes",
+ "bereq_hdrbytes", val);
else if (strcmp(name, "bereq_bodybytes") == 0)
- return varnish_submit_derive(conf->instance, "vbe",
- "total_bytes", "bereq_bodybytes", val);
+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes",
+ "bereq_bodybytes", val);
else if (strcmp(name, "bereq_protobytes") == 0)
- return varnish_submit_derive(conf->instance, "vbe",
- "total_bytes", "bereq_protobytes", val);
+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes",
+ "bereq_protobytes", val);
else if (strcmp(name, "beresp_hdrbytes") == 0)
- return varnish_submit_derive(conf->instance, "vbe",
- "total_bytes", "beresp_hdrbytes", val);
+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes",
+ "beresp_hdrbytes", val);
else if (strcmp(name, "beresp_bodybytes") == 0)
- return varnish_submit_derive(conf->instance, "vbe",
- "total_bytes", "beresp_bodybytes", val);
+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes",
+ "beresp_bodybytes", val);
else if (strcmp(name, "beresp_protobytes") == 0)
- return varnish_submit_derive(conf->instance, "vbe",
- "total_bytes", "beresp_protobytes", val);
+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes",
+ "beresp_protobytes", val);
else if (strcmp(name, "pipe_hdrbytes") == 0)
- return varnish_submit_derive(conf->instance, "vbe",
- "total_bytes", "pipe_hdrbytes", val);
+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes",
+ "pipe_hdrbytes", val);
else if (strcmp(name, "pipe_out") == 0)
- return varnish_submit_derive(conf->instance, "vbe",
- "total_bytes", "pipe_out", val);
+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes",
+ "pipe_out", val);
else if (strcmp(name, "pipe_in") == 0)
- return varnish_submit_derive(conf->instance, "vbe",
- "total_bytes", "pipe_in", val);
+ return varnish_submit_derive(conf->instance, "vbe", "total_bytes",
+ "pipe_in", val);
else if (strcmp(name, "conn") == 0)
return varnish_submit_derive(conf->instance, "vbe", "connections",
- "c_conns", val);
+ "c_conns", val);
else if (strcmp(name, "req") == 0)
return varnish_submit_derive(conf->instance, "vbe", "http_requests",
- "b_reqs", val);
+ "b_reqs", val);
}
/* All Stevedores support these counters */
strncpy(category, "mse", 4);
if (strcmp(name, "c_req") == 0)
- return varnish_submit_derive(conf->instance, category,
- "total_operations", "alloc_req", val);
+ return varnish_submit_derive(conf->instance, category, "total_operations",
+ "alloc_req", val);
else if (strcmp(name, "c_fail") == 0)
- return varnish_submit_derive(conf->instance, category,
- "total_operations", "alloc_fail", val);
+ return varnish_submit_derive(conf->instance, category, "total_operations",
+ "alloc_fail", val);
else if (strcmp(name, "c_bytes") == 0)
- return varnish_submit_derive(conf->instance, category,
- "total_bytes", "bytes_allocated", val);
+ return varnish_submit_derive(conf->instance, category, "total_bytes",
+ "bytes_allocated", val);
else if (strcmp(name, "c_freed") == 0)
- return varnish_submit_derive(conf->instance, category,
- "total_bytes", "bytes_freed", val);
+ return varnish_submit_derive(conf->instance, category, "total_bytes",
+ "bytes_freed", val);
else if (strcmp(name, "g_alloc") == 0)
- return varnish_submit_derive(conf->instance, category,
- "total_operations", "alloc_outstanding", val);
+ return varnish_submit_derive(conf->instance, category, "total_operations",
+ "alloc_outstanding", val);
else if (strcmp(name, "g_bytes") == 0)
return varnish_submit_gauge(conf->instance, category, "bytes",
"bytes_outstanding", val);
if (conf->collect_smf) {
if (strcmp(name, "g_smf") == 0)
- return varnish_submit_gauge(conf->instance, "smf", "objects",
- "n_struct_smf", val);
- else if (strcmp(name, "g_smf_frag") == 0)
- return varnish_submit_gauge(conf->instance, "smf", "objects",
- "n_small_free_smf", val);
- else if (strcmp(name, "g_smf_large") == 0)
- return varnish_submit_gauge(conf->instance, "smf", "objects",
- "n_large_free_smf", val);
+ return varnish_submit_gauge(conf->instance, "smf", "objects",
+ "n_struct_smf", val);
+ else if (strcmp(name, "g_smf_frag") == 0)
+ return varnish_submit_gauge(conf->instance, "smf", "objects",
+ "n_small_free_smf", val);
+ else if (strcmp(name, "g_smf_large") == 0)
+ return varnish_submit_gauge(conf->instance, "smf", "objects",
+ "n_large_free_smf", val);
}
if (conf->collect_mgt) {
return varnish_submit_gauge(conf->instance, "mgt", "uptime",
"mgt_proc_uptime", val);
else if (strcmp(name, "child_start") == 0)
- return varnish_submit_derive(conf->instance, "mgt",
- "total_operations", "child_start", val);
+ return varnish_submit_derive(conf->instance, "mgt", "total_operations",
+ "child_start", val);
else if (strcmp(name, "child_exit") == 0)
- return varnish_submit_derive(conf->instance, "mgt",
- "total_operations", "child_exit", val);
+ return varnish_submit_derive(conf->instance, "mgt", "total_operations",
+ "child_exit", val);
else if (strcmp(name, "child_stop") == 0)
- return varnish_submit_derive(conf->instance, "mgt",
- "total_operations", "child_stop", val);
+ return varnish_submit_derive(conf->instance, "mgt", "total_operations",
+ "child_stop", val);
else if (strcmp(name, "child_died") == 0)
- return varnish_submit_derive(conf->instance, "mgt",
- "total_operations", "child_died", val);
+ return varnish_submit_derive(conf->instance, "mgt", "total_operations",
+ "child_died", val);
else if (strcmp(name, "child_dump") == 0)
- return varnish_submit_derive(conf->instance, "mgt",
- "total_operations", "child_dump", val);
+ return varnish_submit_derive(conf->instance, "mgt", "total_operations",
+ "child_dump", val);
else if (strcmp(name, "child_panic") == 0)
- return varnish_submit_derive(conf->instance, "mgt",
- "total_operations", "child_panic", val);
+ return varnish_submit_derive(conf->instance, "mgt", "total_operations",
+ "child_panic", val);
}
if (conf->collect_lck) {
if (strcmp(name, "creat") == 0)
- return varnish_submit_gauge(conf->instance, "lck", "objects",
- "created", val);
+ return varnish_submit_gauge(conf->instance, "lck", "objects", "created",
+ val);
else if (strcmp(name, "destroy") == 0)
- return varnish_submit_gauge(conf->instance, "lck", "objects",
- "destroyed", val);
+ return varnish_submit_gauge(conf->instance, "lck", "objects", "destroyed",
+ val);
else if (strcmp(name, "locks") == 0)
return varnish_submit_derive(conf->instance, "lck", "total_operations",
- "lock_ops", val);
+ "lock_ops", val);
}
if (conf->collect_mempool) {
return varnish_submit_derive(conf->instance, "mempool",
"total_operations", "frees", val);
else if (strcmp(name, "recycle") == 0)
- return varnish_submit_gauge(conf->instance, "mempool",
- "objects", "recycled", val);
+ return varnish_submit_gauge(conf->instance, "mempool", "objects",
+ "recycled", val);
else if (strcmp(name, "timeout") == 0)
- return varnish_submit_gauge(conf->instance, "mempool",
- "objects", "timed_out", val);
+ return varnish_submit_gauge(conf->instance, "mempool", "objects",
+ "timed_out", val);
else if (strcmp(name, "toosmall") == 0)
- return varnish_submit_gauge(conf->instance, "mempool",
- "objects", "too_small", val);
+ return varnish_submit_gauge(conf->instance, "mempool", "objects",
+ "too_small", val);
else if (strcmp(name, "surplus") == 0)
- return varnish_submit_gauge(conf->instance, "mempool",
- "objects", "surplus", val);
+ return varnish_submit_gauge(conf->instance, "mempool", "objects",
+ "surplus", val);
else if (strcmp(name, "randry") == 0)
- return varnish_submit_gauge(conf->instance, "mempool",
- "objects", "ran_dry", val);
+ return varnish_submit_gauge(conf->instance, "mempool", "objects",
+ "ran_dry", val);
}
if (conf->collect_mse) {
if (strcmp(name, "c_full") == 0)
- return varnish_submit_derive(conf->instance, "mse",
- "total_operations", "full_allocs", val);
+ return varnish_submit_derive(conf->instance, "mse", "total_operations",
+ "full_allocs", val);
else if (strcmp(name, "c_truncated") == 0)
- return varnish_submit_derive(conf->instance, "mse",
- "total_operations", "truncated_allocs", val);
+ return varnish_submit_derive(conf->instance, "mse", "total_operations",
+ "truncated_allocs", val);
else if (strcmp(name, "c_expanded") == 0)
- return varnish_submit_derive(conf->instance, "mse",
- "total_operations", "expanded_allocs", val);
+ return varnish_submit_derive(conf->instance, "mse", "total_operations",
+ "expanded_allocs", val);
else if (strcmp(name, "c_failed") == 0)
- return varnish_submit_derive(conf->instance, "mse",
- "total_operations", "failed_allocs", val);
+ return varnish_submit_derive(conf->instance, "mse", "total_operations",
+ "failed_allocs", val);
else if (strcmp(name, "c_bytes") == 0)
- return varnish_submit_derive(conf->instance, "mse",
- "total_bytes", "bytes_allocated", val);
+ return varnish_submit_derive(conf->instance, "mse", "total_bytes",
+ "bytes_allocated", val);
else if (strcmp(name, "c_freed") == 0)
- return varnish_submit_derive(conf->instance, "mse",
- "total_bytes", "bytes_freed", val);
+ return varnish_submit_derive(conf->instance, "mse", "total_bytes",
+ "bytes_freed", val);
else if (strcmp(name, "g_fo_alloc") == 0)
- return varnish_submit_derive(conf->instance, "mse",
- "total_operations", "fo_allocs_outstanding", val);
+ return varnish_submit_derive(conf->instance, "mse", "total_operations",
+ "fo_allocs_outstanding", val);
else if (strcmp(name, "g_fo_bytes") == 0)
- return varnish_submit_gauge(conf->instance, "mse",
- "bytes", "fo_bytes_outstanding", val);
+ return varnish_submit_gauge(conf->instance, "mse", "bytes",
+ "fo_bytes_outstanding", val);
else if (strcmp(name, "g_membuf_alloc") == 0)
- return varnish_submit_gauge(conf->instance, "mse",
- "objects", "membufs_allocated", val);
+ return varnish_submit_gauge(conf->instance, "mse", "objects",
+ "membufs_allocated", val);
else if (strcmp(name, "g_membuf_inuse") == 0)
- return varnish_submit_gauge(conf->instance, "mse",
- "objects", "membufs_inuse", val);
+ return varnish_submit_gauge(conf->instance, "mse", "objects",
+ "membufs_inuse", val);
else if (strcmp(name, "g_bans_bytes") == 0)
- return varnish_submit_gauge(conf->instance, "mse",
- "bytes", "persisted_banspace_used", val);
+ return varnish_submit_gauge(conf->instance, "mse", "bytes",
+ "persisted_banspace_used", val);
else if (strcmp(name, "g_bans_space") == 0)
- return varnish_submit_gauge(conf->instance, "mse",
- "bytes", "persisted_banspace_available", val);
+ return varnish_submit_gauge(conf->instance, "mse", "bytes",
+ "persisted_banspace_available", val);
else if (strcmp(name, "g_bans_persisted") == 0)
- return varnish_submit_derive(conf->instance, "mse",
- "total_operations", "bans_persisted", val);
+ return varnish_submit_derive(conf->instance, "mse", "total_operations",
+ "bans_persisted", val);
else if (strcmp(name, "g_bans_lost") == 0)
- return varnish_submit_derive(conf->instance, "mse",
- "total_operations", "bans_lost", val);
+ return varnish_submit_derive(conf->instance, "mse", "total_operations",
+ "bans_lost", val);
- /* mse seg */
+ /* mse seg */
else if (strcmp(name, "g_journal_bytes") == 0)
- return varnish_submit_gauge(conf->instance, "mse_reg",
- "bytes", "journal_bytes_used", val);
+ return varnish_submit_gauge(conf->instance, "mse_reg", "bytes",
+ "journal_bytes_used", val);
else if (strcmp(name, "g_journal_space") == 0)
- return varnish_submit_gauge(conf->instance, "mse_reg",
- "bytes", "journal_bytes_free", val);
+ return varnish_submit_gauge(conf->instance, "mse_reg", "bytes",
+ "journal_bytes_free", val);
/* mse segagg */
else if (strcmp(name, "g_bigspace") == 0)
- return varnish_submit_gauge(conf->instance, "mse_segagg",
- "bytes", "big_extents_bytes_available", val);
+ return varnish_submit_gauge(conf->instance, "mse_segagg", "bytes",
+ "big_extents_bytes_available", val);
else if (strcmp(name, "g_extfree") == 0)
- return varnish_submit_gauge(conf->instance, "mse_segagg",
- "objects", "free_extents", val);
+ return varnish_submit_gauge(conf->instance, "mse_segagg", "objects",
+ "free_extents", val);
else if (strcmp(name, "g_sparenode") == 0)
- return varnish_submit_gauge(conf->instance, "mse_segagg",
- "objects", "spare_nodes_available", val);
+ return varnish_submit_gauge(conf->instance, "mse_segagg", "objects",
+ "spare_nodes_available", val);
else if (strcmp(name, "g_objnode") == 0)
- return varnish_submit_gauge(conf->instance, "mse_segagg",
- "objects", "object_nodes_in_use", val);
+ return varnish_submit_gauge(conf->instance, "mse_segagg", "objects",
+ "object_nodes_in_use", val);
else if (strcmp(name, "g_extnode") == 0)
- return varnish_submit_gauge(conf->instance, "mse_segagg",
- "objects", "extent_nodes_in_use", val);
+ return varnish_submit_gauge(conf->instance, "mse_segagg", "objects",
+ "extent_nodes_in_use", val);
else if (strcmp(name, "g_bigextfree") == 0)
- return varnish_submit_gauge(conf->instance, "mse_segagg",
- "objects", "free_big_extents", val);
+ return varnish_submit_gauge(conf->instance, "mse_segagg", "objects",
+ "free_big_extents", val);
else if (strcmp(name, "c_pruneloop") == 0)
return varnish_submit_derive(conf->instance, "mse_segagg",
- "total_operations", "prune_loops", val);
+ "total_operations", "prune_loops", val);
else if (strcmp(name, "c_pruned") == 0)
return varnish_submit_derive(conf->instance, "mse_segagg",
- "total_objects", "pruned_objects", val);
+ "total_objects", "pruned_objects", val);
else if (strcmp(name, "c_spared") == 0)
return varnish_submit_derive(conf->instance, "mse_segagg",
- "total_operations", "spared_objects", val);
+ "total_operations", "spared_objects", val);
else if (strcmp(name, "c_skipped") == 0)
return varnish_submit_derive(conf->instance, "mse_segagg",
- "total_operations", "missed_objects", val);
+ "total_operations", "missed_objects", val);
else if (strcmp(name, "c_nuked") == 0)
return varnish_submit_derive(conf->instance, "mse_segagg",
- "total_operations", "nuked_objects", val);
+ "total_operations", "nuked_objects", val);
else if (strcmp(name, "c_sniped") == 0)
return varnish_submit_derive(conf->instance, "mse_segagg",
- "total_operations", "sniped_objects", val);
-
+ "total_operations", "sniped_objects", val);
}
#endif
} /* }}} void varnish_monitor */
#endif
-#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
static int varnish_read(user_data_t *ud) /* {{{ */
{
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
struct VSM_data *vd;
- const c_varnish_stats_t *stats;
_Bool ok;
+ const c_varnish_stats_t *stats;
+#elif HAVE_VARNISH_V5
+ struct vsm *vd;
+ struct vsc *vsc;
+ int vsm_status;
+#endif
user_config_t *conf;
conf = ud->data;
vd = VSM_New();
+
+#if HAVE_VARNISH_V5
+ vsc = VSC_New();
+#endif
+
#if HAVE_VARNISH_V3
VSC_Setup(vd);
#endif
if (conf->instance != NULL) {
int status;
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
status = VSM_n_Arg(vd, conf->instance);
+#elif HAVE_VARNISH_V5
+ status = VSM_Arg(vd, 'n', conf->instance);
+#endif
+
if (status < 0) {
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
VSM_Delete(vd);
- ERROR("varnish plugin: VSM_n_Arg (\"%s\") failed "
+#elif HAVE_VARNISH_V5
+ VSC_Destroy(&vsc, vd);
+ VSM_Destroy(&vd);
+#endif
+ ERROR("varnish plugin: VSM_Arg (\"%s\") failed "
"with status %i.",
conf->instance, status);
return -1;
#if HAVE_VARNISH_V3
ok = (VSC_Open(vd, /* diag = */ 1) == 0);
-#else /* if HAVE_VARNISH_V4 */
+#elif HAVE_VARNISH_V4
ok = (VSM_Open(vd) == 0);
#endif
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
if (!ok) {
VSM_Delete(vd);
ERROR("varnish plugin: Unable to open connection.");
-
return -1;
}
+#endif
#if HAVE_VARNISH_V3
stats = VSC_Main(vd);
-#else /* if HAVE_VARNISH_V4 */
+#elif HAVE_VARNISH_V4
stats = VSC_Main(vd, NULL);
#endif
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
if (!stats) {
VSM_Delete(vd);
ERROR("varnish plugin: Unable to get statistics.");
+ return -1;
+ }
+#endif
+
+#if HAVE_VARNISH_V5
+ if (VSM_Attach(vd, STDERR_FILENO)) {
+ ERROR("varnish plugin: Cannot attach to varnish. %s", VSM_Error(vd));
+ VSC_Destroy(&vsc, vd);
+ VSM_Destroy(&vd);
+ return -1;
+ }
+ vsm_status = VSM_Status(vd);
+ if (vsm_status & ~(VSM_MGT_RUNNING | VSM_WRK_RUNNING)) {
+ ERROR("varnish plugin: Unable to get statistics.");
+ VSC_Destroy(&vsc, vd);
+ VSM_Destroy(&vd);
return -1;
}
+#endif
#if HAVE_VARNISH_V3
VSC_Iter(vd, varnish_monitor, conf);
-#else /* if HAVE_VARNISH_V4 */
+#elif HAVE_VARNISH_V4
VSC_Iter(vd, NULL, varnish_monitor, conf);
+#elif HAVE_VARNISH_V5
+ VSC_Iter(vsc, vd, varnish_monitor, conf);
#endif
+
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
VSM_Delete(vd);
+#elif HAVE_VARNISH_V5
+ VSC_Destroy(&vsc, vd);
+ VSM_Destroy(&vd);
+#endif
return 0;
} /* }}} */
#if HAVE_VARNISH_V2
conf->collect_sm = 0;
#endif
-#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4
+#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
conf->collect_sma = 0;
#endif
conf->collect_sms = 0;
conf->collect_struct = 0;
conf->collect_totals = 0;
-#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
conf->collect_uptime = 0;
#endif
conf->collect_vcl = 0;
conf->collect_workers = 0;
-#if HAVE_VARNISH_V4
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
conf->collect_vsm = 0;
conf->collect_lck = 0;
conf->collect_mempool = 0;
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
+#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
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
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
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
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
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
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
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
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
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
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
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
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
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
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
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
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
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
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
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
+#if HAVE_VARNISH_V2 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
&& !conf->collect_sma
#endif
&& !conf->collect_struct && !conf->collect_totals
-#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4
+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 || HAVE_VARNISH_V5
&& !conf->collect_uptime
#endif
&& !conf->collect_vcl && !conf->collect_workers
-#if HAVE_VARNISH_V4
- && !conf->collect_vsm && !conf->collect_vbe && !conf->collect_smf
- && !conf->collect_mgt && !conf->collect_lck && !conf->collect_mempool
- && !conf->collect_mse
+#if HAVE_VARNISH_V4 || HAVE_VARNISH_V5
+ && !conf->collect_vsm && !conf->collect_vbe && !conf->collect_smf &&
+ !conf->collect_mgt && !conf->collect_lck && !conf->collect_mempool &&
+ !conf->collect_mse
#endif
) {
WARNING("Varnish plugin: No metric has been configured for "
diff --git a/version-gen.sh b/version-gen.sh
index 2c7a2e552fe6013f85bbfad8498aa1ad6f5f6b27..620f46eaa80f45127a3aa1762a608ece9876d6e3 100755 (executable)
--- a/version-gen.sh
+++ b/version-gen.sh
#!/bin/sh
-DEFAULT_VERSION="5.7.2.git"
+DEFAULT_VERSION="5.8.0-RC0.git"
if [ -d .git ]; then
VERSION="`git describe --dirty=+ --abbrev=7 2> /dev/null | grep collectd | sed -e 's/^collectd-//' -e 's/-/./g'`"