0
0
Fork 0
mirror of https://github.com/netdata/netdata.git synced 2025-04-24 21:24:12 +00:00

Assorted build cleanup for external data collection plugins. ()

* Make Python collectors optional at build time.

Given the general shift of most data collectors to the Go plugin, it’s
no-longer the case that users ‘always’ need to have the Python plugin
included.

This also makes them consistent with the other external collectors.

* Make charts.d collectors optional at build time.

Same reasoning as for the Python collectors.

Also, this fixes up loopsleepms.sh to only be handled if a collector
that needs it is enabled.

* Properly tie config directories to their plugin components.

The Go and Python plugin config directories were being installed
unconditionally as part of the main Netdata component. This is wrong,
they should be installed as part of the plugin packages/components
instead, as they are only needed if those plugins are installed.
This commit is contained in:
Austin S. Hemmelgarn 2024-09-16 07:25:06 -04:00 committed by GitHub
parent 2246fb180b
commit d837a629fb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 131 additions and 88 deletions

View file

@ -156,8 +156,10 @@ option(ENABLE_DBENGINE "Enable dbengine metrics storage" True)
# Data collection plugins # Data collection plugins
option(ENABLE_PLUGIN_GO "Enable metric collectors written in Go" ${DEFAULT_FEATURE_STATE}) option(ENABLE_PLUGIN_GO "Enable metric collectors written in Go" ${DEFAULT_FEATURE_STATE})
option(ENABLE_PLUGIN_PYTHON "Enable metric collectors written in Python" ${DEFAULT_FEATURE_STATE})
cmake_dependent_option(ENABLE_PLUGIN_APPS "Enable per-process resource usage monitoring" ${DEFAULT_FEATURE_STATE} "NOT OS_WINDOWS" False) cmake_dependent_option(ENABLE_PLUGIN_APPS "Enable per-process resource usage monitoring" ${DEFAULT_FEATURE_STATE} "NOT OS_WINDOWS" False)
cmake_dependent_option(ENABLE_PLUGIN_CHARTS "Enable metric collectors written in Bash" ${DEFAULT_FEATURE_STATE} "NOT OS_WINDOWS" False)
cmake_dependent_option(ENABLE_PLUGIN_CUPS "Enable CUPS monitoring" ${DEFAULT_FEATURE_STATE} "NOT OS_WINDOWS" False) cmake_dependent_option(ENABLE_PLUGIN_CUPS "Enable CUPS monitoring" ${DEFAULT_FEATURE_STATE} "NOT OS_WINDOWS" False)
cmake_dependent_option(ENABLE_PLUGIN_FREEIPMI "Enable IPMI monitoring" ${DEFAULT_FEATURE_STATE} "OS_LINUX OR OS_FREEBSD" False) cmake_dependent_option(ENABLE_PLUGIN_FREEIPMI "Enable IPMI monitoring" ${DEFAULT_FEATURE_STATE} "OS_LINUX OR OS_FREEBSD" False)
@ -2482,9 +2484,7 @@ install(DIRECTORY COMPONENT netdata DESTINATION var/lib/netdata/cloud.d)
install(DIRECTORY COMPONENT netdata DESTINATION var/run/netdata) install(DIRECTORY COMPONENT netdata DESTINATION var/run/netdata)
install(DIRECTORY COMPONENT netdata DESTINATION etc/netdata) install(DIRECTORY COMPONENT netdata DESTINATION etc/netdata)
install(DIRECTORY COMPONENT netdata DESTINATION etc/netdata/custom-plugins.d) install(DIRECTORY COMPONENT netdata DESTINATION etc/netdata/custom-plugins.d)
install(DIRECTORY COMPONENT netdata DESTINATION etc/netdata/go.d)
install(DIRECTORY COMPONENT netdata DESTINATION etc/netdata/health.d) install(DIRECTORY COMPONENT netdata DESTINATION etc/netdata/health.d)
install(DIRECTORY COMPONENT netdata DESTINATION etc/netdata/python.d)
install(DIRECTORY COMPONENT netdata DESTINATION etc/netdata/ssl) install(DIRECTORY COMPONENT netdata DESTINATION etc/netdata/ssl)
install(DIRECTORY COMPONENT netdata DESTINATION etc/netdata/statsd.d) install(DIRECTORY COMPONENT netdata DESTINATION etc/netdata/statsd.d)
install(DIRECTORY COMPONENT netdata DESTINATION usr/lib/netdata/conf.d) install(DIRECTORY COMPONENT netdata DESTINATION usr/lib/netdata/conf.d)
@ -2839,60 +2839,66 @@ endif()
# charts.d plugin # charts.d plugin
# #
install(DIRECTORY COMPONENT plugin-chartsd DESTINATION etc/netdata/charts.d) if(ENABLE_PLUGIN_CHARTS)
install(DIRECTORY COMPONENT plugin-chartsd DESTINATION etc/netdata/charts.d)
configure_file(src/collectors/charts.d.plugin/charts.d.plugin.in src/collectors/charts.d.plugin/charts.d.plugin @ONLY) configure_file(src/collectors/charts.d.plugin/charts.d.plugin.in src/collectors/charts.d.plugin/charts.d.plugin @ONLY)
install(PROGRAMS install(PROGRAMS
${CMAKE_BINARY_DIR}/src/collectors/charts.d.plugin/charts.d.plugin ${CMAKE_BINARY_DIR}/src/collectors/charts.d.plugin/charts.d.plugin
COMPONENT plugin-chartsd COMPONENT plugin-chartsd
DESTINATION usr/libexec/netdata/plugins.d) DESTINATION usr/libexec/netdata/plugins.d)
install(PROGRAMS install(PROGRAMS
src/collectors/charts.d.plugin/charts.d.dryrun-helper.sh src/collectors/charts.d.plugin/charts.d.dryrun-helper.sh
COMPONENT plugin-chartsd COMPONENT plugin-chartsd
DESTINATION usr/libexec/netdata/plugins.d) DESTINATION usr/libexec/netdata/plugins.d)
# loopsleepms is used by the tc.plugin -> ship it in the netdata component install(FILES
install(FILES src/collectors/charts.d.plugin/charts.d.conf
src/collectors/charts.d.plugin/loopsleepms.sh.inc COMPONENT plugin-chartsd
COMPONENT netdata DESTINATION usr/lib/netdata/conf.d)
DESTINATION usr/libexec/netdata/plugins.d)
install(FILES install(PROGRAMS
src/collectors/charts.d.plugin/charts.d.conf src/collectors/charts.d.plugin/example/example.chart.sh
COMPONENT plugin-chartsd src/collectors/charts.d.plugin/libreswan/libreswan.chart.sh
DESTINATION usr/lib/netdata/conf.d) src/collectors/charts.d.plugin/opensips/opensips.chart.sh
COMPONENT plugin-chartsd
DESTINATION usr/libexec/netdata/charts.d)
install(PROGRAMS install(FILES
src/collectors/charts.d.plugin/example/example.chart.sh src/collectors/charts.d.plugin/example/example.conf
src/collectors/charts.d.plugin/libreswan/libreswan.chart.sh src/collectors/charts.d.plugin/libreswan/libreswan.conf
src/collectors/charts.d.plugin/opensips/opensips.chart.sh src/collectors/charts.d.plugin/opensips/opensips.conf
COMPONENT plugin-chartsd COMPONENT plugin-chartsd
DESTINATION usr/libexec/netdata/charts.d) DESTINATION usr/lib/netdata/conf.d/charts.d)
install(FILES if(BUILD_FOR_PACKAGING)
src/collectors/charts.d.plugin/example/example.conf install(FILES
src/collectors/charts.d.plugin/libreswan/libreswan.conf ${PKG_FILES_PATH}/copyright
src/collectors/charts.d.plugin/opensips/opensips.conf COMPONENT plugin-chartsd
COMPONENT plugin-chartsd DESTINATION usr/share/doc/netdata-plugin-chartsd)
DESTINATION usr/lib/netdata/conf.d/charts.d) endif()
endif()
if(BUILD_FOR_PACKAGING) # This is needed both by the TC plugin (which only gets built on Linux) and the charts plugin.
install(FILES if(OS_LINUX OR ENABLE_PLUGIN_CHARTS)
${PKG_FILES_PATH}/copyright install(FILES
COMPONENT plugin-chartsd src/collectors/charts.d.plugin/loopsleepms.sh.inc
DESTINATION usr/share/doc/netdata-plugin-chartsd) COMPONENT netdata
DESTINATION usr/libexec/netdata/plugins.d)
endif() endif()
# #
# tc-qos-helper # tc-qos-helper
# #
configure_file(src/collectors/tc.plugin/tc-qos-helper.sh.in src/collectors/tc.plugin/tc-qos-helper.sh @ONLY) if(OS_LINUX)
install(PROGRAMS configure_file(src/collectors/tc.plugin/tc-qos-helper.sh.in src/collectors/tc.plugin/tc-qos-helper.sh @ONLY)
${CMAKE_BINARY_DIR}/src/collectors/tc.plugin/tc-qos-helper.sh install(PROGRAMS
COMPONENT netdata ${CMAKE_BINARY_DIR}/src/collectors/tc.plugin/tc-qos-helper.sh
DESTINATION usr/libexec/netdata/plugins.d) COMPONENT netdata
DESTINATION usr/libexec/netdata/plugins.d)
endif()
# confs # confs
install(FILES install(FILES
@ -2905,52 +2911,56 @@ install(FILES
# python.d plugin # python.d plugin
# #
configure_file(src/collectors/python.d.plugin/python.d.plugin.in src/collectors/python.d.plugin/python.d.plugin @ONLY) if(ENABLE_PLUGIN_PYTHON)
install(PROGRAMS ${CMAKE_BINARY_DIR}/src/collectors/python.d.plugin/python.d.plugin install(DIRECTORY COMPONENT plugin-pythond DESTINATION etc/netdata/python.d)
COMPONENT plugin-pythond
DESTINATION usr/libexec/netdata/plugins.d)
install(DIRECTORY src/collectors/python.d.plugin/python_modules configure_file(src/collectors/python.d.plugin/python.d.plugin.in src/collectors/python.d.plugin/python.d.plugin @ONLY)
COMPONENT plugin-pythond install(PROGRAMS ${CMAKE_BINARY_DIR}/src/collectors/python.d.plugin/python.d.plugin
DESTINATION usr/libexec/netdata/python.d) COMPONENT plugin-pythond
DESTINATION usr/libexec/netdata/plugins.d)
install(FILES src/collectors/python.d.plugin/python.d.conf install(DIRECTORY src/collectors/python.d.plugin/python_modules
COMPONENT plugin-pythond COMPONENT plugin-pythond
DESTINATION usr/lib/netdata/conf.d) DESTINATION usr/libexec/netdata/python.d)
install(FILES install(FILES src/collectors/python.d.plugin/python.d.conf
src/collectors/python.d.plugin/am2320/am2320.conf COMPONENT plugin-pythond
src/collectors/python.d.plugin/ceph/ceph.conf DESTINATION usr/lib/netdata/conf.d)
src/collectors/python.d.plugin/go_expvar/go_expvar.conf
src/collectors/python.d.plugin/haproxy/haproxy.conf
src/collectors/python.d.plugin/openldap/openldap.conf
src/collectors/python.d.plugin/oracledb/oracledb.conf
src/collectors/python.d.plugin/pandas/pandas.conf
src/collectors/python.d.plugin/spigotmc/spigotmc.conf
src/collectors/python.d.plugin/traefik/traefik.conf
src/collectors/python.d.plugin/zscores/zscores.conf
COMPONENT plugin-pythond
DESTINATION usr/lib/netdata/conf.d/python.d)
install(FILES install(FILES
src/collectors/python.d.plugin/am2320/am2320.chart.py src/collectors/python.d.plugin/am2320/am2320.conf
src/collectors/python.d.plugin/ceph/ceph.chart.py src/collectors/python.d.plugin/ceph/ceph.conf
src/collectors/python.d.plugin/go_expvar/go_expvar.chart.py src/collectors/python.d.plugin/go_expvar/go_expvar.conf
src/collectors/python.d.plugin/haproxy/haproxy.chart.py src/collectors/python.d.plugin/haproxy/haproxy.conf
src/collectors/python.d.plugin/openldap/openldap.chart.py src/collectors/python.d.plugin/openldap/openldap.conf
src/collectors/python.d.plugin/oracledb/oracledb.chart.py src/collectors/python.d.plugin/oracledb/oracledb.conf
src/collectors/python.d.plugin/pandas/pandas.chart.py src/collectors/python.d.plugin/pandas/pandas.conf
src/collectors/python.d.plugin/spigotmc/spigotmc.chart.py src/collectors/python.d.plugin/spigotmc/spigotmc.conf
src/collectors/python.d.plugin/traefik/traefik.chart.py src/collectors/python.d.plugin/traefik/traefik.conf
src/collectors/python.d.plugin/zscores/zscores.chart.py src/collectors/python.d.plugin/zscores/zscores.conf
COMPONENT plugin-pythond COMPONENT plugin-pythond
DESTINATION usr/libexec/netdata/python.d) DESTINATION usr/lib/netdata/conf.d/python.d)
if(BUILD_FOR_PACKAGING) install(FILES
install(FILES src/collectors/python.d.plugin/am2320/am2320.chart.py
${PKG_FILES_PATH}/copyright src/collectors/python.d.plugin/ceph/ceph.chart.py
COMPONENT plugin-pythond src/collectors/python.d.plugin/go_expvar/go_expvar.chart.py
DESTINATION usr/share/doc/netdata-plugin-pythond) src/collectors/python.d.plugin/haproxy/haproxy.chart.py
src/collectors/python.d.plugin/openldap/openldap.chart.py
src/collectors/python.d.plugin/oracledb/oracledb.chart.py
src/collectors/python.d.plugin/pandas/pandas.chart.py
src/collectors/python.d.plugin/spigotmc/spigotmc.chart.py
src/collectors/python.d.plugin/traefik/traefik.chart.py
src/collectors/python.d.plugin/zscores/zscores.chart.py
COMPONENT plugin-pythond
DESTINATION usr/libexec/netdata/python.d)
if(BUILD_FOR_PACKAGING)
install(FILES
${PKG_FILES_PATH}/copyright
COMPONENT plugin-pythond
DESTINATION usr/share/doc/netdata-plugin-pythond)
endif()
endif() endif()
# #
@ -2966,6 +2976,8 @@ install(PROGRAMS ${CMAKE_BINARY_DIR}/src/collectors/ioping.plugin/ioping.plugin
# go.d.plugin # go.d.plugin
# #
if(ENABLE_PLUGIN_GO) if(ENABLE_PLUGIN_GO)
install(DIRECTORY COMPONENT plugin-go DESTINATION etc/netdata/go.d)
install(FILES src/go/plugin/go.d/config/go.d.conf install(FILES src/go/plugin/go.d/config/go.d.conf
COMPONENT plugin-go COMPONENT plugin-go
DESTINATION usr/lib/netdata/conf.d) DESTINATION usr/lib/netdata/conf.d)

View file

@ -253,6 +253,8 @@ LIBS_ARE_HERE=0
NETDATA_ENABLE_ML="" NETDATA_ENABLE_ML=""
ENABLE_DBENGINE=1 ENABLE_DBENGINE=1
ENABLE_GO=1 ENABLE_GO=1
ENABLE_PYTHON=1
ENABLE_CHARTS=1
ENABLE_H2O=1 ENABLE_H2O=1
FORCE_LEGACY_CXX=0 FORCE_LEGACY_CXX=0
NETDATA_CMAKE_OPTIONS="${NETDATA_CMAKE_OPTIONS-}" NETDATA_CMAKE_OPTIONS="${NETDATA_CMAKE_OPTIONS-}"
@ -281,6 +283,10 @@ while [ -n "${1}" ]; do
"--enable-plugin-go") ENABLE_GO=1 ;; "--enable-plugin-go") ENABLE_GO=1 ;;
"--disable-plugin-go") ENABLE_GO=0 ;; "--disable-plugin-go") ENABLE_GO=0 ;;
"--disable-go") ENABLE_GO=0 ;; "--disable-go") ENABLE_GO=0 ;;
"--enable-plugin-python") ENABLE_PYTHON=1 ;;
"--disable-plugin-python") ENABLE_PYTHON=0 ;;
"--enable-plugin-charts") ENABLE_CHARTS=1 ;;
"--disable-plugin-charts") ENABLE_CHARTS=0 ;;
"--enable-plugin-nfacct") ENABLE_NFACCT=1 ;; "--enable-plugin-nfacct") ENABLE_NFACCT=1 ;;
"--disable-plugin-nfacct") ENABLE_NFACCT=0 ;; "--disable-plugin-nfacct") ENABLE_NFACCT=0 ;;
"--enable-plugin-xenstat") ENABLE_XENSTAT=1 ;; "--enable-plugin-xenstat") ENABLE_XENSTAT=1 ;;

View file

@ -394,6 +394,8 @@ happened, on your systems and applications.
-DENABLE_PLUGIN_CGROUP_NETWORK=On \ -DENABLE_PLUGIN_CGROUP_NETWORK=On \
-DENABLE_PLUGIN_DEBUGFS=On \ -DENABLE_PLUGIN_DEBUGFS=On \
-DENABLE_PLUGIN_GO=On \ -DENABLE_PLUGIN_GO=On \
-DENABLE_PLUGIN_PYTHON=On \
-DENABLE_PLUGIN_CHARTS=On \
-DENABLE_PLUGIN_LOCAL_LISTENERS=On \ -DENABLE_PLUGIN_LOCAL_LISTENERS=On \
-DENABLE_PLUGIN_PERF=On \ -DENABLE_PLUGIN_PERF=On \
-DENABLE_PLUGIN_SLABINFO=On \ -DENABLE_PLUGIN_SLABINFO=On \

View file

@ -35,6 +35,8 @@ add_cmake_option ENABLE_PLUGIN_CGROUP_NETWORK On
add_cmake_option ENABLE_PLUGIN_DEBUGFS On add_cmake_option ENABLE_PLUGIN_DEBUGFS On
add_cmake_option ENABLE_PLUGIN_FREEIPMI On add_cmake_option ENABLE_PLUGIN_FREEIPMI On
add_cmake_option ENABLE_PLUGIN_GO On add_cmake_option ENABLE_PLUGIN_GO On
add_cmake_option ENABLE_PLUGIN_PYTHON On
add_cmake_option ENABLE_PLUGIN_CHARTS On
add_cmake_option ENABLE_PLUGIN_LOCAL_LISTENERS On add_cmake_option ENABLE_PLUGIN_LOCAL_LISTENERS On
add_cmake_option ENABLE_PLUGIN_NFACCT On add_cmake_option ENABLE_PLUGIN_NFACCT On
add_cmake_option ENABLE_PLUGIN_PERF On add_cmake_option ENABLE_PLUGIN_PERF On

View file

@ -63,8 +63,13 @@ netdata-plugin-network-viewer")
set(CPACK_DEBIAN_NETDATA_PACKAGE_CONFLICTS set(CPACK_DEBIAN_NETDATA_PACKAGE_CONFLICTS
"netdata-core, netdata-plugins-bash, netdata-plugins-python, netdata-web") "netdata-core, netdata-plugins-bash, netdata-plugins-python, netdata-web")
list(APPEND _main_deps "netdata-plugin-chartsd") if(ENABLE_PLUGIN_CHARTS)
list(APPEND _main_deps "netdata-plugin-pythond") list(APPEND _main_deps "netdata-plugin-chartsd")
endif()
if(ENABLE_PLUGIN_PYTHON)
list(APPEND _main_deps "netdata-plugin-pythond")
endif()
if(ENABLE_PLUGIN_APPS) if(ENABLE_PLUGIN_APPS)
list(APPEND _main_deps "netdata-plugin-apps") list(APPEND _main_deps "netdata-plugin-apps")
@ -437,7 +442,9 @@ list(APPEND CPACK_COMPONENTS_ALL "netdata")
if(ENABLE_PLUGIN_APPS) if(ENABLE_PLUGIN_APPS)
list(APPEND CPACK_COMPONENTS_ALL "plugin-apps") list(APPEND CPACK_COMPONENTS_ALL "plugin-apps")
endif() endif()
list(APPEND CPACK_COMPONENTS_ALL "plugin-chartsd") if(ENABLE_PLUGIN_CHARTS)
list(APPEND CPACK_COMPONENTS_ALL "plugin-chartsd")
endif()
if(ENABLE_PLUGIN_CUPS) if(ENABLE_PLUGIN_CUPS)
list(APPEND CPACK_COMPONENTS_ALL "plugin-cups") list(APPEND CPACK_COMPONENTS_ALL "plugin-cups")
endif() endif()
@ -465,7 +472,9 @@ endif()
if(ENABLE_PLUGIN_PERF) if(ENABLE_PLUGIN_PERF)
list(APPEND CPACK_COMPONENTS_ALL "plugin-perf") list(APPEND CPACK_COMPONENTS_ALL "plugin-perf")
endif() endif()
list(APPEND CPACK_COMPONENTS_ALL "plugin-pythond") if(ENABLE_PLUGIN_PYTHON)
list(APPEND CPACK_COMPONENTS_ALL "plugin-pythond")
endif()
if(ENABLE_PLUGIN_SLABINFO) if(ENABLE_PLUGIN_SLABINFO)
list(APPEND CPACK_COMPONENTS_ALL "plugin-slabinfo") list(APPEND CPACK_COMPONENTS_ALL "plugin-slabinfo")
endif() endif()

View file

@ -303,6 +303,18 @@ prepare_cmake_options() {
enable_feature PLUGIN_GO 0 enable_feature PLUGIN_GO 0
fi fi
if [ "${ENABLE_PYTHON:-1}" -eq 1 ]; then
enable_feature PLUGIN_PYTHON 1
else
enable_feature PLUGIN_PYTHON 0
fi
if [ "${ENABLE_CHARTS:-1}" -eq 1 ]; then
enable_feature PLUGIN_CHARTS 1
else
enable_feature PLUGIN_CHARTS 0
fi
if [ "${USE_SYSTEM_PROTOBUF:-0}" -eq 1 ]; then if [ "${USE_SYSTEM_PROTOBUF:-0}" -eq 1 ]; then
enable_feature BUNDLED_PROTOBUF 0 enable_feature BUNDLED_PROTOBUF 0
else else