This adds collectd, without any further plugin support so far.

The systemd unit file was derived from the example delivered with the
packet; some default options have been removed, and we don't depend
on networking.

Signed-off-by: Robert Schwebel <[email protected]>
---
Changes since v3:
* use $(GLOBAL_LARGE_FILE_OPTION)
* add --without-perl-bindings
* relative link for systemd service files
* install config files

Changes since v2:
* adapted systemd unit according to review feedback

Changes since v1:
* use modern enable/disable method, similar to gstreamer

 generic/etc/collectd.conf                   |  46 ++++++
 generic/lib/systemd/system/collectd.service |   9 ++
 rules/collectd.in                           |  10 ++
 rules/collectd.make                         | 219 ++++++++++++++++++++++++++++
 4 files changed, 284 insertions(+)
 create mode 100644 generic/etc/collectd.conf
 create mode 100644 generic/lib/systemd/system/collectd.service
 create mode 100644 rules/collectd.in
 create mode 100644 rules/collectd.make

diff --git a/generic/etc/collectd.conf b/generic/etc/collectd.conf
new file mode 100644
index 0000000..400ff6d
--- /dev/null
+++ b/generic/etc/collectd.conf
@@ -0,0 +1,46 @@
+#
+# Config file for collectd(1).
+# Please read collectd.conf(5) for a list of options.
+# http://collectd.org/
+#
+
+##############################################################################
+# Global                                                                     #
+#----------------------------------------------------------------------------#
+# Global settings for the daemon.                                            #
+##############################################################################
+
+Hostname    "localhost"
+FQDNLookup  true
+BaseDir     "/var/lib/collectd"
+PIDFile     "/var/run/collectd.pid"
+PluginDir   "/usr/lib/collectd"
+TypesDB     "/usr/share/collectd/types.db"
+
+#----------------------------------------------------------------------------#
+# When enabled, plugins are loaded automatically with the default options    #
+# when an appropriate <Plugin ...> block is encountered.                     #
+# Disabled by default.                                                       #
+#----------------------------------------------------------------------------#
+AutoLoadPlugin false
+
+#----------------------------------------------------------------------------#
+# Interval at which to query values. This may be overwritten on a per-plugin #
+# base by using the 'Interval' option of the LoadPlugin block:               #
+#   <LoadPlugin foo>                                                         #
+#       Interval 60                                                          #
+#   </LoadPlugin>                                                            #
+#----------------------------------------------------------------------------#
+Interval     10
+
+Timeout      2
+ReadThreads  2
+WriteThreads 2
+
+# Limit the size of the write queue. Default is no limit. Setting up a limit is
+# recommended for servers handling a high volume of traffic.
+#WriteQueueLimitHigh 1000000
+#WriteQueueLimitLow   800000
+
+Include "/etc/collectd.d/*.conf"
+
diff --git a/generic/lib/systemd/system/collectd.service 
b/generic/lib/systemd/system/collectd.service
new file mode 100644
index 0000000..752245c
--- /dev/null
+++ b/generic/lib/systemd/system/collectd.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=statistics collection daemon
+
+[Service]
+ExecStart=/usr/sbin/collectd -f
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
diff --git a/rules/collectd.in b/rules/collectd.in
new file mode 100644
index 0000000..c5a29d0
--- /dev/null
+++ b/rules/collectd.in
@@ -0,0 +1,10 @@
+## SECTION=shell_and_console
+
+menuconfig COLLECTD
+       tristate
+       prompt "collectd                      "
+       help
+         collectd is a daemon which collects system performance statistics
+         periodically and provides mechanisms to store the values in a
+         variety of ways, for example in RRD files.
+
diff --git a/rules/collectd.make b/rules/collectd.make
new file mode 100644
index 0000000..ec20230
--- /dev/null
+++ b/rules/collectd.make
@@ -0,0 +1,219 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2014 by Markus Pargmann <[email protected]>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_COLLECTD) += collectd
+
+#
+# Paths and names
+#
+COLLECTD_VERSION       := 5.4.1
+COLLECTD               := collectd-$(COLLECTD_VERSION)
+COLLECTD_SUFFIX                := tar.bz2
+COLLECTD_URL           := 
http://collectd.org/files/${COLLECTD}.${COLLECTD_SUFFIX}
+COLLECTD_MD5           := 6f56c71c96573a7f4f7fb3bfab185974
+COLLECTD_DIR           := $(BUILDDIR)/$(COLLECTD)
+COLLECTD_SOURCE                := $(SRCDIR)/$(COLLECTD).$(COLLECTD_SUFFIX)
+COLLECTD_LICENSE       := GPL2
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+COLLECTD_CONF_TOOL     := autoconf
+COLLECTD_CONF_OPT      := $(CROSS_AUTOCONF_USR) \
+       $(GLOBAL_LARGE_FILE_OPTION) \
+       --disable-standards \
+       --disable-glibtest \
+       --disable-debug \
+       --enable-daemon \
+       --disable-getifaddrs \
+       --disable-all-plugins \
+       --with-included-ltdl \
+       --with-nan-emulation \
+       --with-fp-layout=nothing \
+       \
+       --disable-aggregation \
+       --disable-amqp \
+       --disable-apache \
+       --disable-apcups \
+       --disable-apple_sensors \
+       --disable-aquaero \
+       --disable-ascent \
+       --disable-battery \
+       --disable-bind \
+       --disable-conntrack \
+       --disable-contextswitch \
+       --disable-cpufreq \
+       --disable-cpu \
+       --disable-csv \
+       --disable-curl \
+       --disable-curl_json \
+       --disable-curl_xml \
+       --disable-cgroups \
+       --disable-dbi \
+       --disable-df \
+       --disable-disk \
+       --disable-dns \
+       --disable-email \
+       --disable-entropy \
+       --disable-ethstat \
+       --disable-exec \
+       --disable-filecount \
+       --disable-fscache \
+       --disable-gmond \
+       --disable-hddtemp \
+       --disable-interface \
+       --disable-ipmi \
+       --disable-iptables \
+       --disable-ipvs \
+       --disable-irq \
+       --disable-java \
+       --disable-libvirt \
+       --disable-load \
+       --disable-logfile \
+       --disable-lpar \
+       --disable-lvm \
+       --disable-madwifi \
+       --disable-match_empty_counter \
+       --disable-match_hashed \
+       --disable-match_regex \
+       --disable-match_timediff \
+       --disable-match_value \
+       --disable-mbmon \
+       --disable-md \
+       --disable-memcachec \
+       --disable-memcached \
+       --disable-memory \
+       --disable-mic \
+       --disable-modbus \
+       --disable-multimeter \
+       --disable-mysql \
+       --disable-netapp \
+       --disable-netlink \
+       --disable-network \
+       --disable-nfs \
+       --disable-nginx \
+       --disable-notify_desktop \
+       --disable-notify_email \
+       --disable-ntpd \
+       --disable-numa \
+       --disable-nut \
+       --disable-olsrd \
+       --disable-onewire \
+       --disable-openvpn \
+       --disable-oracle \
+       --disable-perl \
+       --disable-pf \
+       --disable-pinba \
+       --disable-ping \
+       --disable-postgresql \
+       --disable-powerdns \
+       --disable-processes \
+       --disable-protocols \
+       --disable-python \
+       --disable-redis \
+       --disable-routeros \
+       --disable-rrdcached \
+       --disable-rrdtool \
+       --disable-sensors \
+       --disable-serial \
+       --disable-sigrok \
+       --disable-snmp \
+       --disable-statsd \
+       --disable-swap \
+       --disable-syslog \
+       --disable-table \
+       --disable-tail \
+       --disable-tail_csv \
+       --disable-tape \
+       --disable-target_notification \
+       --disable-target_replace \
+       --disable-target_scale \
+       --disable-target_set \
+       --disable-target_v5upgrade \
+       --disable-tcpconns \
+       --disable-teamspeak2 \
+       --disable-ted \
+       --disable-thermal \
+       --disable-threshold \
+       --disable-tokyotyrant \
+       --disable-unixsock \
+       --disable-uptime \
+       --disable-users \
+       --disable-uuid \
+       --disable-varnish \
+       --disable-vmem \
+       --disable-vserver \
+       --disable-wireless \
+       --disable-write_graphite \
+       --disable-write_http \
+       --disable-write_mongodb \
+       --disable-write_redis \
+       --disable-write_riemann \
+       --disable-xmms \
+       --disable-zfs_arc \
+       --without-perl-bindings
+
+ifneq ($(call remove_quotes,$(COLLECTD_ENABLE-y)),)
+COLLECTD_CONF_OPT += --enable-$(subst $(space),$(space)--enable-,$(strip 
$(COLLECTD_ENABLE-y)))
+endif
+
+ifneq ($(call remove_quotes,$(COLLECTD_ENABLE-)),)
+COLLECTD_CONF_OPT += --disable-$(subst $(space),$(space)--disable-,$(strip 
$(COLLECTD_ENABLE-)))
+endif
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/collectd.targetinstall:
+       @$(call targetinfo)
+
+       @$(call install_init, collectd)
+       @$(call install_fixup, collectd, PRIORITY, optional)
+       @$(call install_fixup, collectd, SECTION, base)
+       @$(call install_fixup, collectd, AUTHOR, "Markus Pargmann 
<[email protected]>")
+       @$(call install_fixup, collectd, DESCRIPTION, missing)
+
+#      # base files + directories
+       @$(call install_lib, collectd, 0, 0, 0644, libcollectdclient)
+       @$(call install_copy, collectd, 0, 0, 0755, -, /usr/sbin/collectd)
+       @$(call install_alternative, collectd, 0, 0, 0644, /etc/collectd.conf)
+       @$(call install_copy, collectd, 0, 0, 0644, /etc/collectd)
+       @$(call install_copy, collectd, 0, 0, 0644, -, 
/usr/share/collectd/types.db)
+       @$(call install_copy, collectd, 0, 0, 0755, /usr/lib/collectd)
+
+
+ifdef PTXCONF_INITMETHOD_SYSTEMD
+       @$(call install_alternative, collectd, 0, 0, 0644, 
/lib/systemd/system/collectd.service)
+       @$(call install_link, collectd, \
+               ../../../../lib/systemd/system/collectd.service, \
+               /etc/systemd/system/multi-user.target.wants/collectd.service \
+       )
+endif
+       # Plugins
+       @for plugin in $(COLLECTD_ENABLE-y); do \
+               $(call install_copy, collectd, 0, 0, 0644, -, \
+                       /usr/lib/collectd/$${plugin}.so); \
+               $(call install_alternative, collectd, 0, 0, 0644, \
+                       /etc/collectd.d/$${plugin}.conf); \
+       done
+
+       @$(call install_finish, collectd)
+
+       @$(call touch)
+
+# vim: syntax=make
-- 
2.1.4


-- 
ptxdist mailing list
[email protected]

Reply via email to