diff --git a/nixos/modules/services/monitoring/netdata.nix b/nixos/modules/services/monitoring/netdata.nix index 90e00e91deed..8f89408bdea5 100644 --- a/nixos/modules/services/monitoring/netdata.nix +++ b/nixos/modules/services/monitoring/netdata.nix @@ -13,6 +13,9 @@ let ln -s /run/wrappers/bin/slabinfo.plugin $out/libexec/netdata/plugins.d/slabinfo.plugin ln -s /run/wrappers/bin/freeipmi.plugin $out/libexec/netdata/plugins.d/freeipmi.plugin ln -s /run/wrappers/bin/systemd-journal.plugin $out/libexec/netdata/plugins.d/systemd-journal.plugin + ln -s /run/wrappers/bin/logs-management.plugin $out/libexec/netdata/plugins.d/logs-management.plugin + ln -s /run/wrappers/bin/network-viewer.plugin $out/libexec/netdata/plugins.d/network-viewer.plugin + ln -s /run/wrappers/bin/debugfs.plugin $out/libexec/netdata/plugins.d/debugfs.plugin ''; plugins = [ @@ -47,6 +50,7 @@ let defaultUser = "netdata"; + isThereAnyWireGuardTunnels = config.networking.wireguard.enable || lib.any (c: lib.hasAttrByPath [ "netdevConfig" "Kind" ] c && c.netdevConfig.Kind == "wireguard") (builtins.attrValues config.systemd.network.netdevs); in { options = { services.netdata = { @@ -86,6 +90,14 @@ in { Whether to enable python-based plugins ''; }; + recommendedPythonPackages = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable a set of recommended Python plugins + by installing extra Python packages. + ''; + }; extraPackages = mkOption { type = types.functionTo (types.listOf types.package); default = ps: []; @@ -198,13 +210,26 @@ in { } ]; + # Includes a set of recommended Python plugins in exchange of imperfect disk consumption. + services.netdata.python.extraPackages = lib.mkIf cfg.python.recommendedPythonPackages (ps: [ + ps.requests + ps.pandas + ps.numpy + ps.psycopg2 + ps.python-ldap + ps.netdata-pandas + ps.changefinder + ]); + services.netdata.configDir.".opt-out-from-anonymous-statistics" = mkIf (!cfg.enableAnalyticsReporting) (pkgs.writeText ".opt-out-from-anonymous-statistics" ""); environment.etc."netdata/netdata.conf".source = configFile; environment.etc."netdata/conf.d".source = configDirectory; systemd.services.netdata = { description = "Real time performance monitoring"; - after = [ "network.target" ]; + after = [ "network.target" "suid-sgid-wrappers.service" ]; + # No wrapper means no "useful" netdata. + requires = [ "suid-sgid-wrappers.service" ]; wantedBy = [ "multi-user.target" ]; path = (with pkgs; [ curl @@ -213,10 +238,16 @@ in { which procps bash + nvme-cli # for go.d + iw # for charts.d + apcupsd # for charts.d + # TODO: firehol # for FireQoS -- this requires more NixOS module support. util-linux # provides logger command; required for syslog health alarms ]) ++ lib.optional cfg.python.enable (pkgs.python3.withPackages cfg.python.extraPackages) - ++ lib.optional config.virtualisation.libvirtd.enable (config.virtualisation.libvirtd.package); + ++ lib.optional config.virtualisation.libvirtd.enable config.virtualisation.libvirtd.package + ++ lib.optional config.virtualisation.docker.enable config.virtualisation.docker.package + ++ lib.optionals config.virtualisation.podman.enable [ pkgs.jq config.virtualisation.podman.package ]; environment = { PYTHONPATH = "${cfg.package}/libexec/netdata/python.d/python_modules"; NETDATA_PIPENAME = "/run/netdata/ipc"; @@ -256,6 +287,8 @@ in { # Configuration directory and mode ConfigurationDirectory = "netdata"; ConfigurationDirectoryMode = "0755"; + # AmbientCapabilities + AmbientCapabilities = lib.optional isThereAnyWireGuardTunnels "CAP_NET_ADMIN"; # Capabilities CapabilityBoundingSet = [ "CAP_DAC_OVERRIDE" # is required for freeipmi and slabinfo plugins @@ -269,7 +302,7 @@ in { "CAP_SYS_CHROOT" # is required for cgroups plugin "CAP_SETUID" # is required for cgroups and cgroups-network plugins "CAP_SYSLOG" # is required for systemd-journal plugin - ]; + ] ++ lib.optional isThereAnyWireGuardTunnels "CAP_NET_ADMIN"; # Sandboxing ProtectSystem = "full"; ProtectHome = "read-only"; @@ -308,6 +341,14 @@ in { permissions = "u+rx,g+x,o-rwx"; }; + "debugfs.plugin" = { + source = "${cfg.package}/libexec/netdata/plugins.d/debugfs.plugin.org"; + capabilities = "cap_dac_read_search+ep"; + owner = cfg.user; + group = cfg.group; + permissions = "u+rx,g+x,o-rwx"; + }; + "cgroup-network" = { source = "${cfg.package}/libexec/netdata/plugins.d/cgroup-network.org"; capabilities = "cap_setuid+ep"; @@ -332,6 +373,14 @@ in { permissions = "u+rx,g+x,o-rwx"; }; + "logs-management.plugin" = { + source = "${cfg.package}/libexec/netdata/plugins.d/logs-management.plugin.org"; + capabilities = "cap_dac_read_search,cap_syslog+ep"; + owner = cfg.user; + group = cfg.group; + permissions = "u+rx,g+x,o-rwx"; + }; + "slabinfo.plugin" = { source = "${cfg.package}/libexec/netdata/plugins.d/slabinfo.plugin.org"; capabilities = "cap_dac_override+ep"; @@ -348,6 +397,14 @@ in { group = cfg.group; permissions = "u+rx,g+x,o-rwx"; }; + } // optionalAttrs (cfg.package.withNetworkViewer) { + "network-viewer.plugin" = { + source = "${cfg.package}/libexec/netdata/plugins.d/network-viewer.plugin.org"; + capabilities = "cap_sys_admin,cap_dac_read_search,cap_sys_ptrace+ep"; + owner = cfg.user; + group = cfg.group; + permissions = "u+rx,g+x,o-rwx"; + }; }; security.pam.loginLimits = [ @@ -359,6 +416,8 @@ in { ${defaultUser} = { group = defaultUser; isSystemUser = true; + extraGroups = lib.optional config.virtualisation.docker.enable "docker" + ++ lib.optional config.virtualisation.podman.enable "podman"; }; }; diff --git a/nixos/tests/netdata.nix b/nixos/tests/netdata.nix index e3438f63404e..df4d342905c6 100644 --- a/nixos/tests/netdata.nix +++ b/nixos/tests/netdata.nix @@ -11,7 +11,10 @@ import ./make-test-python.nix ({ pkgs, ...} : { { pkgs, ... }: { environment.systemPackages = with pkgs; [ curl jq netdata ]; - services.netdata.enable = true; + services.netdata = { + enable = true; + python.recommendedPythonPackages = true; + }; }; }; diff --git a/pkgs/development/python-modules/changefinder/default.nix b/pkgs/development/python-modules/changefinder/default.nix new file mode 100644 index 000000000000..b7f49ccce54f --- /dev/null +++ b/pkgs/development/python-modules/changefinder/default.nix @@ -0,0 +1,40 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, setuptools +, numpy +, scipy +, statsmodels +}: + +buildPythonPackage { + pname = "changefinder"; + version = "unstable-2024-03-24"; + pyproject = true; + + src = fetchFromGitHub { + owner = "shunsukeaihara"; + repo = "changefinder"; + rev = "58c8c32f127b9e46f9823f36221f194bdb6f3f8b"; + hash = "sha256-1If0gIsMU8673fKSSHVMvDgR1UnYgM/4HiyvZJ9T6VM="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + numpy + scipy + statsmodels + ]; + + pythonImportsCheck = [ "changefinder" ]; + + meta = with lib; { + description = "Online Change-Point Detection library based on ChangeFinder algorithm"; + homepage = "https://github.com/shunsukeaihara/changefinder"; + license = licenses.mit; + maintainers = with maintainers; [ raitobezarius ]; + }; +} diff --git a/pkgs/development/python-modules/netdata-pandas/default.nix b/pkgs/development/python-modules/netdata-pandas/default.nix new file mode 100644 index 000000000000..01fb2d65c65c --- /dev/null +++ b/pkgs/development/python-modules/netdata-pandas/default.nix @@ -0,0 +1,42 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, setuptools +, pandas +, requests +, trio +, asks +}: + +buildPythonPackage rec { + pname = "netdata-pandas"; + version = "0.0.41"; + pyproject = true; + + src = fetchFromGitHub { + owner = "netdata"; + repo = "netdata-pandas"; + rev = "v${version}"; + hash = "sha256-AXt8BKWyM3glm5hrRryb+vBzs3z2x61HhbR6DDZkh9o="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + pandas + requests + trio + asks + ]; + + pythonImportsCheck = [ "netdata_pandas" ]; + + meta = with lib; { + description = "A helper library to pull data from the netdata REST API into a pandas dataframe."; + homepage = "https://github.com/netdata/netdata-pandas"; + license = licenses.asl20; + maintainers = with maintainers; [ raitobezarius ]; + }; +} diff --git a/pkgs/tools/system/netdata/default.nix b/pkgs/tools/system/netdata/default.nix index b2461760da70..9ddba232de19 100644 --- a/pkgs/tools/system/netdata/default.nix +++ b/pkgs/tools/system/netdata/default.nix @@ -1,9 +1,9 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config, makeWrapper +{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config, makeWrapper , CoreFoundation, IOKit, libossp_uuid , nixosTests -, netdata-go-plugins -, bash, curl, jemalloc, json_c, libuv, zlib, libyaml +, bash, curl, jemalloc, json_c, libuv, zlib, libyaml, libelf, libbpf , libcap, libuuid, lm_sensors, protobuf +, go, buildGoModule, ninja , withCups ? false, cups , withDBengine ? true, lz4 , withIpmi ? (!stdenv.isDarwin), freeipmi @@ -15,11 +15,12 @@ , withSsl ? true, openssl , withSystemdJournal ? (!stdenv.isDarwin), systemd , withDebug ? false +, withEbpf ? false +, withNetworkViewer ? (!stdenv.isDarwin) }: stdenv.mkDerivation rec { - # Don't forget to update go.d.plugin.nix as well - version = "1.44.3"; + version = "1.45.4"; pname = "netdata"; src = fetchFromGitHub { @@ -27,21 +28,22 @@ stdenv.mkDerivation rec { repo = "netdata"; rev = "v${version}"; hash = if withCloudUi - then "sha256-ahWaq6geEoc6NZ2oU/Dqnb0bjRXd+q1zaRGOSIYVYok=" - else "sha256-2Kvh2WuoJjJxsFKueMjCAbazqZdzoOTxakbPVsj9PBo="; + then "sha256-g/wxKtpNsDw/ZaUokdip39enQHMysJE6pYGsApuL4po=" + # we delete the v2 GUI after fetching + else "sha256-Mkrmvdr19sWzFOkdpt46mcsbA3CNpXy4w8um95xaWlo="; fetchSubmodules = true; # Remove v2 dashboard distributed under NCUL1. Make sure an empty # Makefile.am exists, as autoreconf will get confused otherwise. postFetch = lib.optionalString (!withCloudUi) '' - rm -rf $out/web/gui/v2/* - touch $out/web/gui/v2/Makefile.am + rm -rf $out/src/web/gui/v2/* + touch $out/src/web/gui/v2/Makefile.am ''; }; strictDeps = true; - nativeBuildInputs = [ autoreconfHook pkg-config makeWrapper protobuf ]; + nativeBuildInputs = [ cmake pkg-config makeWrapper go ninja ]; # bash is only used to rewrite shebangs buildInputs = [ bash curl jemalloc json_c libuv zlib libyaml ] ++ lib.optionals stdenv.isDarwin [ CoreFoundation IOKit libossp_uuid ] @@ -52,23 +54,23 @@ stdenv.mkDerivation rec { ++ lib.optionals withNetfilter [ libmnl libnetfilter_acct ] ++ lib.optionals withConnPubSub [ google-cloud-cpp grpc ] ++ lib.optionals withConnPrometheus [ snappy ] + ++ lib.optionals withEbpf [ libelf libbpf ] ++ lib.optionals (withCloud || withConnPrometheus) [ protobuf ] ++ lib.optionals withSystemdJournal [ systemd ] ++ lib.optionals withSsl [ openssl ]; patches = [ - # required to prevent plugins from relying on /etc - # and /var - ./no-files-in-etc-and-var.patch - - # Avoid build-only inputs in closure leaked by configure command: - # https://github.com/NixOS/nixpkgs/issues/175693#issuecomment-1143344162 - ./skip-CONFIGURE_COMMAND.patch - # Allow building without non-free v2 dashboard. (fetchpatch { - url = "https://github.com/peat-psuwit/netdata/commit/6ccbdd1500db2b205923968688d5f1777430a326.patch"; - hash = "sha256-jAyk5HlxdjFn5IP6jOKP8/SXOraMQSA6r1krThe+s7g="; + url = "https://github.com/netdata/netdata/pull/17240/commits/b108df72281633234b731b223d99ec99f1d36adf.patch"; + hash = "sha256-tgsnbNY0pxFU3bz1J1qPaAeVsozsk2bpHV2mNy8A9is="; + }) + # Allow for go.d plugins to access the right directory. + # Can be removed once > v1.45.4 is released + # https://github.com/netdata/netdata/pull/17661 + (fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/netdata/netdata/pull/17661.patch"; + sha256 = "sha256-j+mrwkibQio2KO8UnV7sxzCoHmkcsalHNzP+YvrRz74="; }) ]; @@ -83,8 +85,8 @@ stdenv.mkDerivation rec { env.NIX_CFLAGS_COMPILE = lib.optionalString withDebug "-O1 -ggdb -DNETDATA_INTERNAL_CHECKS=1"; postInstall = '' - ln -s ${netdata-go-plugins}/lib/netdata/conf.d/* $out/lib/netdata/conf.d - ln -s ${netdata-go-plugins}/bin/godplugin $out/libexec/netdata/plugins.d/go.d.plugin + # Relocate one folder above. + mv $out/usr/* $out/ '' + lib.optionalString (!stdenv.isDarwin) '' # rename this plugin so netdata will look for setuid wrapper mv $out/libexec/netdata/plugins.d/apps.plugin \ @@ -95,6 +97,10 @@ stdenv.mkDerivation rec { $out/libexec/netdata/plugins.d/perf.plugin.org mv $out/libexec/netdata/plugins.d/slabinfo.plugin \ $out/libexec/netdata/plugins.d/slabinfo.plugin.org + mv $out/libexec/netdata/plugins.d/debugfs.plugin \ + $out/libexec/netdata/plugins.d/debugfs.plugin.org + mv $out/libexec/netdata/plugins.d/logs-management.plugin \ + $out/libexec/netdata/plugins.d/logs-management.plugin.org ${lib.optionalString withSystemdJournal '' mv $out/libexec/netdata/plugins.d/systemd-journal.plugin \ $out/libexec/netdata/plugins.d/systemd-journal.plugin.org @@ -103,53 +109,108 @@ stdenv.mkDerivation rec { mv $out/libexec/netdata/plugins.d/freeipmi.plugin \ $out/libexec/netdata/plugins.d/freeipmi.plugin.org ''} + ${lib.optionalString withNetworkViewer '' + mv $out/libexec/netdata/plugins.d/network-viewer.plugin \ + $out/libexec/netdata/plugins.d/network-viewer.plugin.org + ''} + ${lib.optionalString (!withCloudUi) '' + rm -rf $out/share/netdata/web/index.html + cp $out/share/netdata/web/v1/index.html $out/share/netdata/web/index.html + ''} ''; preConfigure = lib.optionalString (!stdenv.isDarwin) '' - substituteInPlace collectors/python.d.plugin/python_modules/third_party/lm_sensors.py \ - --replace 'ctypes.util.find_library("sensors")' '"${lm_sensors.out}/lib/libsensors${stdenv.hostPlatform.extensions.sharedLibrary}"' + substituteInPlace src/collectors/python.d.plugin/python_modules/third_party/lm_sensors.py \ + --replace-fail 'ctypes.util.find_library("sensors")' '"${lm_sensors.out}/lib/libsensors${stdenv.hostPlatform.extensions.sharedLibrary}"' + '' + '' + export GOCACHE=$TMPDIR/go-cache + export GOPATH=$TMPDIR/go + export GOPROXY=file://${passthru.netdata-go-modules} + export GOSUMDB=off + + # Prevent the path to be caught into the Nix store path. + substituteInPlace CMakeLists.txt \ + --replace-fail 'set(CACHE_DIR "''${CMAKE_INSTALL_PREFIX}/var/cache/netdata")' 'set(CACHE_DIR "/var/cache/netdata")' \ + --replace-fail 'set(CONFIG_DIR "''${CMAKE_INSTALL_PREFIX}/etc/netdata")' 'set(CONFIG_DIR "/etc/netdata")' \ + --replace-fail 'set(LIBCONFIG_DIR "''${CMAKE_INSTALL_PREFIX}/usr/lib/netdata/conf.d")' 'set(LIBCONFIG_DIR "${placeholder "out"}/share/netdata/conf.d")' \ + --replace-fail 'set(LOG_DIR "''${CMAKE_INSTALL_PREFIX}/var/log/netdata")' 'set(LOG_DIR "/var/log/netdata")' \ + --replace-fail 'set(PLUGINS_DIR "''${CMAKE_INSTALL_PREFIX}/usr/libexec/netdata/plugins.d")' 'set(PLUGINS_DIR "${placeholder "out"}/libexec/netdata/plugins.d")' \ + --replace-fail 'set(VARLIB_DIR "''${CMAKE_INSTALL_PREFIX}/var/lib/netdata")' 'set(VARLIB_DIR "/var/lib/netdata")' \ + --replace-fail 'set(pkglibexecdir_POST "''${CMAKE_INSTALL_PREFIX}/usr/libexec/netdata")' 'set(pkglibexecdir_POST "${placeholder "out"}/libexec/netdata")' \ + --replace-fail 'set(localstatedir_POST "''${CMAKE_INSTALL_PREFIX}/var")' 'set(localstatedir_POST "/var")' \ + --replace-fail 'set(sbindir_POST "''${CMAKE_INSTALL_PREFIX}/usr/sbin")' 'set(sbindir_POST "${placeholder "out"}/bin")' \ + --replace-fail 'set(configdir_POST "''${CMAKE_INSTALL_PREFIX}/etc/netdata")' 'set(configdir_POST "/etc/netdata")' \ + --replace-fail 'set(libconfigdir_POST "''${CMAKE_INSTALL_PREFIX}/usr/lib/netdata/conf.d")' 'set(libconfigdir_POST "${placeholder "out"}/share/netdata/conf.d")' \ + --replace-fail 'set(cachedir_POST "''${CMAKE_INSTALL_PREFIX}/var/cache/netdata")' 'set(libconfigdir_POST "/var/cache/netdata")' \ + --replace-fail 'set(registrydir_POST "''${CMAKE_INSTALL_PREFIX}/var/lib/netdata/registry")' 'set(registrydir_POST "/var/lib/netdata/registry")' \ + --replace-fail 'set(varlibdir_POST "''${CMAKE_INSTALL_PREFIX}/var/lib/netdata")' 'set(varlibdir_POST "/var/lib/netdata")' ''; - configureFlags = [ - "--localstatedir=/var" - "--sysconfdir=/etc" - "--disable-ebpf" - "--with-jemalloc=${jemalloc}" - ] ++ lib.optionals (withSystemdJournal) [ - "--enable-plugin-systemd-journal" - ] ++ lib.optionals (!withDBengine) [ - "--disable-dbengine" - ] ++ lib.optionals (!withCloud) [ - "--disable-cloud" - ] ++ lib.optionals (!withCloudUi) [ - "--disable-cloud-ui" + cmakeFlags = [ + "-DWEB_DIR=share/netdata/web" + (lib.cmakeBool "ENABLE_CLOUD" withCloud) + # ACLK is agent cloud link. + (lib.cmakeBool "ENABLE_ACLK" withCloud) + (lib.cmakeBool "ENABLE_DASHBOARD_V2" withCloudUi) + (lib.cmakeBool "ENABLE_DBENGINE" withDBengine) + (lib.cmakeBool "ENABLE_PLUGIN_FREEIPMI" withIpmi) + (lib.cmakeBool "ENABLE_PLUGIN_SYSTEMD_JOURNAL" withSystemdJournal) + (lib.cmakeBool "ENABLE_PLUGIN_NETWORK_VIEWER" withNetworkViewer) + (lib.cmakeBool "ENABLE_PLUGIN_EBPF" withEbpf) + (lib.cmakeBool "ENABLE_PLUGIN_XENSTAT" false) + (lib.cmakeBool "ENABLE_PLUGIN_CUPS" withCups) + (lib.cmakeBool "ENABLE_EXPORTER_PROMETHEUS_REMOTE_WRITE" withConnPrometheus) + (lib.cmakeBool "ENABLE_JEMALLOC" true) + # Suggested by upstream. + "-G Ninja" ]; postFixup = '' - # remove once https://github.com/netdata/netdata/pull/16300 merged - substituteInPlace $out/bin/netdata-claim.sh \ - --replace /bin/echo echo - wrapProgram $out/bin/netdata-claim.sh --prefix PATH : ${lib.makeBinPath [ openssl ]} wrapProgram $out/libexec/netdata/plugins.d/cgroup-network-helper.sh --prefix PATH : ${lib.makeBinPath [ bash ]} wrapProgram $out/bin/netdatacli --set NETDATA_PIPENAME /run/netdata/ipc + + # Time to cleanup the output directory. + unlink $out/sbin + cp $out/etc/netdata/edit-config $out/bin/netdata-edit-config + mv $out/lib/netdata/conf.d $out/share/netdata/conf.d + rm -rf $out/{var,usr,etc} ''; enableParallelBuild = true; - passthru = { - inherit withIpmi; + passthru = rec { + netdata-go-modules = (buildGoModule { + pname = "netdata-go-plugins"; + inherit version src; + + sourceRoot = "${src.name}/src/go/collectors/go.d.plugin"; + + vendorHash = "sha256-KO+xMk6fpZCYRyxxKrsGfOHJ2bwjBaSmkgz1jIUHaZs="; + doCheck = false; + proxyVendor = true; + + ldflags = [ "-s" "-w" "-X main.version=${version}" ]; + + passthru.tests = tests; + meta = meta // { + description = "Netdata orchestrator for data collection modules written in Go"; + mainProgram = "godplugin"; + license = lib.licenses.gpl3Only; + }; + }).goModules; + inherit withIpmi withNetworkViewer; tests.netdata = nixosTests.netdata; }; meta = with lib; { - broken = stdenv.isDarwin || stdenv.buildPlatform != stdenv.hostPlatform; + broken = stdenv.isDarwin || stdenv.buildPlatform != stdenv.hostPlatform || withEbpf; description = "Real-time performance monitoring tool"; homepage = "https://www.netdata.cloud/"; changelog = "https://github.com/netdata/netdata/releases/tag/v${version}"; license = [ licenses.gpl3Plus ] ++ lib.optionals (withCloudUi) [ licenses.ncul1 ]; platforms = platforms.unix; - maintainers = with maintainers; [ raitobezarius ]; + maintainers = [ ]; }; } diff --git a/pkgs/tools/system/netdata/go.d.plugin.nix b/pkgs/tools/system/netdata/go.d.plugin.nix deleted file mode 100644 index 910ad29c13fa..000000000000 --- a/pkgs/tools/system/netdata/go.d.plugin.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, fetchFromGitHub, buildGoModule, nixosTests }: - -buildGoModule rec { - pname = "netdata-go-plugins"; - version = "0.58.1"; - - src = fetchFromGitHub { - owner = "netdata"; - repo = "go.d.plugin"; - rev = "v${version}"; - hash = "sha256-zzHm98jec7MXnzVsrLlYIk+ILA3Ei43853dM1LdFz5c="; - }; - - vendorHash = "sha256-eb+GRFhfWxDkfH4x2VF3ogyT5z4OcIoqHtEVJ1tGsdA="; - - doCheck = false; - - ldflags = [ "-s" "-w" "-X main.version=${version}" ]; - - postInstall = '' - mkdir -p $out/lib/netdata/conf.d - cp -r config/* $out/lib/netdata/conf.d - ''; - - passthru.tests = { inherit (nixosTests) netdata; }; - - meta = with lib; { - description = "Netdata orchestrator for data collection modules written in go"; - mainProgram = "godplugin"; - homepage = "https://github.com/netdata/go.d.plugin"; - changelog = "https://github.com/netdata/go.d.plugin/releases/tag/v${version}"; - license = licenses.gpl3Only; - maintainers = [ maintainers.raitobezarius ]; - }; -} diff --git a/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch b/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch deleted file mode 100644 index 039376fe4e3a..000000000000 --- a/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch +++ /dev/null @@ -1,128 +0,0 @@ -diff --git c/collectors/Makefile.am i/collectors/Makefile.am -index 1bbb2e0ef..96c400d33 100644 ---- c/collectors/Makefile.am -+++ i/collectors/Makefile.am -@@ -33,7 +33,7 @@ usercustompluginsconfigdir=$(configdir)/custom-plugins.d - usergoconfigdir=$(configdir)/go.d - - # Explicitly install directories to avoid permission issues due to umask --install-exec-local: -+no-install-exec-local: - $(INSTALL) -d $(DESTDIR)$(usercustompluginsconfigdir) - $(INSTALL) -d $(DESTDIR)$(usergoconfigdir) - -diff --git c/collectors/charts.d.plugin/Makefile.am i/collectors/charts.d.plugin/Makefile.am -index f82992fd4..4cac1ae4f 100644 ---- c/collectors/charts.d.plugin/Makefile.am -+++ i/collectors/charts.d.plugin/Makefile.am -@@ -34,7 +34,7 @@ dist_userchartsconfig_DATA = \ - $(NULL) - - # Explicitly install directories to avoid permission issues due to umask --install-exec-local: -+no-install-exec-local: - $(INSTALL) -d $(DESTDIR)$(userchartsconfigdir) - - chartsconfigdir=$(libconfigdir)/charts.d -diff --git c/collectors/ebpf.plugin/Makefile.am i/collectors/ebpf.plugin/Makefile.am -index 2d5f92a6b..8b11c7502 100644 ---- c/collectors/ebpf.plugin/Makefile.am -+++ i/collectors/ebpf.plugin/Makefile.am -@@ -9,7 +9,7 @@ SUFFIXES = .in - userebpfconfigdir=$(configdir)/ebpf.d - - # Explicitly install directories to avoid permission issues due to umask --install-exec-local: -+no-install-exec-local: - $(INSTALL) -d $(DESTDIR)$(userebpfconfigdir) - - dist_noinst_DATA = \ -diff --git c/collectors/python.d.plugin/Makefile.am i/collectors/python.d.plugin/Makefile.am -index ca49c1c02..1b9bcc446 100644 ---- c/collectors/python.d.plugin/Makefile.am -+++ i/collectors/python.d.plugin/Makefile.am -@@ -32,7 +32,7 @@ dist_userpythonconfig_DATA = \ - $(NULL) - - # Explicitly install directories to avoid permission issues due to umask --install-exec-local: -+no-install-exec-local: - $(INSTALL) -d $(DESTDIR)$(userpythonconfigdir) - - pythonconfigdir=$(libconfigdir)/python.d -diff --git c/collectors/statsd.plugin/Makefile.am i/collectors/statsd.plugin/Makefile.am -index c8144c137..f8aaa89b6 100644 ---- c/collectors/statsd.plugin/Makefile.am -+++ i/collectors/statsd.plugin/Makefile.am -@@ -19,5 +19,5 @@ dist_userstatsdconfig_DATA = \ - $(NULL) - - # Explicitly install directories to avoid permission issues due to umask --install-exec-local: -+no-install-exec-local: - $(INSTALL) -d $(DESTDIR)$(userstatsdconfigdir) -diff --git c/health/Makefile.am i/health/Makefile.am -index 7d7bca4cc..3086876dd 100644 ---- c/health/Makefile.am -+++ i/health/Makefile.am -@@ -19,7 +19,7 @@ dist_userhealthconfig_DATA = \ - $(NULL) - - # Explicitly install directories to avoid permission issues due to umask --install-exec-local: -+no-install-exec-local: - $(INSTALL) -d $(DESTDIR)$(userhealthconfigdir) - - healthconfigdir=$(libconfigdir)/health.d -diff --git c/logsmanagement/Makefile.am i/logsmanagement/Makefile.am -index 33f08d556..1f08cbae9 100644 ---- c/logsmanagement/Makefile.am -+++ i/logsmanagement/Makefile.am -@@ -6,7 +6,7 @@ MAINTAINERCLEANFILES = $(srcdir)/Makefile.in - userlogsmanagconfigdir=$(configdir)/logsmanagement.d - - # Explicitly install directories to avoid permission issues due to umask --install-exec-local: -+no-install-exec-local: - $(INSTALL) -d $(DESTDIR)$(userlogsmanagconfigdir) - - dist_libconfig_DATA = \ -diff --git c/system/Makefile.am i/system/Makefile.am -index 1e96f6f4f..98122ecdc 100644 ---- c/system/Makefile.am -+++ i/system/Makefile.am -@@ -22,12 +22,9 @@ include $(top_srcdir)/build/subst.inc - SUFFIXES = .in - - dist_config_SCRIPTS = \ -- edit-config \ - $(NULL) - - dist_config_DATA = \ -- .install-type \ -- netdata-updater.conf \ - $(NULL) - - libconfigvnodesdir=$(libconfigdir)/vnodes -@@ -47,7 +44,7 @@ libsysrunitdir=$(libsysdir)/runit - libsyssystemddir=$(libsysdir)/systemd - - # Explicitly install directories to avoid permission issues due to umask --install-exec-local: -+no-install-exec-local: - $(INSTALL) -d $(DESTDIR)$(configdir) - $(INSTALL) -d $(DESTDIR)$(libsysdir) - $(INSTALL) -d $(DESTDIR)$(libsyscrondir) -diff --git c/web/Makefile.am i/web/Makefile.am -index be2c545c3..55f373114 100644 ---- c/web/Makefile.am -+++ i/web/Makefile.am -@@ -13,7 +13,7 @@ SUBDIRS = \ - usersslconfigdir=$(configdir)/ssl - - # Explicitly install directories to avoid permission issues due to umask --install-exec-local: -+no-install-exec-local: - $(INSTALL) -d $(DESTDIR)$(usersslconfigdir) - - dist_noinst_DATA = \ diff --git a/pkgs/tools/system/netdata/skip-CONFIGURE_COMMAND.patch b/pkgs/tools/system/netdata/skip-CONFIGURE_COMMAND.patch deleted file mode 100644 index 472da270798f..000000000000 --- a/pkgs/tools/system/netdata/skip-CONFIGURE_COMMAND.patch +++ /dev/null @@ -1,16 +0,0 @@ -Shrink closure size by avoiding paths embedded from configure call. - -https://github.com/NixOS/nixpkgs/issues/175693 -diff --git a/daemon/buildinfo.c b/daemon/buildinfo.c -index 56cde84fc..011e7579d 100644 ---- a/daemon/buildinfo.c -+++ b/daemon/buildinfo.c -@@ -1040,7 +1040,7 @@ static void build_info_set_status(BUILD_INFO_SLOT slot, bool status) { - - __attribute__((constructor)) void initialize_build_info(void) { - build_info_set_value(BIB_PACKAGING_NETDATA_VERSION, program_version); -- build_info_set_value(BIB_PACKAGING_CONFIGURE_OPTIONS, CONFIGURE_COMMAND); -+ build_info_set_value(BIB_PACKAGING_CONFIGURE_OPTIONS, "REMOVED FOR CLOSURE SIZE REASONS"); - - #ifdef COMPILED_FOR_LINUX - build_info_set_status(BIB_FEATURE_BUILT_FOR, true); diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c08e8f4c4802..38af6ea89165 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9932,8 +9932,6 @@ with pkgs; withCloud = !stdenv.isDarwin; withCloudUi = true; }; - # Exposed here so the bots can auto-upgrade it - netdata-go-plugins = callPackage ../tools/system/netdata/go.d.plugin.nix { }; netsurf = recurseIntoAttrs (callPackage ../applications/networking/browsers/netsurf { }); netsurf-browser = netsurf.browser; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 6051367964e5..dd3f971d3573 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2101,6 +2101,8 @@ self: super: with self; { chameleon = callPackage ../development/python-modules/chameleon { }; + changefinder = callPackage ../development/python-modules/changefinder { }; + channels = callPackage ../development/python-modules/channels { }; channels-redis = callPackage ../development/python-modules/channels-redis { }; @@ -8806,6 +8808,8 @@ self: super: with self; { netdata = callPackage ../development/python-modules/netdata { }; + netdata-pandas = callPackage ../development/python-modules/netdata-pandas { }; + netdisco = callPackage ../development/python-modules/netdisco { }; nethsm = callPackage ../development/python-modules/nethsm { };