diff options
| author | Christian Breunig <christian@breunig.cc> | 2026-09-04 11:22:25 +0200 |
|---|---|---|
| committer | Christian Breunig <christian@breunig.cc> | 2026-09-04 11:23:36 +0200 |
| commit | 51313ee0f53b98dbb61d9774ebc6a11207a2b53f (patch) | |
| tree | 981887f7480f8a4eb6ae724f463a5db15dc26ff8 /scripts | |
| parent | e8e28f49f97807d119903cfef93fe13585422bf6 (diff) | |
| download | vyos-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-x | scripts/package-build/telegraf/build.sh | 41 | ||||
| -rw-r--r-- | scripts/package-build/telegraf/plugins/inputs/all/all.go | 72 | ||||
| -rw-r--r-- | scripts/package-build/telegraf/plugins/outputs/all/all.go | 9 |
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" -) |
