summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2026-09-04 11:22:25 +0200
committerChristian Breunig <christian@breunig.cc>2026-09-04 11:23:36 +0200
commit51313ee0f53b98dbb61d9774ebc6a11207a2b53f (patch)
tree981887f7480f8a4eb6ae724f463a5db15dc26ff8 /scripts
parente8e28f49f97807d119903cfef93fe13585422bf6 (diff)
downloadvyos-build-51313ee0f53b98dbb61d9774ebc6a11207a2b53f.tar.gz
vyos-build-51313ee0f53b98dbb61d9774ebc6a11207a2b53f.zip
telegraf: T9277: only compile plugins that can be instantiated from the CLI
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/package-build/telegraf/build.sh41
-rw-r--r--scripts/package-build/telegraf/plugins/inputs/all/all.go72
-rw-r--r--scripts/package-build/telegraf/plugins/outputs/all/all.go9
3 files changed, 33 insertions, 89 deletions
diff --git a/scripts/package-build/telegraf/build.sh b/scripts/package-build/telegraf/build.sh
index 2ba511d0..09e6c1ca 100755
--- a/scripts/package-build/telegraf/build.sh
+++ b/scripts/package-build/telegraf/build.sh
@@ -1,5 +1,4 @@
#!/bin/sh
-CWD=$(pwd)
set -e
BUILD_ARCH=$(dpkg-architecture -qDEB_TARGET_ARCH)
@@ -10,18 +9,44 @@ if [ ! -d ${SRC} ]; then
exit 1
fi
-PLUGIN_DIR=${CWD}/plugins
+# T9277: Only compile in the plugins that can actually be instantiated from the
+# VyOS CLI. Telegraf ships ~240 inputs and ~60 outputs, which produces a 198 MB
+# binary; the list below brings that down to about 28 MB.
+#
+# These names are the plugins referenced by the vyos-1x telegraf templates in
+# data/templates/telegraf/. When a plugin is added there, it MUST be added here
+# too, otherwise telegraf fails to start with an "unknown plugin" error.
+TELEGRAF_INPUTS="chrony conntrack cpu disk diskio ethtool exec internal
+ interrupts kernel linux_sysctl_fs mem net netstat nstat
+ processes syslog system systemd_units"
+TELEGRAF_OUTPUTS="azure_data_explorer http influxdb_v2 loki prometheus_client"
+# "influx" backs [[inputs.exec]] data_format, "splunkmetric" backs the Splunk
+# [[outputs.http]] data_format.
+TELEGRAF_PARSERS="influx"
+TELEGRAF_SERIALIZERS="splunkmetric"
-echo "I: Selecting Input plugins"
-cp ${PLUGIN_DIR}/inputs/all/all.go ${SRC}/plugins/inputs/all/all.go
+# Telegraf selects plugins via Go build tags: the "custom" tag disables the
+# compile-everything default, and every plugin is then opted back in by name.
+BUILDTAGS="custom"
+for plugin in ${TELEGRAF_INPUTS}; do
+ BUILDTAGS="${BUILDTAGS},inputs.${plugin}"
+done
+for plugin in ${TELEGRAF_OUTPUTS}; do
+ BUILDTAGS="${BUILDTAGS},outputs.${plugin}"
+done
+for plugin in ${TELEGRAF_PARSERS}; do
+ BUILDTAGS="${BUILDTAGS},parsers.${plugin}"
+done
+for plugin in ${TELEGRAF_SERIALIZERS}; do
+ BUILDTAGS="${BUILDTAGS},serializers.${plugin}"
+done
-echo "I: Selecting Output plugins"
-cp ${PLUGIN_DIR}/outputs/all/all.go ${SRC}/plugins/outputs/all/all.go
+echo "I: Selected plugins: ${BUILDTAGS}"
echo "I: Build Debian ${BUILD_ARCH} package"
cd ${SRC}
export PATH=/opt/go/bin:$PATH
# Generate default telegraf config
-go run ./cmd/telegraf config > etc/telegraf.conf
-LDFLAGS=-w make "${BUILD_ARCH}.deb"
+go run -tags "${BUILDTAGS}" ./cmd/telegraf config > etc/telegraf.conf
+make BUILDTAGS="${BUILDTAGS}" "${BUILD_ARCH}.deb"
diff --git a/scripts/package-build/telegraf/plugins/inputs/all/all.go b/scripts/package-build/telegraf/plugins/inputs/all/all.go
deleted file mode 100644
index 8265681b..00000000
--- a/scripts/package-build/telegraf/plugins/inputs/all/all.go
+++ /dev/null
@@ -1,72 +0,0 @@
-package all
-
-import (
- //Blank imports for plugins to register themselves
- _ "github.com/influxdata/telegraf/plugins/inputs/azure_storage_queue"
- _ "github.com/influxdata/telegraf/plugins/inputs/bond"
- _ "github.com/influxdata/telegraf/plugins/inputs/cgroup"
- _ "github.com/influxdata/telegraf/plugins/inputs/chrony"
- _ "github.com/influxdata/telegraf/plugins/inputs/conntrack"
- _ "github.com/influxdata/telegraf/plugins/inputs/cpu"
- _ "github.com/influxdata/telegraf/plugins/inputs/disk"
- _ "github.com/influxdata/telegraf/plugins/inputs/diskio"
- _ "github.com/influxdata/telegraf/plugins/inputs/disque"
- _ "github.com/influxdata/telegraf/plugins/inputs/dmcache"
- _ "github.com/influxdata/telegraf/plugins/inputs/dns_query"
- _ "github.com/influxdata/telegraf/plugins/inputs/docker"
- _ "github.com/influxdata/telegraf/plugins/inputs/docker_log"
- _ "github.com/influxdata/telegraf/plugins/inputs/ethtool"
- _ "github.com/influxdata/telegraf/plugins/inputs/exec"
- _ "github.com/influxdata/telegraf/plugins/inputs/execd"
- _ "github.com/influxdata/telegraf/plugins/inputs/file"
- _ "github.com/influxdata/telegraf/plugins/inputs/filecount"
- _ "github.com/influxdata/telegraf/plugins/inputs/filestat"
- _ "github.com/influxdata/telegraf/plugins/inputs/fireboard"
- _ "github.com/influxdata/telegraf/plugins/inputs/hddtemp"
- _ "github.com/influxdata/telegraf/plugins/inputs/hugepages"
- _ "github.com/influxdata/telegraf/plugins/inputs/influxdb"
- _ "github.com/influxdata/telegraf/plugins/inputs/influxdb_listener"
- _ "github.com/influxdata/telegraf/plugins/inputs/influxdb_v2_listener"
- _ "github.com/influxdata/telegraf/plugins/inputs/intel_pmu"
- _ "github.com/influxdata/telegraf/plugins/inputs/intel_powerstat"
- _ "github.com/influxdata/telegraf/plugins/inputs/intel_rdt"
- _ "github.com/influxdata/telegraf/plugins/inputs/internal"
- _ "github.com/influxdata/telegraf/plugins/inputs/internet_speed"
- _ "github.com/influxdata/telegraf/plugins/inputs/interrupts"
- _ "github.com/influxdata/telegraf/plugins/inputs/ipmi_sensor"
- _ "github.com/influxdata/telegraf/plugins/inputs/ipset"
- _ "github.com/influxdata/telegraf/plugins/inputs/iptables"
- _ "github.com/influxdata/telegraf/plugins/inputs/ipvs"
- _ "github.com/influxdata/telegraf/plugins/inputs/kernel"
- _ "github.com/influxdata/telegraf/plugins/inputs/kernel_vmstat"
- _ "github.com/influxdata/telegraf/plugins/inputs/mdstat"
- _ "github.com/influxdata/telegraf/plugins/inputs/mem"
- _ "github.com/influxdata/telegraf/plugins/inputs/net"
- _ "github.com/influxdata/telegraf/plugins/inputs/netstat"
- _ "github.com/influxdata/telegraf/plugins/inputs/nstat"
- _ "github.com/influxdata/telegraf/plugins/inputs/ping"
- _ "github.com/influxdata/telegraf/plugins/inputs/powerdns_recursor"
- _ "github.com/influxdata/telegraf/plugins/inputs/processes"
- _ "github.com/influxdata/telegraf/plugins/inputs/procstat"
- _ "github.com/influxdata/telegraf/plugins/inputs/sensors"
- _ "github.com/influxdata/telegraf/plugins/inputs/sflow"
- _ "github.com/influxdata/telegraf/plugins/inputs/slab"
- _ "github.com/influxdata/telegraf/plugins/inputs/smart"
- _ "github.com/influxdata/telegraf/plugins/inputs/snmp"
- _ "github.com/influxdata/telegraf/plugins/inputs/snmp_legacy"
- _ "github.com/influxdata/telegraf/plugins/inputs/snmp_trap"
- _ "github.com/influxdata/telegraf/plugins/inputs/socket_listener"
- _ "github.com/influxdata/telegraf/plugins/inputs/socketstat"
- _ "github.com/influxdata/telegraf/plugins/inputs/syslog"
- _ "github.com/influxdata/telegraf/plugins/inputs/sysstat"
- _ "github.com/influxdata/telegraf/plugins/inputs/system"
- _ "github.com/influxdata/telegraf/plugins/inputs/systemd_units"
- _ "github.com/influxdata/telegraf/plugins/inputs/tail"
- _ "github.com/influxdata/telegraf/plugins/inputs/tcp_listener"
- _ "github.com/influxdata/telegraf/plugins/inputs/temp"
- _ "github.com/influxdata/telegraf/plugins/inputs/twemproxy"
- _ "github.com/influxdata/telegraf/plugins/inputs/udp_listener"
- _ "github.com/influxdata/telegraf/plugins/inputs/wireguard"
- _ "github.com/influxdata/telegraf/plugins/inputs/wireless"
- _ "github.com/influxdata/telegraf/plugins/inputs/x509_cert"
-)
diff --git a/scripts/package-build/telegraf/plugins/outputs/all/all.go b/scripts/package-build/telegraf/plugins/outputs/all/all.go
deleted file mode 100644
index 49f7e63d..00000000
--- a/scripts/package-build/telegraf/plugins/outputs/all/all.go
+++ /dev/null
@@ -1,9 +0,0 @@
-package all
-
-import (
- //Blank imports for plugins to register themselves
- _ "github.com/influxdata/telegraf/plugins/outputs/azure_data_explorer"
- _ "github.com/influxdata/telegraf/plugins/outputs/http"
- _ "github.com/influxdata/telegraf/plugins/outputs/influxdb_v2"
- _ "github.com/influxdata/telegraf/plugins/outputs/prometheus_client"
-)