aboutsummaryrefslogtreecommitdiff
path: root/utils/telegraf
diff options
context:
space:
mode:
authorJonathan Pagel <jonny_tischbein@systemli.org>2021-07-28 09:33:15 +0200
committerNick Hainke <vincent@systemli.org>2021-10-20 18:58:03 +0200
commit2b93edf3a2cf06cdfe3ba0563e251f285f792f6d (patch)
treea29f3d8feb829bf4b38af41d960cea13ac4429c1 /utils/telegraf
parentdacda65d376df03e12936f74e896a012ce0d45c4 (diff)
telegraf: Add package for telegraf
Telegraf is a plugin-driven agent for collecting and sending metrics and events. It supports various inputs (including prometheus endpoints) and is able to send data into InfluxDB. https://www.influxdata.com/time-series-platform/telegraf/ Signed-off-by: Jonathan Pagel <jonny_tischbein@systemli.org>
Diffstat (limited to 'utils/telegraf')
-rw-r--r--utils/telegraf/Makefile84
-rwxr-xr-xutils/telegraf/files/etc/init.d/telegraf14
-rw-r--r--utils/telegraf/variant-small/plugins/aggregators/all/all.go5
-rw-r--r--utils/telegraf/variant-small/plugins/inputs/all/all.go30
-rw-r--r--utils/telegraf/variant-small/plugins/outputs/all/all.go12
-rw-r--r--utils/telegraf/variant-small/plugins/processors/all/all.go5
6 files changed, 150 insertions, 0 deletions
diff --git a/utils/telegraf/Makefile b/utils/telegraf/Makefile
new file mode 100644
index 000000000..3bb9f1d26
--- /dev/null
+++ b/utils/telegraf/Makefile
@@ -0,0 +1,84 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=telegraf
+PKG_VERSION:=1.19.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/influxdata/telegraf/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=cec43bb0acfff8b4c963ffec6e3eab44ffb52c8f34e6a697207977cfd05882aa
+
+PKG_MAINTAINER:=Jonathan Pagel <jonny_tischbein@systemli.org>
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_BUILD_DEPENDS:=golang/host
+PKG_BUILD_PARALLEL:=1
+PKG_USE_MIPS16:=0
+
+GO_PKG:=github.com/influxdata/telegraf
+GO_PKG_BUILD_PKG:=github.com/influxdata/telegraf/cmd/telegraf
+GO_PKG_LDFLAGS_X:=main.version=$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../../lang/golang/golang-package.mk
+
+define Package/telegraf/Default
+ SECTION:=utils
+ CATEGORY:=Utilities
+ TITLE:=Telegraf
+ DEPENDS:=$(GO_ARCH_DEPENDS)
+endef
+
+define Package/telegraf-full
+ $(call Package/telegraf/Default)
+ TITLE+= (Full)
+ VARIANT:=full
+endef
+
+define Package/telegraf
+ $(call Package/telegraf/Default)
+ TITLE+= (Small)
+ VARIANT:=small
+endef
+
+define Package/telegraf/description/Default
+ Telegraf is a plugin-driven agent for collecting and sending metrics and events.
+ It supports various inputs (including prometheus endpoints) and is able to send data into InfluxDB.
+endef
+
+define Package/telegraf/description
+ $(call Package/telegraf/description/Default)
+ (Small build. Most plugins excluded)
+endef
+
+define Package/telegraf-full/description
+ $(call Package/telegraf/description/Default)
+ (Full build. including all plugins)
+endef
+
+define Build/Prepare
+ $(call Build/Prepare/Default)
+ifeq ($(BUILD_VARIANT),small)
+ $(CP) ./variant-$(BUILD_VARIANT)/* $(PKG_BUILD_DIR)/
+endif
+endef
+
+define Package/telegraf/install
+ $(call GoPackage/Package/Install/Bin,$(1))
+ $(INSTALL_DIR) $(1)/etc/init.d $(1)/etc/config
+ $(INSTALL_BIN) ./files/etc/init.d/telegraf $(1)/etc/init.d/telegraf
+ $(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/telegraf.conf $(1)/etc/config/telegraf.conf
+endef
+
+define Package/telegraf-full/install
+ $(call Package/telegraf/install,$(1))
+endef
+
+$(eval $(call GoBinPackage,telegraf))
+$(eval $(call BuildPackage,telegraf))
+
+$(eval $(call GoBinPackage,telegraf-full))
+$(eval $(call BuildPackage,telegraf-full))
diff --git a/utils/telegraf/files/etc/init.d/telegraf b/utils/telegraf/files/etc/init.d/telegraf
new file mode 100755
index 000000000..9faef6611
--- /dev/null
+++ b/utils/telegraf/files/etc/init.d/telegraf
@@ -0,0 +1,14 @@
+#!/bin/sh /etc/rc.common
+
+USE_PROCD=1
+
+START=95
+STOP=01
+
+start_service() {
+ procd_open_instance
+ procd_set_param command /usr/bin/telegraf --config /etc/config/telegraf.conf
+ procd_set_param stdout 1
+ procd_set_param stderr 1
+ procd_close_instance
+}
diff --git a/utils/telegraf/variant-small/plugins/aggregators/all/all.go b/utils/telegraf/variant-small/plugins/aggregators/all/all.go
new file mode 100644
index 000000000..001f1303f
--- /dev/null
+++ b/utils/telegraf/variant-small/plugins/aggregators/all/all.go
@@ -0,0 +1,5 @@
+package all
+
+import (
+ //Blank imports for plugins to register themselves
+)
diff --git a/utils/telegraf/variant-small/plugins/inputs/all/all.go b/utils/telegraf/variant-small/plugins/inputs/all/all.go
new file mode 100644
index 000000000..1b30a03a9
--- /dev/null
+++ b/utils/telegraf/variant-small/plugins/inputs/all/all.go
@@ -0,0 +1,30 @@
+package all
+
+import (
+ //Blank imports for plugins to register themselves
+ _ "github.com/influxdata/telegraf/plugins/inputs/cpu"
+ _ "github.com/influxdata/telegraf/plugins/inputs/ethtool"
+ _ "github.com/influxdata/telegraf/plugins/inputs/internal"
+ _ "github.com/influxdata/telegraf/plugins/inputs/interrupts"
+ _ "github.com/influxdata/telegraf/plugins/inputs/ipset"
+ _ "github.com/influxdata/telegraf/plugins/inputs/iptables"
+ _ "github.com/influxdata/telegraf/plugins/inputs/kernel"
+ _ "github.com/influxdata/telegraf/plugins/inputs/mem"
+ _ "github.com/influxdata/telegraf/plugins/inputs/net"
+ _ "github.com/influxdata/telegraf/plugins/inputs/net_response"
+ _ "github.com/influxdata/telegraf/plugins/inputs/ping"
+ _ "github.com/influxdata/telegraf/plugins/inputs/processes"
+ _ "github.com/influxdata/telegraf/plugins/inputs/procstat"
+ _ "github.com/influxdata/telegraf/plugins/inputs/prometheus"
+ _ "github.com/influxdata/telegraf/plugins/inputs/sensors"
+ _ "github.com/influxdata/telegraf/plugins/inputs/snmp"
+ _ "github.com/influxdata/telegraf/plugins/inputs/socket_listener"
+ _ "github.com/influxdata/telegraf/plugins/inputs/swap"
+ _ "github.com/influxdata/telegraf/plugins/inputs/syslog"
+ _ "github.com/influxdata/telegraf/plugins/inputs/system"
+ _ "github.com/influxdata/telegraf/plugins/inputs/tail"
+ _ "github.com/influxdata/telegraf/plugins/inputs/tcp_listener"
+ _ "github.com/influxdata/telegraf/plugins/inputs/udp_listener"
+ _ "github.com/influxdata/telegraf/plugins/inputs/wireguard"
+ _ "github.com/influxdata/telegraf/plugins/inputs/wireless"
+)
diff --git a/utils/telegraf/variant-small/plugins/outputs/all/all.go b/utils/telegraf/variant-small/plugins/outputs/all/all.go
new file mode 100644
index 000000000..f0b7694f7
--- /dev/null
+++ b/utils/telegraf/variant-small/plugins/outputs/all/all.go
@@ -0,0 +1,12 @@
+package all
+
+import (
+ //Blank imports for plugins to register themselves
+ _ "github.com/influxdata/telegraf/plugins/outputs/exec"
+ _ "github.com/influxdata/telegraf/plugins/outputs/file"
+ _ "github.com/influxdata/telegraf/plugins/outputs/graphite"
+ _ "github.com/influxdata/telegraf/plugins/outputs/http"
+ _ "github.com/influxdata/telegraf/plugins/outputs/influxdb"
+ _ "github.com/influxdata/telegraf/plugins/outputs/prometheus_client"
+ _ "github.com/influxdata/telegraf/plugins/outputs/syslog"
+)
diff --git a/utils/telegraf/variant-small/plugins/processors/all/all.go b/utils/telegraf/variant-small/plugins/processors/all/all.go
new file mode 100644
index 000000000..001f1303f
--- /dev/null
+++ b/utils/telegraf/variant-small/plugins/processors/all/all.go
@@ -0,0 +1,5 @@
+package all
+
+import (
+ //Blank imports for plugins to register themselves
+)