From 6e592faa92dc2b9fabbe413e9430da632c376cb3 Mon Sep 17 00:00:00 2001 From: Izorkin Date: Fri, 5 Jul 2019 12:11:44 +0300 Subject: [PATCH 1/2] nixos/netdata: enable reload service and add PID file --- nixos/modules/services/monitoring/netdata.nix | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/monitoring/netdata.nix b/nixos/modules/services/monitoring/netdata.nix index f264b6dd4565..978dbd28d857 100644 --- a/nixos/modules/services/monitoring/netdata.nix +++ b/nixos/modules/services/monitoring/netdata.nix @@ -141,11 +141,16 @@ in { path = (with pkgs; [ gawk curl ]) ++ lib.optional cfg.python.enable (pkgs.python3.withPackages cfg.python.extraPackages); serviceConfig = { + Environment="PYTHONPATH=${pkgs.netdata}/libexec/netdata/python.d/python_modules"; + ExecStart = "${pkgs.netdata}/bin/netdata -P /run/netdata/netdata.pid -D -c ${configFile}"; + ExecReload = "${pkgs.utillinux}/bin/kill -s HUP -s USR1 -s USR2 $MAINPID"; + TimeoutStopSec = 60; + # User and group User = cfg.user; Group = cfg.group; - Environment="PYTHONPATH=${pkgs.netdata}/libexec/netdata/python.d/python_modules"; - ExecStart = "${pkgs.netdata}/bin/netdata -D -c ${configFile}"; - TimeoutStopSec = 60; + # Runtime directory and mode + RuntimeDirectory = "netdata"; + RuntimeDirectoryMode = "0755"; }; }; From fb4d71a39fdf0ef2477870c4f720bab10bf90174 Mon Sep 17 00:00:00 2001 From: Izorkin Date: Fri, 5 Jul 2019 22:15:38 +0300 Subject: [PATCH 2/2] nixos/netdata: increase performance --- nixos/modules/services/monitoring/netdata.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/nixos/modules/services/monitoring/netdata.nix b/nixos/modules/services/monitoring/netdata.nix index 978dbd28d857..f9b7550af23a 100644 --- a/nixos/modules/services/monitoring/netdata.nix +++ b/nixos/modules/services/monitoring/netdata.nix @@ -151,6 +151,8 @@ in { # Runtime directory and mode RuntimeDirectory = "netdata"; RuntimeDirectoryMode = "0755"; + # Performance + LimitNOFILE = "30000"; }; }; @@ -170,6 +172,11 @@ in { permissions = "u+rx,g+rx,o-rwx"; }; + security.pam.loginLimits = [ + { domain = "netdata"; type = "soft"; item = "nofile"; value = "10000"; } + { domain = "netdata"; type = "hard"; item = "nofile"; value = "30000"; } + ]; + users.users = optional (cfg.user == defaultUser) { name = defaultUser; };